69,6 → 69,30 |
$this->poursuivreVers('config_fichier'); |
} |
|
private function rechercherWikini($chemin = null, $methode) |
{ |
if (isset($chemin)) { |
if (preg_match('/wakka\.config\.php$/', $chemin)) { |
$this->$methode($chemin); |
} else if (is_dir($chemin)) { |
// Nettoyage et ajout d'un slash final |
$chemin = rtrim(trim($chemin), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; |
// Nous vérifions que le dossier indiqué est un dossier de wikini |
$fichier = $chemin.'wakka.config.php'; |
$this->$methode($fichier); |
// Nous regardons si le dossier indiqué contient d'autres dossiers wikini |
foreach (scandir($chemin) as $dossier) { |
if (is_dir($chemin.$dossier.DIRECTORY_SEPARATOR) && $dossier != '..' && $dossier != '.') { |
$fichier = $chemin.$dossier.DIRECTORY_SEPARATOR.'wakka.config.php'; |
$this->$methode($fichier); |
} |
} |
} else { |
trigger_error('Le chemin suivant n\'est ni un dossier, ni un fichier wakka.config.php :'.$chemin, E_USER_WARNING); |
} |
} |
} |
|
public function executerConfigFichier() |
{ |
// Initialisation des variables |
78,7 → 102,7 |
// Gestion de l'url de l'envoie de mail |
$url = clone $GLOBALS['_SCRIPT_']['url']; |
$url->addQueryString('module', 'wikini'); |
$url->addQueryString('action', 'maj_fichier'); |
$url->addQueryString('action', 'config_fichier_maj'); |
$aso_donnees['url'] = $url->getUrl(); |
|
// Attribution des données pour remplir le squelette |
86,22 → 110,29 |
$this->setChrono('fin'); |
} |
|
public function executerMajFichier() |
public function executerConfigFichierMaj() |
{ |
// Initialisation des variables |
$this->setChrono('debut'); |
$asso_donnees = array(); |
|
// Récupération des infos pour conpléter le squelette du courriel |
if (isset($_POST['sc_chemin'])) { |
$chemin = $_POST['sc_chemin']; |
if (is_dir($chemin)) { |
foreach (scandir($chemin) as $dossier) { |
if (file_exists($fichier = $chemin.$dossier.DIRECTORY_SEPARATOR.'wakka.config.php')) { |
$this->rechercherWikini($_POST['sc_chemin'], 'modifierConfigFichier'); |
|
// Nous ajoutons une action à éxecuter avant de rendre la main |
$this->poursuivreVers('config_fichier'); |
|
// Fin de l'action |
$this->setChrono('fin'); |
} |
|
private function modifierConfigFichier($fichier) |
{ |
if (file_exists($fichier)) { |
$aso_donnees = array(); |
$arrFile = file($fichier); |
$handle = fopen($fichier, 'w'); |
if($handle != false){ |
// Set counters |
// Définition des compteurs |
$currentLine = 0; |
$cntFile = count($arrFile);// Nombre de ligne |
// Write contents, inserting $item as first item |
125,22 → 156,11 |
} else { |
trigger_error('Fichier '.$fichier.' impossible à ouvrir', E_USER_WARNING); |
} |
|
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $aso_donnees); |
} |
} |
} else { |
trigger_error('Le chemin suivant n\'est pas un dossier :'.$chemin, E_USER_WARNING); |
} |
} |
|
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $asso_donnees); |
$this->setChrono('fin'); |
|
// Nous ajoutons une action à éxecuter avant de rendre la main |
$this->poursuivreVers('config_fichier'); |
} |
|
public function executerSupprimerUtilisateur() |
{ |
// Initialisation des variables |
150,7 → 170,7 |
// Gestion de l'url de l'envoie de mail |
$url = clone $GLOBALS['_SCRIPT_']['url']; |
$url->addQueryString('module', 'wikini'); |
$url->addQueryString('action', 'maj_utilisateur'); |
$url->addQueryString('action', 'supprimer_utilisateur_maj'); |
$aso_donnees['url'] = $url->getUrl(); |
|
// Attribution des données pour remplir le squelette |
158,22 → 178,26 |
$this->setChrono('fin'); |
} |
|
public function executerMajUtilisateur() |
public function executerSupprimerUtilisateurMaj() |
{ |
// Initialisation des variables |
$this->setChrono('debut'); |
$asso_donnees = array(); |
|
// Récupération des infos pour conpléter le squelette du courriel |
if (isset($_POST['sc_chemin'])) { |
$chemin = $_POST['sc_chemin']; |
if (is_dir($chemin)) { |
foreach (scandir($chemin) as $dossier) { |
if (file_exists($fichier = $chemin.$dossier.DIRECTORY_SEPARATOR.'wakka.config.php')) { |
$this->rechercherWikini($_POST['sc_chemin'], 'modifierSupprimerUtilisateur'); |
|
// Nous ajoutons une action à éxecuter avant de rendre la main |
$this->poursuivreVers('supprimer_utilisateur'); |
|
// Fin de l'action |
$this->setChrono('fin'); |
} |
if (file_exists($fichier = $chemin.$dossier.DIRECTORY_SEPARATOR.'wakka.config.php')) { |
|
private function modifierSupprimerUtilisateur($fichier) |
{ |
if (file_exists($fichier)) { |
// Initialisation de variables |
$aso_donnees = array(); |
$wakka_config = array(); |
$requetes = array(); |
|
216,7 → 240,7 |
|
// Stockage des requetes |
if (count($requetes) > 0 ) { |
$aso_donnees['wikinis'][] = array( 'dossier' => $dossier, |
$aso_donnees['wikinis'][] = array( 'dossier' => $fichier, |
'nom' => $wakka_config['wakka_name'], |
'version' => $wakka_config['wikini_version'], |
'requetes' => $requetes); |
224,20 → 248,10 |
} else { |
trigger_error(print_r($wakka_config, true), E_USER_NOTICE); |
} |
} |
} |
} else { |
trigger_error('Le chemin suivant n\'est pas un dossier :'.$chemin, E_USER_WARNING); |
} |
} |
|
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $aso_donnees); |
$this->setChrono('fin'); |
|
// Nous ajoutons une action à éxecuter avant de rendre la main |
$this->poursuivreVers('supprimer_utilisateur'); |
} |
} |
|
public function executerConfigBdd() |
{ |
248,30 → 262,36 |
// Gestion de l'url de l'envoie de mail |
$url = clone $GLOBALS['_SCRIPT_']['url']; |
$url->addQueryString('module', 'wikini'); |
$url->addQueryString('action', 'maj_bdd'); |
$url->addQueryString('action', 'config_bdd_maj'); |
$aso_donnees['url'] = $url->getUrl(); |
|
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $aso_donnees); |
|
// Fin de l'action |
$this->setChrono('fin'); |
} |
|
public function executerMajBdd() |
public function executerConfigBddMaj() |
{ |
// Initialisation des variables |
$this->setChrono('debut'); |
$asso_donnees = array(); |
|
// Récupération des infos pour conpléter le squelette du courriel |
if (isset($_POST['sc_chemin'])) { |
$chemin = $_POST['sc_chemin']; |
if (is_dir($chemin)) { |
foreach (scandir($chemin) as $dossier) { |
if (file_exists($fichier = $chemin.$dossier.DIRECTORY_SEPARATOR.'wakka.config.php')) { |
$this->rechercherWikini($_POST['sc_chemin'], 'modifierConfigBdd'); |
|
// Nous ajoutons une action à éxecuter avant de rendre la main |
$this->poursuivreVers('config_bdd'); |
|
// Fin de l'action |
$this->setChrono('fin'); |
} |
if (file_exists($fichier = $chemin.$dossier.DIRECTORY_SEPARATOR.'wakka.config.php')) { |
|
private function modifierConfigBdd($fichier) |
{ |
if (file_exists($fichier)) { |
// Initialisation de variables |
$aso_donnees = array(); |
$wakka_config = array(); |
$requetes = array(); |
|
345,7 → 365,7 |
|
// Stockage des requetes |
if (count($requetes) > 0 ) { |
$aso_donnees['wikinis'][] = array( 'dossier' => $dossier, |
$aso_donnees['wikinis'][] = array( 'dossier' => $fichier, |
'nom' => $wakka_config['wakka_name'], |
'version' => $wakka_config['wikini_version'], |
'requetes' => $requetes); |
353,27 → 373,68 |
} else { |
trigger_error(print_r($wakka_config, true), E_USER_NOTICE); |
} |
// Attribution des données pour remplir le squelette |
$this->getRegistre()->set('squelette_donnees', $aso_donnees); |
} |
} |
} else { |
trigger_error('Le chemin suivant n\'est pas un dossier :'.$chemin, E_USER_WARNING); |
} |
} |
|
public function executerNettoyage() |
{ |
// 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', 'nettoyage_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 executerNettoyageMaj() |
{ |
// Initialisation des variables |
$this->setChrono('debut'); |
|
// Récupération des infos pour conpléter le squelette du courriel |
$this->rechercherWikini($_POST['sc_chemin'], 'lancerNettoyage'); |
|
// Nous ajoutons une action à éxecuter avant de rendre la main |
$this->poursuivreVers('config_bdd'); |
$this->poursuivreVers('nettoyage'); |
|
// Fin de l'action |
$this->setChrono('fin'); |
} |
|
public function executerNettoyage() |
public function lancerNettoyage($fichier) |
{ |
// Initialisation des variables |
$this->setChrono('debut'); |
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); |
} |
$res = $this->connexion->query('SHOW TABLES'); |
if (PEAR::isError($res)) { |
die($res->getMessage()); |
384,6 → 445,11 |
$tab_tables[] = $ligne[0]; |
} |
|
// Ajout des nouveaux referrers à ceux par défaut |
if (!empty($_POST['sc_referrers'])) { |
$this->sites = array_merge(preg_split("~,~", $_POST['sc_referrers'], -1, PREG_SPLIT_NO_EMPTY), $this->sites); |
} |
|
foreach ($tab_tables as $table) { |
$requetes = array(); |
// Referrers |
451,17 → 517,18 |
} |
// Stockage des requetes |
if (count($requetes) > 0 ) { |
$aso_table['nom'] = $table; |
$aso_table['requetes'] = $requetes; |
$aso_donnees['tables'][] = $aso_table; |
$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); |
$this->setChrono('fin'); |
} |
} |
} |
|
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |