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.6 2004-10-22 17:25:31 jpm Exp $ |
// CVS : $Id: adsi_site.fonct.php,v 1.7 2004-10-26 18:41:28 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.6 $ $Date: 2004-10-22 17:25:31 $ |
*@version $Revision: 1.7 $ $Date: 2004-10-26 18:41:28 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
70,8 → 70,8 |
$requete = 'SELECT * '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_valeur = 102 '. |
'AND gsr_id_site_01 = gs_id_site '. |
'AND gsr_id_valeur IN (102, 103) '. |
'ORDER BY gsr_ordre'; |
|
$resultat = $db->query($requete); |
189,6 → 189,11 |
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</li>'."\n"); |
$squelette->setGroupElementTemplate('{label}'."\n". |
'{element}'."\n". |
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n". |
' '."\n" |
, 'double'); |
$squelette->setRequiredNoteTemplate("\n".'<p><span class="symbole_obligatoire">*</span> {requiredNote}</p>'."\n"); |
|
$partie_site_debut = '<fieldset>'."\n".'<legend>Configuration du site</legend>'."\n".'<ul>'."\n"; |
221,11 → 226,6 |
$label = '<label for="'.$id.'">'.'Raccourci clavier : '.'</label>'; |
$form->addElement('text', $id, $label, $aso_attributs); |
|
$id = 'defaut'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>'; |
$form->addElement('checkbox', $id, $label, '', $aso_attributs); |
|
// Requete pour connaitre les identifications dispo |
$requete = 'SELECT * '. |
'FROM gen_site_auth '. |
319,6 → 319,25 |
$label = '<label for="'.$id.'">'.'Langue : '.'</label>'; |
$form->addElement('select', $id, $label, $aso_options, $aso_attributs); |
|
$id = 'defaut'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++); |
$label = '<label for="'.$id.'">'.'En faire le site par défaut : '.'</label>'; |
$form->addElement('checkbox', $id, $label, '', $aso_attributs); |
|
// Groupe site externe |
$id = 'externe'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++); |
$label = 'oui : ';// Les navigateurs gères mal les labels au sein d'un même <li> |
$groupe[] =& HTML_QuickForm::createElement('checkbox', $id, $label, '', $aso_attributs); |
|
$id = 'gs_url'; |
$aso_attributs = array('id'=>$id, 'tabindex' => $tab_index++,'size' => 45, 'maxlength' => 255, 'value' => 'http://'); |
$label = 'url externe : ';// Les navigateurs gères mal les labels au sein d'un même <li> |
$groupe[] =& HTML_QuickForm::createElement('text', $id, $label, $aso_attributs); |
|
$label = '<label>'.'Le site n\'est pas géré par Papyrus : '.'</label>'; |
$form->addGroup($groupe, 'double', $label, '', false); |
|
$partie_site_fin = '</ul>'."\n".'</fieldset>'."\n"; |
$form->addElement('html', $partie_site_fin); |
|
442,8 → 461,8 |
$requete = 'SELECT gs_code_alpha, gs_code_num '. |
'FROM gen_site, gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_valeur = 102 '.// 102 = site "principal" |
'AND gsr_id_site_01 = gs_id_site '; |
'AND gsr_id_site_01 = gs_id_site '. |
'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe" |
$requete .= (isset($aso_valeurs['gs_id_site'])) ? 'AND gs_id_site != '.$aso_valeurs['gs_id_site'] : ''; |
|
$resultat = $db->query($requete); |
473,7 → 492,13 |
if (empty($aso_valeurs['gs_auteur'])) { |
$message .= '<p class="pap_erreur">Le champ "Auteur" ne doit pas être vide.</p>'; |
} |
|
if ($aso_valeurs['externe'] == 1 && (empty($aso_valeurs['gs_url']) || $aso_valeurs['gs_url'] == 'http://')) { |
$message .= '<p class="pap_erreur">'.'Vous avez désigné ce site comme étant externe. Il est nécessaire de saisir son URL!'.'</p>'; |
} |
if ($aso_valeurs['externe'] == 0 && (!empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://')) { |
$message .= '<p class="pap_erreur">'.'Vous avez saisie une l\'url : '.$aso_valeurs['gs_url'].'<br />'. |
'Vous conscidérez donc ce site comme étant externe. Il est nécessaire de cocher la case "oui"!'.'</p>'; |
} |
return $message; |
} |
|
498,6 → 523,14 |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
// Nous vérifions si nous avons à faire à un site externe. |
$id_type_site = '102';// par défaut on conscidére que c'est un site "principal" |
$requete_complement = ', gs_url = NULL'; |
if ($aso_valeurs['externe'] == 1 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') { |
$requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"'; |
$id_type_site = '103';// c'est un site "externe" |
} |
|
// Requete d'insertion des infos d'un site dans gen_site |
$requete = 'INSERT INTO gen_site '. |
'SET gs_id_site = '.$id_site.', '. |
513,17 → 546,18 |
'gs_description = "'.$aso_valeurs['gs_description'].'", '. |
'gs_auteur = "'.$aso_valeurs['gs_auteur'].'", '. |
'gs_date_creation = "'.date('Y-m-d H:i:s').'", '. |
'gs_ce_admin = '.$id_admin; |
$resultat = $db->query($requete) ; |
'gs_ce_admin = '.$id_admin. |
$requete_complement; |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
|
// Recherche du nouveau numéro d'ordre de ce site principal |
// Recherche du nouveau numéro d'ordre de ce site "principal" ou "externe" |
$requete = 'SELECT MAX(gsr_ordre) AS max_ordre '. |
'FROM gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_valeur = 102 ';// 102 = site "principal" |
'AND gsr_id_valeur IN (102, 103) ';// 102 = site "principal" et 103 = site "externe" |
$resultat = $db->query($requete) ; |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
535,7 → 569,7 |
$requete = 'INSERT INTO gen_site_relation '. |
'SET gsr_id_site_01 = '.$id_site.', '. |
'gsr_id_site_02 = '.$id_site.', '. |
'gsr_id_valeur = 102, '. |
'gsr_id_valeur = '.$id_type_site.', '. |
'gsr_ordre = '.$nouvel_ordre; |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
542,6 → 576,7 |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
|
// Gestion du site par défaut |
if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) { |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$requete_supr_defaut = 'DELETE FROM gen_site_relation '. |
563,7 → 598,8 |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
} |
// Ajout des répertoires du site soit par manipulation de fichier soit par FTP en fonction de l'activation du safe_mode ou pas |
// Ajout des répertoires des sites "principaux" soit par manipulation de fichier soit par FTP en fonction de la constante définie |
// par l'utilisateur dans le fichier de config avancée. |
$tab_rep_langue = array(GEN_DOSSIER_GENERIQUE, $aso_valeurs['gs_ce_i18n']); |
$tab_rep_site = array( GEN_DOSSIER_IMAGE, |
GEN_DOSSIER_STYLE, |
570,7 → 606,7 |
GEN_DOSSIER_SCRIPT, |
GEN_DOSSIER_SQUELETTE, |
GEN_DOSSIER_DOC); |
if (!GEN_FTP_UTILISE) { |
if (!GEN_FTP_UTILISE && $id_type_site == '101') { |
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. |
609,7 → 645,7 |
'Fichier n° : '. __FILE__ .'<br /></p>'; |
return $message; |
} |
} else { |
} else if (GEN_FTP_UTILISE && $id_type_site == '101') { |
// Création d'une connection ftp avec Net_FTP de PEAR |
// voir http://pear.php.net/manual/fr/package.networking.net-ftp.php |
|
699,7 → 735,17 |
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) { |
|
// Nous vérifions si nous avons à faire à un site externe. |
$id_type_site = '102';// par défaut on conscidére que c'est un site "principal" |
$requete_complement = ', gs_url = NULL'; |
if ($aso_valeurs['externe'] == 1 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') { |
$requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"'; |
$id_type_site = '103';// c'est un site "externe" |
} |
|
// Si le code alphanumérique à changé et que nous n'avons pas à faire à un site externe. |
if ($aso_valeurs['gs_code_alpha'] != $ancien_code_alphnum && $id_type_site == 102) { |
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; |
761,6 → 807,7 |
$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'].'", '. |
781,7 → 828,47 |
if (DB::isError($resultat)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) ); |
} |
// Gestion du site externe |
if ($id_type_site == 103) { |
// Vérification pour voir si nous avons à faire à une transformation d'un site "principal" en site "externe" |
$requete = 'SELECT COUNT(gsr_id_site_01) AS nbre_relation '. |
'FROM gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '. |
'AND gsr_id_valeur = 102 ';// 102 = site "principal" |
$nbre_relation = $db->getOne($requete); |
if (DB::isError($nbre_relation)) { |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $nbre_relation->getMessage(), $requete) ); |
} |
|
// Nous supprimons l'ancienne relation si nécessaire |
if ($nbre_relation >= 1) { |
$requete_supr_ext = 'DELETE FROM gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
'AND gsr_id_site_01 = '.$aso_valeurs['gs_id_site'].' '. |
'AND gsr_id_valeur = 102 ';// 102 = site "principal" |
$resultat_supr_ext = $db->query($requete_supr_ext); |
if (DB::isError($resultat_supr_ext)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_ext->getMessage(), $requete_supr_ext)); |
} |
$message_complement = 'Le site "principal" a été transformé en site "externe". Si nécessaire, veuillez '. |
'supprimer manuellement par FTP, le dossier contenant les fichiers de ce site sur '. |
'le serveur!'; |
} |
|
// Requete d'insertion de la relations site "externe" |
$requete = 'INSERT INTO gen_site_relation '. |
'SET gsr_id_site_01 = '.$id_site.', '. |
'gsr_id_site_02 = '.$id_site.', '. |
'gsr_id_valeur = '.$id_type_site.', '. |
'gsr_ordre = NULL '; |
$resultat = $db->query($requete); |
if (DB::isError($resultat)) { |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
} |
|
// Gestion du site par défaut |
if (isset($aso_valeurs['defaut']) && $aso_valeurs['defaut'] == 1) { |
$requete_supr_defaut = 'DELETE FROM gen_site_relation '. |
'WHERE gsr_id_site_01 = gsr_id_site_02 '. |
802,7 → 889,9 |
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)); |
} |
} |
$message = '<p class="genesia_info">'.'Succés de la modification du site.'.'</p>'; |
|
$message = '<p class="pap_info">'.'Succés de la modification du site.'.'</p>'; |
$message .= '<p class="pap_info">'.$message_complement.'</p>'; |
return $message; |
} |
|
965,6 → 1054,9 |
// +- Fin du code source --------------------------------------------------------------------------------+ |
/* |
* $Log: not supported by cvs2svn $ |
* Revision 1.6 2004/10/22 17:25:31 jpm |
* Changement du nom de la class CSS d'erreur. |
* |
* Revision 1.5 2004/10/19 15:57:55 jpm |
* Amélioration de la gestion des fichiers sur le serveur. |
* Ajout d'une contrainte pour éviter la suppression par erreur du site par défaut. |