Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 96 → Rev 115

/trunk/papyrus/applications/admin_site/bibliotheque/adsi_site.fonct.php
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".
'&nbsp;'."\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.