426,7 → 426,7 |
$wakka_config[$match[1]] = $match[2]; |
} |
} |
//trigger_error(print_r($wakka_config, true), E_USER_NOTICE); |
|
if (isset($wakka_config['mysql_user']) && isset($wakka_config['mysql_password']) && isset($wakka_config['mysql_host']) && isset($wakka_config['mysql_database'])) { |
// Connexion à la base de données |
$dsn = 'mysql://'.$wakka_config['mysql_user'].':'.$wakka_config['mysql_password'].'@'.$wakka_config['mysql_host'].'/'.$wakka_config['mysql_database']; |
435,15 → 435,6 |
$e = $this->connexion->getMessage(); |
trigger_error($e, E_USER_ERROR); |
} |
$res = $this->connexion->query('SHOW TABLES'); |
if (PEAR::isError($res)) { |
die($res->getMessage()); |
} |
$tab_tables = array(); |
$ligne = ''; |
while ($res->fetchInto($ligne)) { |
$tab_tables[] = $ligne[0]; |
} |
|
// Ajout des nouveaux referrers à ceux par défaut |
if (!empty($_POST['sc_referrers'])) { |
450,13 → 441,11 |
$this->sites = array_merge(preg_split("~,~", $_POST['sc_referrers'], -1, PREG_SPLIT_NO_EMPTY), $this->sites); |
} |
|
foreach ($tab_tables as $table) { |
$requetes = array(); |
// +---------------------------------------------------------------------------------------------------+ |
// Referrers |
if (preg_match('/_referrers$/', $table)) { |
$site_nbre = count($this->sites); |
$site_0 = $this->sites[0]; |
$requete = 'DELETE FROM '.$table.' '. |
$requete = 'DELETE FROM '.$wakka_config['table_prefix'].'referrers '. |
'WHERE referrer NOT LIKE "'.$site_0.'%" '; |
for ($i = 1; $i < $site_nbre; $i++) { |
$requete .= 'AND referrer NOT LIKE "'.$this->sites[$i].'%" '; |
466,11 → 455,10 |
if (PEAR::isError($res)) { |
die($res->getMessage()); |
} |
} |
|
// +---------------------------------------------------------------------------------------------------+ |
// Pages : commentaires |
if (preg_match('/_pages$/', $table)) { |
$requete = 'SELECT tag FROM '.$table.' '. |
$requete = 'SELECT tag FROM '.$wakka_config['table_prefix'].'pages '. |
'WHERE tag LIKE "Comment%" '; |
$requetes[] = $requete."\n"; |
$aso_pages = $this->connexion->getAll($requete, null, DB_FETCHMODE_ASSOC); |
485,7 → 473,7 |
} |
} |
if (count($tab_pages) > 0) { |
$requete = 'DELETE FROM '.$table.' '. |
$requete = 'DELETE FROM '.$wakka_config['table_prefix'].'pages '. |
'WHERE tag IN ("'.implode('","', $tab_pages).'") '; |
$requetes[] = $requete."\n"; |
$res = $this->connexion->query($requete); |
492,13 → 480,9 |
if (PEAR::isError($res)) { |
die($res->getMessage()); |
} |
} |
} |
} |
|
// +---------------------------------------------------------------------------------------------------+ |
// ACLs : commentaires |
if (preg_match('/_acls$/', $table)) { |
$requete = 'DELETE FROM '.$table.' '. |
$requete = 'DELETE FROM '.$wakka_config['table_prefix'].'acls '. |
'WHERE page_tag LIKE "Comment%" '; |
$requetes[] = $requete."\n"; |
$res = $this->connexion->query($requete); |
506,7 → 490,7 |
die($res->getMessage()); |
} |
|
$requete = 'UPDATE '.$table.' '. |
$requete = 'UPDATE '.$wakka_config['table_prefix'].'acls '. |
'SET list = "+" '. |
'WHERE privilege = "comment" '; |
$requetes[] = $requete."\n"; |
515,6 → 499,9 |
die($res->getMessage()); |
} |
} |
} |
|
// +---------------------------------------------------------------------------------------------------+ |
// Stockage des requetes |
if (count($requetes) > 0 ) { |
$aso_donnees['wikinis'][] = array( 'dossier' => $fichier, |
523,13 → 510,93 |
'requetes' => $requetes); |
} |
} |
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $aso_donnees); |
} |
} |
|
public function executerProprietaire() |
{ |
// Initialisation des variables |
$this->setChrono('debut'); |
$aso_donnees = $this->getRegistre()->get('squelette_donnees'); |
|
// Gestion de l'url de l'envoie de mail |
$url = clone $GLOBALS['_SCRIPT_']['url']; |
$url->addQueryString('module', 'wikini'); |
$url->addQueryString('action', 'proprietaire_maj'); |
$aso_donnees['url'] = $url->getUrl(); |
|
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $aso_donnees); |
$this->setChrono('fin'); |
} |
|
public function executerProprietaireMaj() |
{ |
// Initialisation des variables |
$this->setChrono('debut'); |
|
// Récupération des infos pour conpléter le squelette du courriel |
$this->rechercherWikini($_POST['sc_chemin'], 'modifierProprietaire'); |
|
// Nous ajoutons une action à éxecuter avant de rendre la main |
$this->poursuivreVers('proprietaire'); |
|
// Fin de l'action |
$this->setChrono('fin'); |
} |
|
public function modifierProprietaire($fichier) |
{ |
if (file_exists($fichier)) { |
// Initialisation de variables |
$aso_donnees = array(); |
$wakka_config = array(); |
$requetes = array(); |
|
// Récupération de la config du wikini |
$tab_fichier = file($fichier); |
foreach ($tab_fichier as $ligne_num => $ligne) { |
if(preg_match('/"(.*)"\s*=>\s*"(.*)"\s*,/', $ligne, $match)) { |
//trigger_error(print_r($match, true), E_USER_NOTICE); |
$wakka_config[$match[1]] = $match[2]; |
} |
} |
//trigger_error(print_r($wakka_config, true), E_USER_NOTICE); |
if (isset($wakka_config['mysql_user']) && isset($wakka_config['mysql_password']) && isset($wakka_config['mysql_host']) && isset($wakka_config['mysql_database'])) { |
// Connexion à la base de données |
$dsn = 'mysql://'.$wakka_config['mysql_user'].':'.$wakka_config['mysql_password'].'@'.$wakka_config['mysql_host'].'/'.$wakka_config['mysql_database']; |
$this->connexion = DB::connect($dsn, $this->bdd_options); |
if (PEAR::isError($this->connexion)) { |
$e = $this->connexion->getMessage(); |
trigger_error($e, E_USER_ERROR); |
} |
// Mise à jour des droits |
$requete = 'UPDATE '.$wakka_config['table_prefix'].'pages '. |
'SET owner = "'.$_POST['sc_owner'].'" '. |
((!empty($_POST['sc_page'])) ? 'WHERE tag IN ("'.implode('","', preg_split("~,~", $_POST['sc_page'], -1, PREG_SPLIT_NO_EMPTY)).'") ' : ''); |
$requetes[] = $requete."\n"; |
$res = $this->connexion->query($requete); |
if (PEAR::isError($res)) { |
$requetes[] = $res->getMessage().$res->getDebugInfo(); |
trigger_error($res->getMessage().$res->getDebugInfo(), E_USER_WARNING); |
} |
|
// Stockage des requetes |
if (count($requetes) > 0 ) { |
$aso_donnees['wikinis'][] = array( 'dossier' => $fichier, |
'nom' => $wakka_config['wakka_name'], |
'version' => $wakka_config['wikini_version'], |
'requetes' => $requetes); |
} |
} |
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $aso_donnees); |
} |
} |
} |
|
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: RecueilDeDonnees.class.php,v $ |