Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 256 → Rev 257

/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.15 2005-01-04 19:52:50 alex Exp $
// CVS : $Id: adsi_site.fonct.php,v 1.16 2005-02-17 16:44:55 florian 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.15 $ $Date: 2005-01-04 19:52:50 $
*@version $Revision: 1.16 $ $Date: 2005-02-17 16:44:55 $
// +------------------------------------------------------------------------------------------------------+
*/
 
171,9 → 171,11
*/
function ADMIN_afficherFormSite($db, $url, $aso_valeurs = array(), $message = '')
{
//initialisation des valeurs
$aso_valeurs['modification'] = false;
$aso_valeurs['defaut'] = false;
$aso_valeurs['type_site_externe'] = 0;
// Nous cherchons à savoir si nous somme en modification
$aso_valeurs['modification'] = false;
if (isset($aso_valeurs['form_sites_modifier'])) {
$site_id = $aso_valeurs['form_sites_id_site'];
// Requete pour récupérer les informations sur le site à modifier
196,8 → 198,7
if (DB::isError($resultat)) {
die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
}
$aso_valeurs['defaut'] = 0;
$aso_valeurs['type_site_externe'] = 0;
$tab_type = GEN_retournerTableauTypeSiteExterne($db);
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT) ) {
if ($ligne->gsr_id_valeur == 101) {// 101 = site par défaut
574,103 → 575,12
*/
function ADMIN_enregistrerSite($db, $aso_valeurs, $id_admin)
{
$id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
if ($id_site == false) {
$message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'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 (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !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.', '.
'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
'gs_fichier_squelette = "defaut.html", '.
'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
'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.
$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" 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 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) );
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouvel_ordre = $ligne->max_ordre + 1;
// Requete d'insertion des relations dans gen_site_relation
$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 = '.$nouvel_ordre;
$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) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$requete_supr_defaut = 'DELETE FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
$resultat_supr_defaut = $db->query($requete_supr_defaut);
if (DB::isError($resultat_supr_defaut)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
}
// Requete d'insertion de la relations site par défaut
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = 101, '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
// Gestion des sites externes
if ($id_type_site == '103') {
// Requete d'insertion des relations dans gen_site_relation
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
// 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']);
788,6 → 698,103
}
$objet_pear_ftp->disconnect();
}
$id_site = SQL_obtenirNouveauId($db, 'gen_site','gs_id_site');
if ($id_site == false) {
$message = '<p class="erreur"> ERREUR Génésia admin : impossible de récupérer un identifiant pour la table gen_site.<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br /></p>';
return $message;
}
// Modification de la requete si nous avons à faire à un site externe.
$requete_complement = ', gs_url = NULL';
if (isset($aso_valeurs['type_site_externe']) && $aso_valeurs['type_site_externe'] > 0 && !empty($aso_valeurs['gs_url']) && $aso_valeurs['gs_url'] != 'http://') {
$requete_complement = ', gs_url = "'.$aso_valeurs['gs_url'].'"';
}
// Requete d'insertion des infos d'un site dans gen_site
$requete = 'INSERT INTO gen_site '.
'SET gs_id_site = '.$id_site.', '.
'gs_ce_i18n = "'.$aso_valeurs['gs_ce_i18n'].'", '.
'gs_ce_auth = '.$aso_valeurs['gs_ce_auth'].', '.
'gs_fichier_squelette = "defaut.html", '.
'gs_code_num = '.$aso_valeurs['gs_code_num'].', '.
'gs_code_alpha = "'.$aso_valeurs['gs_code_alpha'].'", '.
'gs_nom = "'.$aso_valeurs['gs_nom'].'", '.
'gs_raccourci_clavier = "'.$aso_valeurs['gs_raccourci_clavier'].'", '.
'gs_titre = "'.$aso_valeurs['gs_titre'].'", '.
'gs_mots_cles = "'.$aso_valeurs['gs_mots_cles'].'", '.
'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.
$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" 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 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) );
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouvel_ordre = $ligne->max_ordre + 1;
// Requete d'insertion des relations dans gen_site_relation
$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 = '.$nouvel_ordre;
$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) {
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$requete_supr_defaut = 'DELETE FROM gen_site_relation '.
'WHERE gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 101 ';// 101 = site par "defaut"
$resultat_supr_defaut = $db->query($requete_supr_defaut);
if (DB::isError($resultat_supr_defaut)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_supr_defaut->getMessage(), $requete_supr_defaut));
}
// Requete d'insertion de la relations site par défaut
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = 101, '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
// Gestion des sites externes
if ($id_type_site == '103') {
// Requete d'insertion des relations dans gen_site_relation
$requete = 'INSERT INTO gen_site_relation '.
'SET gsr_id_site_01 = '.$id_site.', '.
'gsr_id_site_02 = '.$id_site.', '.
'gsr_id_valeur = '.$aso_valeurs['type_site_externe'].', '.
'gsr_ordre = NULL ';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
}
$message = '<p class="pap_info">'.'Succés de l\'ajout du site.'.'</p>';
return $message;
}
1159,6 → 1166,9
// +- Fin du code source --------------------------------------------------------------------------------+
/*
* $Log: not supported by cvs2svn $
* Revision 1.15 2005/01/04 19:52:50 alex
* correction de bug de copie de répertoire récursif de PEAR.
*
* Revision 1.14 2004/12/03 19:22:53 jpm
* Gestion des types de sites externes gérés par Papyrus.
*