20,7 → 20,7 |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: adsi_site.fonct.php,v 1.5 2004-10-19 15:57:55 jpm Exp $ |
// CVS : $Id: adsi_site.fonct.php,v 1.4 2004-10-18 18:27:41 jpm Exp $ |
/** |
* Bibliothèque de fonctions d'admininistration des projets |
* |
35,7 → 35,7 |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.5 $ $Date: 2004-10-19 15:57:55 $ |
*@version $Revision: 1.4 $ $Date: 2004-10-18 18:27:41 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
47,7 → 47,7 |
* Elle permet la création rapide de formulaire basé sur les tables Mysql. |
*/ |
require_once ADSI_CHEMIN_BIBLIOTHEQUE_API.'formulaire_1.0/FORM_Form.class.php'; |
if (GEN_FTP_UTILISE) { |
if (GEN_SAFE_MODE) { |
/** Inclusion bibliothèque de PEAR gérant le FTP.*/ |
require_once ADSI_CHEMIN_BIBLIOTHEQUE_PEAR.'Net/FTP.php'; |
} |
255,7 → 255,7 |
// le dossier du site. |
if ($aso_valeurs['modification']) { |
$aso_options = array(); |
if (!GEN_FTP_UTILISE) { |
if (!GEN_SAFE_MODE) { |
$chemin_squelettes = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP. |
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP; |
$dossier = opendir($chemin_squelettes); |
430,8 → 430,7 |
if (empty($aso_valeurs['gs_code_alpha'])) { |
$message .= '<p class="genesia_erreur">Le champ "Code alphanumérique" ne doit pas être vide.</p>'; |
} |
if ($aso_valeurs['gs_code_num'] == '') { |
// Note: ne pas utilisez empty() car si on veut saisir 0, cela est conscidéré comme vide! |
if (empty($aso_valeurs['gs_code_num'])) { |
$message .= '<p class="genesia_erreur">Le champ "Code numérique" ne doit pas être vide.</p>'; |
} |
if (preg_match('/^[0-9]+$/',$aso_valeurs['gs_code_num']) == 0) { |
564,27 → 563,23 |
} |
} |
// Ajout des répertoires du site soit par manipulation de fichier soit par FTP en fonction de l'activation du safe_mode ou pas |
$tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']); |
$tab_rep_site = array( GEN_DOSSIER_IMAGE, |
GEN_DOSSIER_STYLE, |
GEN_DOSSIER_SCRIPT, |
GEN_DOSSIER_SQUELETTE, |
GEN_DOSSIER_DOC); |
if (!GEN_FTP_UTILISE) { |
foreach ($tab_rep_langue as $nom_rep_langue) { |
foreach ($tab_rep_site as $nom_rep_site) { |
$chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP. |
$nom_rep_langue.GEN_SEP.$nom_rep_site; |
$vieux_umask = umask(0); |
$resultat = creerDossier($chemin_repertoire, 0755, GEN_SEP); |
umask($vieux_umask); |
if ($resultat == false) { |
$message = '<p class="genesia_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'. |
'Répertoire : '. $chemin_repertoire .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
$tableau_repertoires = array( GEN_DOSSIER_IMAGE, |
GEN_DOSSIER_STYLE, |
GEN_DOSSIER_SCRIPT, |
GEN_DOSSIER_SQUELETTE, |
GEN_DOSSIER_DOC); |
if (!GEN_SAFE_MODE) { |
foreach ($tableau_repertoires as $nom_repertoire) { |
$chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP.$aso_valeurs['gs_ce_i18n'].GEN_SEP.$nom_repertoire; |
$vieux_umask = umask(0); |
$resultat = creerDossier($chemin_repertoire, 0777, GEN_SEP); |
umask($vieux_umask); |
if ($resultat == false) { |
$message = '<p class="genesia_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire.<br />'. |
'Répertoire : '. $chemin_repertoire .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
} |
$chemin_squelette_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP. |
593,7 → 588,7 |
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_SQUELETTE.GEN_SEP.GEN_FICHIER_SQUELETTE; |
if (!copy($chemin_squelette_defaut, $chemin_squelette_site)) { |
$message = '<p class="genesia_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de squellete par défaut.<br />'. |
'Fichier : '. $chemin_squelette_site .'<br />'. |
'Fichier : '. $$chemin_squelette_site .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
604,7 → 599,7 |
$aso_valeurs['gs_ce_i18n'].GEN_SEP.GEN_DOSSIER_STYLE.GEN_SEP.GEN_FICHIER_STYLE; |
if (!copy($chemin_style_defaut, $chemin_style_site)) { |
$message = '<p class="genesia_erreur"> ERREUR Papyrus admin : impossible de créer le fichier de style par défaut.<br />'. |
'Fichier : '. $chemin_style_site .'<br />'. |
'Fichier : '. $$chemin_style_site .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
630,19 → 625,17 |
'Fichier n° : '. __FILE__ .'<br /><p>'; |
return $message; |
} |
foreach ($tab_rep_langue as $nom_rep_langue) { |
foreach ($tab_rep_site as $nom_rep_site) { |
$chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP. |
$nom_rep_langue.GEN_SEP.$nom_rep_site.GEN_SEP; |
$resultat = $objet_pear_ftp->mkdir($chemin_repertoire, true) ; |
if (PEAR::isError($resultat)) { |
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'. |
'Répertoire : '. $chemin_repertoire .'<br />'. |
'Erreur origine : '. $resultat->getMessage() .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
foreach ($tableau_repertoires as $nom_repertoire) { |
$chemin_repertoire = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP. |
$aso_valeurs['gs_ce_i18n'].GEN_SEP.$nom_repertoire.GEN_SEP; |
$resultat = $objet_pear_ftp->mkdir($chemin_repertoire, true) ; |
if (PEAR::isError($resultat)) { |
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de créer le répertoire par ftp.<br />'. |
'Répertoire : '. $chemin_repertoire .'<br />'. |
'Erreur origine : '. $resultat->getMessage() .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
} |
$chemin_squelette_defaut = PAP_CHEMIN_RACINE.GEN_CHEMIN_COMMUN.GEN_DOSSIER_GENERIQUE.GEN_SEP. |
691,76 → 684,6 |
*/ |
function ADMIN_modifierSite($db, $aso_valeurs, $id_admin) |
{ |
// Récupération de l'ancien code alphanumérique |
$requete = 'SELECT gs_code_alpha '. |
'FROM gen_site '. |
'WHERE gs_id_site = '.$aso_valeurs['gs_id_site']; |
$ancien_code_alphnum = $db->getOne($requete); |
if (DB::isError($ancien_code_alphnum)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $ancien_code_alphnum->getMessage(), $requete) ); |
} |
if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum) { |
if (!GEN_FTP_UTILISE) { |
$chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP; |
$chemin_site_nouveau = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP; |
if (!rename($chemin_site_ancien, $chemin_site_nouveau)) { |
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de changer le nom du dossier du site.<br />'. |
'Ancien nom : '. $chemin_site_ancien .'<br />'. |
'Nouveau nom : '. $chemin_site_nouveau .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
} else { |
$chemin_site_ancien = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP; |
$chemin_site_nouveau = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$aso_valeurs['gs_code_alpha'].GEN_SEP; |
// Création d'une connection ftp avec Net_FTP de PEAR |
// voir http://pear.php.net/manual/fr/package.networking.net-ftp.php |
// création de l'objet pear ftp |
$objet_pear_ftp = new Net_FTP(PAP_FTP_SERVEUR, PAP_FTP_PORT); |
// création de la connexion |
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT); |
// identification |
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE); |
// Gestion des erreurs ftp |
if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) { |
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'. |
'Serveur : '. PAP_FTP_SERVEUR .'<br />'. |
'Utilisateur : '. PAP_FTP_UTILISATEUR .'<br />'. |
'Erreur connexion : '.$ftp_conn->getMessage().'<br />'. |
'Erreur login : '.$ftp_login_result->getMessage().'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /><p>'; |
return $message; |
} |
$resultat = $objet_pear_ftp->putRecursive($chemin_site_ancien, $chemin_site_nouveau, false, FTP_BINARY); |
if (PEAR::isError($resultat)) { |
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de copier l\'ancien dossier du site.<br />'. |
'Dossier site ancien : '. $chemin_site_ancien .'<br />'. |
'Dossier site nouveau : '. $chemin_site_nouveau .'<br />'. |
'Erreur origine : '. $resultat->getMessage() .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
// On utilise la racine FTP pour rm |
$chemin_site_ancien = PAP_FTP_RACINE.GEN_CHEMIN_SITES.$ancien_code_alphnum.GEN_SEP; |
// Changement du niveau d'erreur pour éviter les Notices PHP dues à Net_FTP |
error_reporting(E_PARSE); |
$resultat = $objet_pear_ftp->rm($chemin_site_ancien, true); |
if (PEAR::isError($resultat)) { |
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de supprimer l\'ancien dossier du site.<br />'. |
'Dossier site ancien : '. $chemin_site_ancien .'<br />'. |
'Erreur origine : '. $resultat->getMessage() .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
// Retour au niveau d'erreur définit dans le fichier de config de Papyrus |
error_reporting(GEN_DEBOGAGE_NIVEAU); |
$objet_pear_ftp->disconnect(); |
} |
} |
// Requete de mise à jour des infos d'un site dans gen_site |
$requete = 'UPDATE gen_site '. |
'SET gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '. |
829,14 → 752,6 |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $code_alpha_site_principal->getMessage(), $requete)); |
} |
|
// Nous vérifions que le site n'a pas le code alphanum correspondant au site par défaut d'administration (admin). |
if ($code_alpha_site_principal == GEN_SITE_DEFAUT) { |
$message = '<p class="pap_erreur">Si vous voulez vraiment supprimer le site d\'administration par défaut de '. |
'Papyrus, veuillez commencer par changer la valeur de son code alphanumérique. Vous pourrez '. |
'ensuite le supprimer via cette interface.</p>'; |
return $message; |
} |
|
// Recherche des différents sites liés à celui que l'on veut détruire |
// Cela comprend le site à détruire lui méme car il posséde la relations |
// sur lui meme "site principale". |
911,7 → 826,7 |
$resultat->free(); |
|
// Suppression des répertoires du site |
if (!GEN_FTP_UTILISE) { |
if (!GEN_SAFE_MODE) { |
$chemin_repertoire = PAP_CHEMIN_RACINE.GEN_CHEMIN_SITES.$code_alpha_site_principal; |
$resultat = supprimerDossier($chemin_repertoire, GEN_SEP); |
if (!$resultat) { |
930,7 → 845,7 |
// création de la connexion |
$ftp_conn = $objet_pear_ftp->connect(PAP_FTP_SERVEUR, PAP_FTP_PORT); |
// identification |
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE); |
$ftp_login_result = $objet_pear_ftp->login(PAP_FTP_UTILISATEUR, PAP_FTP_MOT_DE_PASSE);; |
// Gestion des erreurs ftp |
if ((PEAR::isError($ftp_conn) || PEAR::isError($ftp_login_result))) { |
$message = '<p class="pap_erreur"> ERREUR Papyrus admin : impossible de se connecter par ftp.<br />'. |
965,9 → 880,6 |
// +- Fin du code source --------------------------------------------------------------------------------+ |
/* |
* $Log: not supported by cvs2svn $ |
* Revision 1.4 2004/10/18 18:27:41 jpm |
* Correction problèmes FTP et manipulation de fichiers. |
* |
* Revision 1.3 2004/09/23 16:51:27 jpm |
* Ajout d'informations supplémentaires sur les messages d'erreur. |
* |