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. |
* |