Rev 56 | Rev 143 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*vim: set expandtab tabstop=4 shiftwidth=4: */// +------------------------------------------------------------------------------------------------------+// | PHP version 4.1 |// +------------------------------------------------------------------------------------------------------+// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) |// +------------------------------------------------------------------------------------------------------+// | This library is free software; you can redistribute it and/or |// | modify it under the terms of the GNU Lesser General Public |// | License as published by the Free Software Foundation; either |// | version 2.1 of the License, or (at your option) any later version. |// | |// | This library is distributed in the hope that it will be useful, |// | but WITHOUT ANY WARRANTY; without even the implied warranty of |// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |// | Lesser General Public License for more details. |// | |// | You should have received a copy of the GNU Lesser General Public |// | 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: admin_menu.php,v 1.7 2004-10-25 16:28:02 jpm Exp $/*** Application gérant les menus de Papyrus** Cette application permet de gérer les menus classiques, les menus communs* et les liaison d'une application à un menu.**@package Admin_menu//Auteur original :*@author Laurent COUDOUNEAU <lc@gsite.org>//Autres auteurs :*@author Alexandre GRANIER <alexandre@tela-botanica.org>*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>*@copyright Tela-Botanica 2000-2004*@version $Revision: 1.7 $ $Date: 2004-10-25 16:28:02 $// +------------------------------------------------------------------------------------------------------+*/// +------------------------------------------------------------------------------------------------------+// | ENTÊTE du PROGRAMME |// +------------------------------------------------------------------------------------------------------+/*Mettre ici les inclusions de fichiers*//** Inclusion du fichier de configuration de cette application.*/require_once GEN_CHEMIN_PAP.'applications/admin_menu/configuration/adme_configuration.inc.php';/** Inclusion de la bibliothèque PEAR de conception de formulaire.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm.php';require_once ADME_CHEMIN_BIBLIOTHEQUE_PEAR.'HTML/QuickForm/select.php';/** Inclusion de l'API de fonctions gérant les erreurs sql.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'debogage_1.0/BOG_sql.fonct.php';/** Inclusion des fonctions de manipulation du sql.* Permet la récupération d'un nouvel identifiant d'une table.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_API.'sql_1.0/SQL_manipulation.fonct.php';/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_site..." de Papyrus.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_site.fonct.php';/** <BR> Inclusion de la bibliothèque de fonctions concernant les tables "gen_menu..." de Papyrus.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_GEN.'pap_menu.fonct.php';/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus classiques.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_classique.fonct.php';//ok/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion des menus communs.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_menu_commun.fonct.php';//ok/** <BR> Inclusion de la bibliothèque de fonctions concernant la gestion de la rédaction de contenu.*/require_once ADME_CHEMIN_BIBLIOTHEQUE_ADME.'adme_contenu.fonct.php';//ok// +------------------------------------------------------------------------------------------------------+// | CORPS du PROGRAMME |// +------------------------------------------------------------------------------------------------------+/*Mettre ici le code du programme*//** Fonction afficherContenuTete() - Fonction appelé par le gestionnaire Papyrus.** Elle retourne l'entête de l'application..** @return string du code XHTML correspondant à la zone d'entête de l'application.*/function afficherContenuTete(){return '';}function afficherContenuCorps(){global $_GEN_commun;$objet_pear_auth = $_GEN_commun['pear_auth'];$objet_pear_db = $_GEN_commun['pear_db'];$db = $_GEN_commun['pear_db'];$url_site = $_GEN_commun['url_site'];$url_menu = $_GEN_commun['url_menu'];$url_i18n = $_GEN_commun['url_i18n'];$outputText = '' ;//------------------------------------------------------------------------------// Vérification de la présence d'arguments pour l'application.if (!isset($_POST['adminProject'])) {if (!isset($_GET['adminProject'])) {$adminProject = '';} else {$adminProject = $_GET['adminProject'];}} else {$adminProject = $_POST['adminProject'];}/*$adminProject = $_GEN_commun['info_site']->gs_code_alpha;if (isset($_GEN_commun['info_application']->site)) {$adminProject = $_GEN_commun['info_application']->site;}*/global $adminLocale;if (empty($adminLocale)) {$adminLocale = $_GEN_commun['info_site']->gs_ce_i18n;}//------------------------------------------------------------------------------// Internationalisation ?if (isset ($doclocale) && ($doclocale != '')) {$adminLocale = $doclocale;}//------------------------------------------------------------------------------// Arguments spécifique à l'application.global $menuid;global $upperid;global $doccmd;global $docopen;global $menuopen;global $upperopen;global $doc_name;global $doc_title;global $docid;global $pageid;global $pageopen;//------------------------------------------------------------------------------// L'url de base pour revenir au menu (=page) en cours.$url ='papyrus.php'.'?'.GEN_URL_CLE_SITE.'='.$url_site.'&'.GEN_URL_CLE_MENU.'='.$url_menu;$baseURL ='papyrus.php'.'?'.GEN_URL_CLE_SITE.'='.$url_site.'&'.GEN_URL_CLE_MENU.'='.$url_menu.'&'.GEN_URL_CLE_I18N.'='.$url_i18n;$baseURLjs ='papyrus.php'.'?'.GEN_URL_CLE_SITE.'='.$url_site.'&'.GEN_URL_CLE_MENU.'='.$url_menu.'&'.GEN_URL_CLE_I18N.'='.$url_i18n.'&adminProject='.$adminProject;//'&doclocale='.$doclocale;// Virer la variable baseHidden devenu inutile$baseHidden = '';//------------------------------------------------------------------------------// Authentificationif ($_GEN_commun['pear_auth']->getAuth()) {//------------------------------------------------------------------------------// Gestion des commandes.//------------------------------------------------------------------------------// Gestion des menus classiques// Ajout d'un menuif ($doccmd == 'addmenu') {$doccmd = '';addMenu($adminProject, $adminLocale);}// Formulaire de mise à jour du menuif ($doccmd == 'showmenu') {$outputText .= showMenu( $db, $adminProject, $adminLocale, $baseURL, $baseURLjs, $baseHidden,$menuid, $docid, $pageid, $menuopen, $docopen, $pageopen);return $outputText ;}// Mise à jour du menuif ($doccmd == 'commitupdmenu') {commitUpdateLevel($db, $adminProject, $adminLocale, $menuid);$doccmd = '';}// Déplacer le menu vers le hautif ($doccmd == 'upmenu') {echo "là";moveMenu($db, $adminProject, $adminLocale, $menuid, true);$doccmd = '';}// Déplacer le menu vers le basif ($doccmd == 'dnmenu') {moveMenu($db, $adminProject, $adminLocale, $menuid, false);$doccmd = '';}// Détruire le menuif ($doccmd == 'delmenu') {$msg = deleteMenu($objet_pear_db, $menuid);$doccmd = '';}//------------------------------------------------------------------------------// Gestion des Menus communs// Ajout un menu communif ($doccmd == 'addupper') {addUpper($db, $adminProject, $adminLocale);$doccmd = '';}// Valide et modifie un menu commun.if ($doccmd == 'commitupduppertxt') {commitUpdateUpperText($db, $adminProject, $adminLocale, $upperid);$doccmd = '';}// Update upper menu.if ($doccmd == 'upduppertxt') {$outputText .= showUpper( $db, $adminProject, $adminLocale,$baseURL, $baseURLjs, $baseHidden,$upperid, $menuopen, $upperopen, $docopen);return $outputText;}// Valide et modifie un menu communif ($doccmd == 'commitupdupper') {commitUpdateUpper($db, $adminProject, $adminLocale, $upperid);$doccmd = '';}// Déplace vers le haut de la hiérarchie un menu communif ($doccmd == 'upupper') {moveUpper($db, $adminProject, $adminLocale, $upperid, true);$doccmd = '';}// Déplace vers le bas de la hiérarchie un menu communif ($doccmd == 'dnupper') {moveUpper($db, $adminProject, $adminLocale, $upperid, false);$doccmd = '';}// Supprime définitivement un menu communif ($doccmd == 'delupper') {deleteUpper($db, $adminProject, $adminLocale, $upperid);$doccmd = '';}//------------------------------------------------------------------------------// Gestion de la rédaction// Rédigerif ($doccmd == 'contenuredac') {if (isset($upperid) && !empty($upperid) && !isset($menuid) && empty($menuid)) {$menuid = $upperid;}$outputText .= redigerContenu( $db, $adminProject, $adminLocale, $baseURL, $baseURLjs, $baseHidden,$menuid, $docid, $pageid, $menuopen, $docopen, $pageopen);return $outputText;}// Mise à jour du contenuif ($doccmd == 'contenuenreg') {ajouterContenu($db, $adminProject, $adminLocale, $menuid, $_POST);$doccmd = '';}//------------------------------------------------------------------------------// Autres// Message ?if (! empty($msg)) {$outputText .= "\n".'<p class="erreur">'.$msg.'</p>';}//------------------------------------------------------------------------------// Nous affichons la liste des menus classiques et communs$annuName = '';$outputText .=listAll( $db,$baseURL, $baseURLjs, $url, $baseHidden,$adminProject, $adminLocale, $annuName,$annuName, $menuid, $upperid,$doccmd, $menuopen, $upperopen);return $outputText ;// Fin de l'authentification} else {return GEN_afficherInfoIdentification($baseURL);}}// Fin de la fonction afficherContenuCorps()// +------------------------------------------------------------------------------------------------------+// | LISTE de FONCTIONS |// +------------------------------------------------------------------------------------------------------+/*Mettre ici la liste de fonctions.*/function listAll($db,$baseURL, $baseURLjs, $url, $baseHidden,$adminProject, $adminLocale, $adminAnnu,$annuName, $menuid, $upperid,$doccmd, $menuopen, $upperopen){$res = '';$res .= "\n";// Liste des sites principaux$requete = 'SELECT * '.'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 '.'ORDER BY gsr_ordre';$resultat = $db->query($requete);(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '' ;//----------------------------------------------------------------------------// Création du formulaire$form =& new HTML_QuickForm('form_sites', 'post', $url);$tab_index = 1000;$squelette =& $form->defaultRenderer();$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<p>'."\n".'{content}'."\n".'</p>'."\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>Listes des sites</legend>'."\n";$form->addElement('html', $partie_site_debut);$id = 'adminProject';$aso_attributs = array('id'=> $id, 'tabindex' => $tab_index++, 'onchange' => 'javascript:this.form.submit();');$label = '<label for="'.$id.'">'.'Choix du site à administrer : '.'</label>';$objet_select = new HTML_QuickForm_select($id, $label, '', $aso_attributs);$aso_options = array();while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {if (empty($adminProject)) {$adminProject = $ligne->gs_code_alpha;}if ($ligne->gs_code_alpha == $adminProject) {$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_code_alpha, 'selected="selected"');} else {$objet_select->addOption(htmlentities($ligne->gs_nom.' ('.$ligne->gs_code_alpha.')'), $ligne->gs_code_alpha);}}$resultat->free();$form->addElement($objet_select);$form->addElement('submit', 'choisir_site', 'OK');$partie_site_fin = '</fieldset>'."\n";$form->addElement('html', $partie_site_fin);// Instanciation des valeurs par défaut du formulaire$form->setDefaults($adminProject);$res .= '<h1>'.'Configuration des menus du site : '.$adminProject.'</h1>'."\n";$res .= '<p>'."\n";$res .= $form->toHTML()."\n";//----------------------------------------------------------------------------// Affiche la langue courante pour les menus à administrer$requete = 'SELECT * '.'FROM gen_i18n '.'WHERE gi_id_i18n = "'.$adminLocale.'"';$LOCALEresult = $db->query($requete);if (DB::isError($LOCALEresult)) {die(BOG_afficherErreurSql(__FILE__, __LINE__, $LOCALEresult->getMessage(), $requete));}$FLAGrow = $LOCALEresult->fetchRow(DB_FETCHMODE_OBJECT);if ($FLAGrow) {$res .= $FLAGrow->gi_nom.' '."\n";}$LOCALEresult->free() ;// Internationalisation disponible pour le site principal.$requete = 'SELECT gs_ce_i18n, gi_nom '.'FROM gen_site, gen_i18n '.'WHERE gs_ce_i18n = gi_id_i18n '.'AND gs_code_alpha = "'.$adminProject.'" ';$LOCALEresult = $db->query($requete);(DB::isError ($LOCALEresult))? die(BOG_afficherErreurSql(__FILE__, __LINE__, $LOCALEresult->getMessage(), $requete)): '';while ($LOCALErow = $LOCALEresult->fetchRow(DB_FETCHMODE_OBJECT)) {if ($adminLocale != $LOCALErow->gs_ce_i18n) {$res .= '<a href="'.$baseURL.'&adminLocale='.$LOCALErow->gs_ce_i18n.'">'.$LOCALErow->gi_nom.'</a>'."\n";}}$LOCALEresult->free() ;$res .= '</p>'."\n";//----------------------------------------------------------------------------// Gestion des menus classiques$etiquette_title_ajouter = 'Ajouter un menu classique';$res .= '<p>'."\n";$res .= '<a href="'.$baseURL.'&adminProject='.$adminProject.'&doccmd=addmenu&menuid=0" >'.$etiquette_title_ajouter.' '.'<img src="'.ADME_IMAGE_NOUVEAU.'" alt="" width="16" height="16" border="0" />'.'</a>'."\n";$res .= '</p>'."\n";$res .= '<form name="updform" action="papyrus.php" method="post">'."\n";$res .= lister_menu_racine( $db,$baseURL, $baseURLjs, $baseHidden,$adminProject, $adminLocale, $adminAnnu,$menuid, $upperid,$doccmd, $menuopen, $upperopen, 0);//----------------------------------------------------------------------------// Gestion des menus communs$etiquette_title_ajouter = 'Ajouter un menu commun';$res .= '<p>'."\n";$res .= '<a href="'.$baseURL.'&adminProject='.$adminProject.'&doccmd=addupper">'.$etiquette_title_ajouter.' '.'<img src="'.ADME_IMAGE_NOUVEAU.'" alt="" width="16" height="16" border="0" />'.'</a>'."\n";$res .= '</p>'."\n";$res .= listUpper( $db,$baseURL, $baseURLjs, $baseHidden,$adminProject, $adminLocale, $adminAnnu,$menuid, $upperid,$doccmd, $menuopen);// Valeur de formulaire cachées.$res .= '<input type="hidden" name="menuid" value="'.$menuid.'" />'."\n";$res .= '<input type="hidden" name="upperid" value="'.$upperid.'" />'."\n";$res .= '<input type="hidden" name="menuopen" value="'.$menuopen.'" />'."\n";$res .= $baseHidden;$res .= '</form>'."\n";return $res;}// +------------------------------------------------------------------------------------------------------+// | PIED du PROGRAMME |// +------------------------------------------------------------------------------------------------------+/*Partie non obligatoire*//* +--Fin du code ----------------------------------------------------------------------------------------+** $Log: not supported by cvs2svn $* Revision 1.6 2004/09/23 17:45:19 jpm* Amélioration de la gestion des liens annuler et du selecteur de sites.** Revision 1.5 2004/09/23 16:49:24 jpm* Correction d'une erreur dans l'url de l'ajout de menu commun.** Revision 1.4 2004/07/06 17:24:54 jpm* Suppression d'inclusions de fichiers inutiles.** Revision 1.3 2004/07/06 17:07:28 jpm* Modification de la documentation pour une mailleur analyse par PhpDocumentor.** Revision 1.2 2004/06/16 15:06:30 jpm* Suppression fichier inutile.** Revision 1.1 2004/06/16 15:04:39 jpm* Changement de nom de Génésia en Papyrus.* Changement de l'arborescence.** Revision 1.26 2004/05/10 14:32:21 jpm* Changement du titre.** Revision 1.25 2004/05/10 12:13:23 jpm* Ajout de la sélection des sites.** Revision 1.24 2004/05/07 16:33:05 jpm* Intégration de constantes.** Revision 1.23 2004/05/07 07:23:53 jpm* Amélioration du code, des commentaires et correction de bogues.** Revision 1.22 2004/05/05 06:45:44 jpm* Suppression de l'appel de la fonction générant le "vous êtes ici" dans la fonction affichant l'entête de l'application.** Revision 1.21 2004/05/04 16:27:33 jpm* Réduction de code pour la fonction afficherContenuTete().** Revision 1.20 2004/05/03 11:23:26 jpm* Début mise en conformité des commentaires.*** +-- Fin du code ----------------------------------------------------------------------------------------+*/?>