Rev 793 | Rev 1033 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*vim: set expandtab tabstop=4 shiftwidth=4: */// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org)//// Ce logiciel est un programme informatique servant à gérer du contenu et des// applications web.// Ce logiciel est régi par la licence CeCILL soumise au droit français et// respectant les principes de diffusion des logiciels libres. Vous pouvez// utiliser, modifier et/ou redistribuer ce programme sous les conditions// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA// sur le site "http://www.cecill.info".// En contrepartie de l'accessibilité au code source et des droits de copie,// de modification et de redistribution accordés par cette licence, il n'est// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,// seule une responsabilité restreinte pèse sur l'auteur du programme, le// titulaire des droits patrimoniaux et les concédants successifs.// A cet égard l'attention de l'utilisateur est attirée sur les risques// associés au chargement, à l'utilisation, à la modification et/ou au// développement et à la reproduction du logiciel par l'utilisateur étant// donné sa spécificité de logiciel libre, qui peut le rendre complexe à// manipuler et qui le réserve donc à des développeurs et des professionnels// avertis possédant des connaissances informatiques approfondies. Les// utilisateurs sont donc invités à charger et tester l'adéquation du// logiciel à leurs besoins dans des conditions permettant d'assurer la// sécurité de leurs systèmes et ou de leurs données et, plus généralement,// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez// pris connaissance de la licence CeCILL, et que vous en avez accepté les// termes.// ----// CVS : $Id: adme_general.fonct.php,v 1.16 2006-04-28 12:41:49 florian Exp $/*** Contient l'affichage par défaut de l'appli quand aucune actin** Ce fichier contient les fonctions d'affichage commune à toute l'application Admin Menu.* Nous y trouvons, entre autre, la fonction d'affichage par défaut de l'appli.**@package Admin_menu*@subpackage Fonctions//Auteur original :*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>//Autres auteurs :*@author Aucun*@copyright Tela-Botanica 2000-2004*@version $Revision: 1.16 $ $Date: 2006-04-28 12:41:49 $// +------------------------------------------------------------------------------------------------------+*/// +------------------------------------------------------------------------------------------------------+// | ENTETE du PROGRAMME |// +------------------------------------------------------------------------------------------------------+// +------------------------------------------------------------------------------------------------------+// | LISTE de FONCTIONS |// +------------------------------------------------------------------------------------------------------+/** Fonction ADME_afficherFormPrincipal() - Affichage par défaut.** Fournit l'affichage par défaut de l'application Admin Menus.** @param object objet Pear de connection à la base de données.* @param object objet Pear représentant l'url de base.* @return string le XHTML par défaut de la page.*/function ADME_afficherFormPrincipal($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action){/*$id_langue = $GLOBALS['_GEN_commun']['i18n'];//identifiant de la langue choisie//---------------------------------------------------------------------------------------------------------------// Nous affichons la liste des menus classiques et communs$retour = '';if (isset($id_langue) && ($id_langue!='')) {$langue_test=$id_langue;} else {$langue_test=GEN_I18N_ID_DEFAUT;}*/$db=$objet_pear_db;$id_langue = $GLOBALS['_GEN_commun']['i18n']; //identifiant de la langue choisie// Langue en cours : langue choisie ou langue par defaut (principale)if (isset($id_langue) && ($id_langue!='')) {$langue_test=$id_langue;} else {$langue_test=GEN_I18N_ID_DEFAUT;}//$langue_test=GEN_I18N_ID_DEFAUT;// Liste des sites principaux :// Recherche de tous les sites langue en cours$requete = 'SELECT * '.'FROM gen_site, gen_site_relation '.'WHERE gsr_id_site_01 = gsr_id_site_02 '.'AND gsr_id_site_01 = gs_id_site '.'AND gsr_id_valeur IN (102, 103) '.'AND gs_ce_i18n = "'.$langue_test.'" '.'ORDER BY gsr_ordre';$resultat = $db->query($requete);(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;$liste_site=array();while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {if ($langue_test == GEN_I18N_ID_DEFAUT) {$requete_est_traduction = 'SELECT gsr_id_site_01 '.'FROM gen_site_relation '.'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .'AND gsr_id_site_01 <> gsr_id_site_02 ' .'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"$resultat_est_traduction = $db->query($requete_est_traduction);(DB::isError($resultat_est_traduction))? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)): '';if ( $resultat_est_traduction->numRows() == 0 ) {$liste_site[]=$ligne;}}else {$liste_site[]=$ligne;}}$resultat->free();// Si la langue en cours n'est pas la langue par défaut, recherche des sites ayant comme langue// la langue par defaut, non traduits dans la langue en cours et n'etant pas des traductionsif ($langue_test != GEN_I18N_ID_DEFAUT) {$requete = 'SELECT * '.'FROM gen_site, gen_site_relation '.'WHERE gsr_id_site_01 = gsr_id_site_02 '.'AND gs_id_site = gsr_id_site_01 '.'AND gsr_id_valeur IN (102, 103) '.'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.'ORDER BY gs_code_num ASC';// 102 = site "principal" et 103 = site "externe"$resultat = $db->query($requete);(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';// Recherche de tous les sites de la langue principale qui ne sont pas traduits dans la langue en courswhile ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {$requete_est_traduction = 'SELECT gsr_id_site_01 '.'FROM gen_site_relation '.'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .'AND gsr_id_site_01 <> gsr_id_site_02 ' .'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"$resultat_est_traduction = $db->query($requete_est_traduction);(DB::isError($resultat_est_traduction))? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)): '';if ( $resultat_est_traduction->numRows() == 0 ) {if (isset($id_langue) && ($id_langue!='')) {$langue_test=$id_langue;} else {$langue_test=GEN_I18N_ID_DEFAUT;}$requete_traduction = 'SELECT gsr_id_site_01 '.'FROM gen_site_relation, gen_site '.'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .'AND gsr_id_site_02 = gs_id_site '.'AND gs_ce_i18n = "'.$langue_test.'" '.'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"$resultat_traduction = $db->query($requete_traduction);(DB::isError($resultat_traduction))? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)): '';if ( $resultat_traduction->numRows() == 0 ) {$liste_site []=$ligne;}$resultat_traduction->free();}$resultat_est_traduction->free();}$resultat->free();}/*$requete = 'SELECT gs_id_site, gs_code_num, gs_code_alpha, gs_nom, gs_ce_i18n '.'FROM gen_site, gen_site_relation '.'WHERE gsr_id_site_01 = gsr_id_site_02 '.'AND gs_id_site = gsr_id_site_01 '.'AND gsr_id_valeur = 102 '.// 102 = site "principal"'AND gs_ce_i18n = "'.$langue_test.'" '.'ORDER BY gsr_ordre DESC';$resultat = $objet_pear_db->query($requete);(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';$liste_site=array();while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {// Si le site trouvé est une traduction vers la langue principale, on ne le selectionne pasif ($langue_test == GEN_I18N_ID_DEFAUT) {$requete_est_traduction = 'SELECT gsr_id_site_01 '.'FROM gen_site_relation '.'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .'AND gsr_id_site_01 <> gsr_id_site_02 ' .'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"$resultat_est_traduction = $objet_pear_db->query($requete_est_traduction);(DB::isError($resultat_est_traduction))? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)): '';if ( $resultat_est_traduction->numRows() == 0 ) {$liste_site[]=$ligne;}}else {$liste_site[]=$ligne;}}$resultat->free();// On recherche l'ensemble des site en excluant le site admin (administration de Papyrus).if ($langue_test != GEN_I18N_ID_DEFAUT) {// Site ayant commme langue, la langue par defaut$requete = 'SELECT gs_id_site, gs_code_num, gs_code_alpha, gs_nom, gs_ce_i18n '.'FROM gen_site, gen_site_relation '.'WHERE gsr_id_site_01 = gsr_id_site_02 '.'AND gs_id_site = gsr_id_site_01 '.'AND gsr_id_valeur = 102 '.// 102 = site "principal"'AND gs_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" '.'ORDER BY gsr_ordre DESC';$resultat = $objet_pear_db->query($requete);(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';// Est il traduit ? Non, alors affichagewhile ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {if (isset($id_langue) && ($id_langue!='')) {$langue_test=$id_langue;} else {$langue_test=GEN_I18N_ID_DEFAUT;}$requete_est_traduction = 'SELECT gsr_id_site_01 '.'FROM gen_site_relation '.'WHERE '.$ligne->gs_id_site.' = gsr_id_site_02 ' .'AND gsr_id_site_01 <> gsr_id_site_02 ' .'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"$resultat_est_traduction = $objet_pear_db->query($requete_est_traduction);(DB::isError($resultat_est_traduction))? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_est_traduction->getMessage(), $requete_est_traduction)): '';if ( $resultat_est_traduction->numRows() == 0 ) {$requete_traduction = 'SELECT gsr_id_site_01 '.'FROM gen_site_relation, gen_site '.'WHERE '.$ligne->gs_id_site.' = gsr_id_site_01 ' .'AND gsr_id_site_02 = gs_id_site '.'AND gs_ce_i18n = "'.$langue_test.'" '.'AND gsr_id_valeur = 1 ';// 1 = "avoir traduction"$resultat_traduction = $objet_pear_db->query($requete_traduction);(DB::isError($resultat_traduction))? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction)): '';if ( $resultat_traduction->numRows() == 0 ) {$liste_site []=$ligne;}$resultat_traduction->free();}}$resultat->free();}*/// Traduction d'un site principal uniquement :$requete = 'SELECT * '.'FROM gen_site_relation '.'WHERE gsr_id_site_02 = '.$adme_site_id.' '.'AND gsr_id_valeur =1 '; // 1 = "avoir traduction"$resultat = $db->query($requete);if (DB::isError($resultat)) {die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );}if ( $resultat->numRows() == 0 ) {$adme_site_id =$adme_site_id;}else {$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);$adme_site_id = $ligne->gsr_id_site_01;}$resultat->free();//---------------------------------------------------------------------------------------------------------------// Création du formulaire// Notes : Quickform semble remplacer les & des & à nouveau par des & solution utiliser str_replace()...$form =& new HTML_QuickForm('adme_form_sites', 'post', str_replace('&', '&', $objet_pear_url->getUrl()));$tab_index = 1000;$squelette =& $form->defaultRenderer();$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'{content}'."\n"."\n".'</form>'."\n");$squelette->setElementTemplate( '{label}'."\n".'{element}'."\n".'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n");$partie_site_debut = '<fieldset>'."\n".'<legend>'.ADME_LG_FORM_SITE_TITRE.'</legend>'."\n";$form->addElement('html', $partie_site_debut);$id = 'adme_site_id';$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onchange' => 'javascript:this.form.submit();');$label = '<label for="'.$id.'">'.ADME_LG_FORM_SITE_CHOIX.'</label>';$objet_select = new HTML_QuickForm_select($id, $label, '', $aso_attributs);$aso_options = array();foreach ($liste_site as $ligne ) {if (!isset($adme_site_id) || $adme_site_id == 0) {$adme_site_id = $ligne->gs_id_site;}if ($ligne->gs_id_site == $adme_site_id) {$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site, 'selected="selected"');// Attribution du nom du site sur lequel on travaille pour le titre$site_nom = $ligne->gs_nom;} else {$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_id_site);}}$form->addElement($objet_select);$form->addElement('submit', 'choisir_site', ADME_LG_FORM_SITE_VALIDER);$partie_site_fin = "\n".'</fieldset>';$form->addElement('html', $partie_site_fin);// Instanciation des valeurs par défaut du formulaire$form->setDefaults($adme_site_id);$retour ='';$retour .= '<h1>'.ADME_LG_MENU_TITRE.$site_nom.'</h1>'."\n";$retour .= $form->toHTML()."\n";//---------------------------------------------------------------------------------------------------------------// Gestion des menus classiques$retour .= '<p>'."\n";$objet_pear_url_copie = $objet_pear_url;$objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_AJOUTER);$objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id);$objet_pear_url_copie->addQueryString('adme_menu_id', 0);$url_ajout_menu_classique_n1 = $objet_pear_url_copie->getURL();//unset($url_ajout_menu_n1);$retour .= '<a href="'.$url_ajout_menu_classique_n1.'" >'.ADME_LG_MENU_CLASSIQUE_RACINE.' '.'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'.'</a>'."\n";$retour .= '</p>'."\n";$retour .= ADME_afficherListeMenuClassique($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0);//---------------------------------------------------------------------------------------------------------------// Gestion des menus communs$retour .= '<p>'."\n";$objet_pear_url_copie = $objet_pear_url;$objet_pear_url_copie->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_AJOUTER);$objet_pear_url_copie->addQueryString('adme_site_id', $adme_site_id);$objet_pear_url_copie->addQueryString('adme_menu_id', 0);$url_ajout_menu_commun_n1 = $objet_pear_url_copie->getURL();//unset($url_ajout_menu_n1);$retour .= '<a href="'.$url_ajout_menu_commun_n1.'">'.ADME_LG_MENU_COMMUN_RACINE.' '.'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="+" />'.'</a>'."\n";$retour .= '</p>'."\n";$retour .= ADME_afficherListeMenuCommun($objet_pear_db, $objet_pear_url, $adme_site_id, $adme_menu_id, $adme_action, 0);return $retour;}// +------------------------------------------------------------------------------------------------------+// | PIED du PROGRAMME |// +------------------------------------------------------------------------------------------------------+/* +--Fin du code ----------------------------------------------------------------------------------------+** $Log: not supported by cvs2svn $* Revision 1.15 2006/03/24 13:03:24 ddelon* bug afficheur multilinguisme** Revision 1.14 2006/03/23 20:24:59 ddelon* *** empty log message ***** Revision 1.13 2006/03/13 21:00:20 ddelon* Suppression messages d'erreur multilinguisme** Revision 1.12 2006/03/02 10:49:49 ddelon* Fusion branche multilinguisme dans branche principale** Revision 1.11.2.1 2006/02/28 14:02:11 ddelon* Finition multilinguisme** Revision 1.11 2005/07/18 16:14:32 ddelon* css admin + menu communs** Revision 1.10 2005/07/08 21:57:24 ddelon* Copyright** Revision 1.9 2005/05/12 16:51:37 alex* Changement de l'odre d'apparition des sites dans l'administration des menus.** Revision 1.8 2005/01/26 16:18:05 jpm* Correction bogue 221 : mauvais réglage du titre.** Revision 1.7 2004/11/24 11:31:51 jpm* Ajout d'une contante de langue à la place d'un texte.** Revision 1.6 2004/11/10 17:26:07 jpm* Fin gestion de la traduction.** Revision 1.5 2004/11/10 11:58:54 jpm* Mise en place des constantes de traduction de l'appli.** Revision 1.4 2004/11/09 17:48:35 jpm* Gestion de différentes interfaces d'administration.** Revision 1.3 2004/11/09 12:37:34 jpm* Fin de gestion des menus et mise en conformité avec la convention de codage.** Revision 1.2 2004/11/08 17:41:07 jpm* Légères corrections : multisite, corrections SQL.** Revision 1.1 2004/11/04 12:26:42 jpm* Contient les fonctions d'affichage général de l'appli ADME.*** +-- Fin du code ----------------------------------------------------------------------------------------+*/?>