Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 133 → Rev 134

/trunk/papyrus/applications/admin_menu/bibliotheque/adme_menu_commun.fonct.php
5,26 → 5,28
// +------------------------------------------------------------------------------------------------------+
// | 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 file is part of Papyrus. |
// | |
// | This library is distributed in the hope that it will be useful, |
// | Foobar is free software; you can redistribute it and/or modify |
// | it under the terms of the GNU General Public License as published by |
// | the Free Software Foundation; either version 2 of the License, or |
// | (at your option) any later version. |
// | |
// | Foobar 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. |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
// | GNU 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 |
// | You should have received a copy of the GNU General Public License |
// | along with Foobar; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: adme_menu_commun.fonct.php,v 1.3 2004-09-23 17:45:13 jpm Exp $
// CVS : $Id: adme_menu_commun.fonct.php,v 1.4 2004-11-09 12:37:34 jpm Exp $
/**
* Application de gestion des menus communs
*
* Permet de lister, d'ajouter, de modifier, et de déplacer des menus communs.
* Par menus communs nous entendons tous les menus devant paraitre sur l'ensemble des pages d'un site,
* Par menus communs, nous entendons tous les menus devant paraitre sur l'ensemble des pages de plusieurs site,
* comme le lien vers le plan du site, le lien vers la charte d'accessibilité, le flux rss...
*
*@package Admin_menu
35,7 → 37,7
*@author Alexandre GRANIER <alexandre@tela-botanica.org>
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.3 $ $Date: 2004-09-23 17:45:13 $
*@version $Revision: 1.4 $ $Date: 2004-11-09 12:37:34 $
// +------------------------------------------------------------------------------------------------------+
*/
 
42,229 → 44,273
// +------------------------------------------------------------------------------------------------------+
// | ENTÊTE du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/*Mettre ici les inclusions de fichiers*/
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | CORPS du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/*Mettre ici le code du programme*/
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
/*Mettre ici la liste de fonctions.*/
function listUpper($db,
$baseURL, $baseURLjs, $baseHidden,
$adminProject, $adminLocale, $adminAnnu,
$menu1id, $upperid,
$doccmd,
$menu1open)
/** Fonction ADME_afficherListeMenuClassique () - Affiche un arbre de menu en xhtml
*
* Elle forme l'arbre des menus communs à administrer.
* Ancien nom : deployer_menu().
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'url de base.
* @param integer l'identifiant du menu à administrer.
* @param integer l'identifiant du menu sur lequel on agit.
* @param string le nom de l'action courante.
* @param integer l'identifiant du menu en cours de déploiement.
* @param boolean true indique que l'on a à faire au premier appel de cette fonction récursive.
* @return string le code XHTML constituant l'arbre des menus à administrer.
*/
function ADME_afficherListeMenuCommun($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $id_menu_a_deployer, $bln_premier_appel = true)
{
//----------------------------------------------------------------------------
// Get infos about the project.
$requete = 'SELECT * '.
'FROM gen_site, gen_site_relation '.
'WHERE gs_code_alpha = "'.$adminProject.'" '.
'AND gsr_id_site_01 = gs_id_site '.
'AND gsr_id_site_01 = gsr_id_site_02 '.
'AND gsr_id_valeur = 102 '; // 102 = site "principal"
// Initialisation des variables :
$retour = '';
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
// Est-ce que ces menus comporte des sous-menus ?
$requete_sous_menu = 'SELECT gm_id_menu '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR01.gmr_id_menu_02 = '.$id_menu_a_deployer.' '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
//'AND gm_ce_site = '.$adme_site_id.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
'AND GMR02.gmr_id_valeur = 102 '.// 102 = type "menu commun"
'ORDER BY GMR01.gmr_ordre ASC';
if ($result->numRows() != 1) {
return '';
$resultat_sous_menu = $db->query($requete_sous_menu) ;
if (DB::isError($resultat_sous_menu)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_sous_menu->getMessage(), $requete_sous_menu));
}
$PRJrow = $result->fetchRow(DB_FETCHMODE_OBJECT);
$result->free();
$lookName = $PRJrow->gs_fichier_squelette;
// Gestion du stockage ou déstockage des menus ouverts
if (($adme_action == 'adme_menu_ouvrir' || $adme_action == 'menu_commun_ajouter') && $id_menu_a_deployer != 0) {
$_SESSION['adme_menus_communs_ouverts'][$adme_menu_id] = $adme_menu_id;
}
if ($adme_action == 'adme_menu_fermer' && $id_menu_a_deployer != 0) {
unset($_SESSION['adme_menus_communs_ouverts'][$adme_menu_id]);
foreach ($_SESSION['adme_menus_communs_ouverts'] as $val) {
if (GEN_etreAncetre($adme_menu_id, $val)) {
unset($_SESSION['adme_menus_communs_ouverts'][$val]);
}
}
}
//----------------------------------------------------------------------------
// Labels.
$etiquette_alt_modifier = 'Modifier';
$etiquette_title_modifier = 'Modifier ce menu commun';
$etiquette_alt_supprimer = 'Supprimer';
$etiquette_title_supprimer = 'Supprimer ce menu commun';
// Gestion affichage des menus
if ($resultat_sous_menu->numRows() > 0) {
// Ici, on sait qu'un menu a des sous menus, on commence par l'afficher:
if ($bln_premier_appel == false) {
$retour .= '<li>'."\n";
if (GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) ||
($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_ouvrir') ||
isset($_SESSION['adme_menus_communs_ouverts'][$id_menu_a_deployer])
){
// Affiche un -
$retour .= ADME_retournerXhtmlMenuCommun($db, $url, $adme_site_id, $id_menu_a_deployer, 1);
} else if ( !GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) ||
($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_fermer') ||
!isset($_SESSION['adme_menus_communs_ouverts'][$id_menu_a_deployer])
){
// Affiche un +
$retour .= ADME_retournerXhtmlMenuCommun($db, $url, $adme_site_id, $id_menu_a_deployer, 2);
}
}
if ($bln_premier_appel == true || GEN_etreAncetre($id_menu_a_deployer, $adme_menu_id) ||
($id_menu_a_deployer == $adme_menu_id && $adme_action == 'adme_menu_ouvrir') ||
isset($_SESSION['adme_menus_communs_ouverts'][$id_menu_a_deployer])
){
$retour .= '<ul>'."\n";
while ($ligne_sous_menu = $resultat_sous_menu->fetchRow(DB_FETCHMODE_OBJECT)) {
$retour .= ADME_afficherListeMenuCommun($db, $url, $adme_site_id, $adme_menu_id, $adme_action, $ligne_sous_menu->gm_id_menu, false);
}
$retour .= '</ul>'."\n";
}
if ($bln_premier_appel == false) {
$retour .= '</li>'."\n";
}
} else if ($resultat_sous_menu->numRows() == 0 && $bln_premier_appel == false) {
$retour .= '<li>'."\n";
$retour .= ADME_retournerXhtmlMenuCommun($db, $url, $adme_site_id, $id_menu_a_deployer, 0);
$retour .= '</li>'."\n";
}
return $retour;
}
 
/** Fonction ADME_retournerXhtmlMenuCommun() - Effectue une sortie d'un menu en XHTML
*
* Retourne le XHTML d'une ligne de l'arbre des menus communs permettant de l'administer.
* Ancien nom : menu_toHtml().
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'url de base.
* @param integer l'identifiant du site à administrer.
* @param integer l'identifiant du menu à administrer.
* @param integer 0 indique que le menu ne possède pas de fils, 1 qu'il faut afficher un - et 2 un +.
* @return string une ligne de liste XHTML
*/
function ADME_retournerXhtmlMenuCommun($db, $url, $adme_site_id, $adme_menu_id, $int_deplier)
{
$etiquette_annuler = 'Annuler';
$etiquette_alt_modifier = 'Modifier';
$etiquette_title_modifier = 'Modifier ce menu';
$etiquette_alt_supprimer = 'Supprimer';
$etiquette_title_supprimer = 'Supprimer ce menu';
$etiquette_alt_ajouter = 'Ajouter';
$etiquette_title_ajouter = 'Ajouter un menu inférieur';
$etiquette_alt_monter = 'Monter';
$etiquette_title_monter = 'Monter ce menu commun';
$etiquette_title_monter = 'Monter ce menu';
$etiquette_alt_descendre = 'Descendre';
$etiquette_title_descendre = 'Descendre ce menu commun';
$etiquette_title_descendre = 'Descendre ce menu';
$etiquette_alt_redaction = 'Rédiger';
$etiquette_title_redaction = 'Rédiger le contenu de ce menu commun';
$etiquette_title_redaction = 'Rédiger le contenu de ce menu';
$etiquette_deplier = 'Déplier';
$etiquette_plier = 'Plier';
//----------------------------------------------------------------------------
// Javascript.
$goMsg = addslashes('Supprimer');
$fullURLjs = $baseURLjs.'&menuview=upper&menu1open=1';
GEN_stockerFonctionScript( 'deleteUpper',
" function deleteUpper (iUpperId) {"."\n".
" var url = '$fullURLjs'+'&doccmd=delupper&upperid='+iUpperId;"."\n".
" if (window.confirm ('$goMsg')) document.location = url;"."\n".
" }"."\n");
$requete = 'SELECT gen_menu.*, ga_prenom '.
'FROM gen_menu, gen_annuaire '.
'WHERE gm_id_menu = '.$adme_menu_id.' '.
'AND gm_ce_admin = ga_id_administrateur';
//----------------------------------------------------------------------------
// Début du xhtml
$outputText = '';
$resultat = $db->query($requete);
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
//----------------------------------------------------------------------------
// Liste des menus communs.
$requete = 'SELECT *, gap_nom AS nom_appli, ga_prenom AS prenom '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02, gen_application, gen_annuaire '.
'WHERE gm_ce_site = "'.$PRJrow->gs_id_site.'" '.
'AND gm_ce_i18n = "'.$adminLocale.'" '.
'AND gm_ce_admin = ga_id_administrateur '.
'AND gm_ce_application = gap_id_application '.
'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
'AND GMR02.gmr_id_valeur = 102 '.// 100 = type "menu classique"
'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
'ORDER BY GMR01.gmr_ordre ASC';
// recherche de l'application liée
$requete_app = 'SELECT gap_nom '.
'FROM gen_application '.
'WHERE gap_id_application = '.$ligne->gm_ce_application;
$UPresult = $db->query($requete);
if (DB::isError ($UPresult)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $UPresult->getMessage(), $requete));
$resultat_app = $db->query($requete_app);
if (DB::isError($resultat_app)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_app->getMessage(), $requete_app));
}
$ligne_app = $resultat_app->fetchRow(DB_FETCHMODE_OBJECT);
$resultat_app->free();
// Récupération de l'identifiant de la personne administrateur
//global $_GEN_commun;
//$userID = $_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur');
//-------------------------------------------------------------------------------------------------------------------
// XHTML image plier-déplier
// Pour chaque menu commun trouvé, nous affichons les commandes.
$outputText .= "\n".'<ul class="text">';
while ($UProw = $UPresult->fetchRow(DB_FETCHMODE_OBJECT)) {
//--------------------------------------------------------------------------
// Nous avons un menu commun
$img = '';
//--------------------------------------------------------------------------
// Menu text.
$menuText = htmlentities($UProw->gm_nom).'&nbsp;'.
'('.htmlentities($UProw->nom_appli).'&nbsp;-&nbsp;'.htmlentities($UProw->prenom).')&nbsp;';
$menuText = (empty($menuText) ? '(...)' : $menuText);
$actionIcons = '&nbsp;';
//$commitIcons = '&nbsp;';
//------------------------------------------------------------------------
// Ajout de l'identifiant du menu commun à l'url des boutons d'action.
$pageHREF = $baseURLjs.'&amp;upperid='.$UProw->gm_id_menu ;
/*if ($doccmd == 'upduppertxt' && $upperid == $UProw->gm_id_menu) {
$cancelLabel = 'Annuler';
$menuText = '<input type="text" name="upper_text" size="32" '.
'maxlength="64" value="'.$menuText.'" '.
'class="contentDocument">'.
'<input type="hidden" name="doccmd" value="commitupduppertxt">';
$commitIcons .= '<input type="image" src="'.DOCADM_IMAGE_VALIDER.'">'.
"\n".
'<a'."\n".'href="'.$pageHREF.'">'.
'<img src="'.DOCADM_IMAGE_ANNULER.'" alt="'.$cancelLabel.'" width="16" height="16" border="0" />'.
'</a>';
} else {
$txtHREF = $pageHREF.'&amp;doccmd=upduppertxt';
$menuText = '<a href="'.$txtHREF.'" class="anchor">'.$menuTextFull.'</a>';
}*/
//------------------------------------------------------------------------
// Les icones d'action.
$actionIcons =
'<a href="'.$pageHREF.'&amp;doccmd=upduppertxt" title="'.$etiquette_title_modifier.'">'.
'<img src="'.ADME_IMAGE_VOIR.'" alt="'.$etiquette_alt_modifier.'" width="16" height="16" border="0" />'.
'</a>'.
"\n".
'<a'."\n".'href="'.$pageHREF.'&amp;doccmd=upupper" title="'.$etiquette_title_monter.'">'.
'<img src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.$etiquette_alt_monter.'" width="16" height="16" border="0" />'.
'</a>'.
"\n".
'<a'."\n".'href="'.$pageHREF.'&amp;doccmd=dnupper" title="'.$etiquette_title_descendre.'">'.
'<img src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.$etiquette_alt_descendre.'" width="16" height="16" border="0" />'.
'</a>'.
"\n".
'<a'."\n".'href="javascript:deleteUpper('.$UProw->gm_id_menu.')" title="'.$etiquette_title_supprimer.'">'.
'<img src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.$etiquette_alt_supprimer.'" width="16" height="16" border="0" />'.
'</a>';
// Si l'application liée est "texte simple", on ajoute un icone avec un lien vers
// l'administration de cette application.
if ($UProw->gm_ce_application == 3) { // l'appli afficheur a pour id 3
//$url_popup = ADME_CHEMIN_APPLICATION."docpopup.php?admproject=$adminProject&locale=$locale&menu=$UProw->gm_id_menu" ;
$icon_vers_texte = "\n&nbsp;&nbsp;".
'<a href="'.$pageHREF.'&amp;doccmd=contenuredac" title="'.$etiquette_title_redaction.'">'.
'<img src="'.ADME_IMAGE_TEXTE.'" alt="'.$etiquette_alt_redaction.'"'.' width="16" height="16" border="0" />'.
'</a>';
} else {
$icon_vers_texte = '';
$url->addQueryString('adme_site_id', $adme_site_id);
$url->addQueryString('adme_menu_id', $ligne->gm_id_menu);
$xhtml_pd = '';
if ($int_deplier != 0) {
if ($int_deplier == 1) {
// Afficher un -
$image_plier_deplier = ADME_IMAGE_MOINS;
$alt = $etiquette_plier;
$url->addQueryString('adme_action', 'adme_menu_fermer');
$url_plier_deplier = $url->getURL();
} else if ($int_deplier == 2) {
// Afficher un +
$image_plier_deplier = ADME_IMAGE_PLUS;
$alt = $etiquette_deplier;
$url->addQueryString('adme_action', 'adme_menu_ouvrir');
$url_plier_deplier = $url->getURL();
}
//--------------------------------------------------------------------------
// Ligne du menu commun.
$outputText .= "\n".'<li class="contentDocument">'.$menuText.$actionIcons.$icon_vers_texte.'</li>';
$xhtml_pd = '<a href="'.$url_plier_deplier.'" title="'.$alt.'">'.
'<img class="'.ADME_CLASS_IMG_PD.'" src="'.$image_plier_deplier.'" alt="'.$alt.'" />'.
'</a>'.'&nbsp;'."\n";
}
$outputText .= "\n".'</ul>';
//----------------------------------------------------------------------------
// Nettoyage
$UPresult->free();
return $outputText;
//-------------------------------------------------------------------------------------------------------------------
// XHTML du nom du menu et de ses infos
$xhtml_info = htmlentities(empty($ligne->gm_nom) ? '('.$ligne->gm_nom.')' : $ligne->gm_nom);
$xhtml_info .= '&nbsp;';
$xhtml_info .= '('.$ligne_app->gap_nom.' / '.$ligne->ga_prenom.')';
$xhtml_info .= '&nbsp;'."\n";
//-------------------------------------------------------------------------------------------------------------------
// XHTML actions
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', 'menu_commun_modifier');
$xhtml_action = '<a href="'.$url->getURL().'" title="'.$etiquette_title_modifier.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_VOIR.'" alt="'.$etiquette_alt_modifier.'" />'.
'</a>&nbsp;'."\n";
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', 'menu_commun_monter');
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.$etiquette_title_monter.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_HAUT.'" alt="'.$etiquette_alt_monter.'" />'.
'</a>&nbsp;'."\n";
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', 'menu_commun_descendre');
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.$etiquette_title_descendre.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.$etiquette_alt_descendre.'" />'.
'</a>&nbsp;'."\n";
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', 'menu_commun_supprimer');
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.$etiquette_title_supprimer.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.$etiquette_alt_supprimer.'" />'.
'</a>&nbsp;'."\n";
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', 'menu_commun_ajouter');
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.$etiquette_title_ajouter.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="'.$etiquette_alt_ajouter.'" />'.
'</a>'.'&nbsp;'."\n";
// Si l'application liée est "texte simple", on ajoute un icone avec un lien vers
// l'administration de cette application.
if ($ligne->gm_ce_application == 3) { // l'appli afficheur a pour id 3
$url->removeQueryString('adme_action');
$url->addQueryString('adme_action', 'contenu_rediger');
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.$etiquette_title_redaction.'">'.
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_TEXTE.'" alt="'.$etiquette_alt_redaction.'" />'.
'</a>'.'&nbsp;'."\n";
}
//-------------------------------------------------------------------------------------------------------------------
// Envoi du menu.
$retour = $xhtml_pd.$xhtml_info.$xhtml_action;
return $retour;
}
 
//==============================================================================
//==============================================================================
 
/** Fonction addUpper() - Ajoute un sous menu commun au menu commun courant
/** Fonction ADME_ajouterMenuCommun() - Ajoute un sous menu commun au menu commun courant
*
* Fonction ajoutant un menu commun à Papyrus.
*
*
* @param mixed Une instance de la classse PEAR_DB
* @param string Le nom du projet qu'on administre
* @param string La langue du projet qu'on administre
* @return void les changement sont fait dans la base de données.
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'authentification.
* @param integer l'identifiant du site à administrer.
* @param integer l'identifiant du menu à administrer.
* @return void les changement sont fait dans la base de données.
*/
function addUpper($db, $adminProject, $adminLocale)
function ADME_ajouterMenuCommun($db, $auth, $adme_site_id, $adme_menu_id)
{
//----------------------------------------------------------------------------
// Get project row.
global $_GEN_commun;
//----------------------------------------------------------------------------
// Récupération d'infos sur le site principal.
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject);
if ($PRJrow == false) {
// Récupération d'infos sur le nouveau menu
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id);
if ($objet_site == false) {
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'.
'Code alpha du site : '. $adminProject .'<br />'.
'ID du site : '.$adme_site_id.'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//----------------------------------------------------------------------------
// Récupération d'infos sur le nouveau menu
if ($adminLocale == $PRJrow->gs_ce_i18n) {
$id_site = $PRJrow->gs_id_site;
} else {
$ligne_admin_site_i18n = getSiteI18nInfos($db, $adminProject, $adminLocale);// Info du site en cours d'administration
$id_site = $ligne_admin_site_i18n->gs_id_site;
}
$nouveau_id_menu = SQL_obtenirNouveauId($db, 'gen_menu', 'gm_id_menu');
$auteur = $_GEN_commun['pear_auth']->getAuthData('ga_prenom').' '.$_GEN_commun['pear_auth']->getAuthData('ga_nom');
$auteur = $auth->getAuthData('ga_prenom').' '.$auth->getAuthData('ga_nom');
//----------------------------------------------------------------------------
// Ajout du nouveau menu
$requete = 'INSERT INTO gen_menu '.
'SET gm_id_menu = '.$nouveau_id_menu.', '.
'gm_ce_site = '.$id_site.', '.
'gm_ce_i18n = "'.$adminLocale.'", '.
'gm_ce_site = 0, '.
'gm_ce_i18n = "'.$objet_site->gs_ce_i18n.'", '.
'gm_ce_application = 0, '.
'gm_code_num = '.$nouveau_id_menu.', '.
'gm_code_alpha = "menu_'.$nouveau_id_menu.'", '.
'gm_nom = "menu_'.$nouveau_id_menu.'", '.
'gm_code_alpha = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_nom = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_titre = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_description_resume = "menu_commun_'.$nouveau_id_menu.'", '.
'gm_auteur = "'.$auteur.'", '.
'gm_editeur = "'.$PRJrow->gs_auteur.'", '.
'gm_date_creation = "'.date('Y-m-d H:i:s').'", '.
'gm_date_soumission = "'.date('Y-m-d H:i:s').'", '.
'gm_date_acceptation = "'.date('Y-m-d H:i:s').'", '.
272,23 → 318,23
'gm_date_debut_validite = "'.date('Y-m-d H:i:s').'", '.
'gm_date_copyright = "'.date('Y-00-00 00:00:00').'", '.
'gm_categorie = "menu", '.
'gm_ce_admin = '.$_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur').' '
'gm_ce_admin = '.$auth->getAuthData('ga_id_administrateur').' '
;
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Ajout de la relation "père"
if (!isset($menuid) && empty($menuid)) {
$menuid = 0 ;// Identifiant du père
if (!isset($adme_menu_id) && empty($adme_menu_id)) {
$adme_menu_id = 0 ;// Identifiant du père
}
//----------------------------------------------------------------------------
// Récupération d'infos sur la hierarchie du menu
$requete = 'SELECT * '.
$requete = 'SELECT GMR01.gmr_ordre '.
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR01.gmr_id_menu_02 = '.$menuid.' '.
'WHERE GMR01.gmr_id_menu_02 = '.$adme_menu_id.' '.
'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
'AND GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
295,40 → 341,40
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun"
'ORDER BY GMR01.gmr_ordre DESC';
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$row = $result->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_menu = $row->gmr_ordre + 1;
$result->free();
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_menu = $ligne->gmr_ordre + 1;
$resultat->free();
$requete = 'INSERT INTO gen_menu_relation '.
'SET gmr_id_menu_02 = '.$menuid.', '.
'SET gmr_id_menu_02 = '.$adme_menu_id.', '.
'gmr_id_menu_01 = '.$nouveau_id_menu.', '.
'gmr_id_valeur = 1, '.
'gmr_ordre = '.$nouveau_ordre_menu;
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Ajout de la relation-type "commun"
// Récupération d'infos sur le n
// Récupération d'infos sur la hierarchie du menu
$requete = 'SELECT * '.
'FROM gen_menu_relation, gen_menu '.
'WHERE gmr_id_menu_02 = gmr_id_menu_01 '.
'AND gmr_id_valeur = 102 '.// 102 = type "commun"
'AND gmr_id_menu_01 = gm_id_menu '.
'AND gm_ce_site = '.$id_site.' '.
'AND gm_ce_site = 0 '.// un menu commun n'a pas de site lié!
'ORDER BY gmr_ordre DESC';
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$row = $result->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_commun = $row->gmr_ordre + 1;
$result->free();
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$nouveau_ordre_commun = $ligne->gmr_ordre + 1;
$resultat->free();
$requete = 'INSERT INTO gen_menu_relation '.
'SET gmr_id_menu_01 = '.$nouveau_id_menu.', '.
336,225 → 382,46
'gmr_id_valeur = 102, '.
'gmr_ordre = '.$nouveau_ordre_commun;
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
//==============================================================================
//==============================================================================
 
function commitUpdateUpperText($db, $adminProject, $adminLocale, $upperid)
{
global $_GEN_commun;
$requete = 'UPDATE gen_menu SET '.
'gm_ce_application = '.$_POST['gm_ce_application'].', '.
'gm_application_arguments = "'.$_POST['gm_application_arguments'].'", '.
'gm_fichier_squelette = "'.$_POST['gm_fichier_squelette'].'", '.
'gm_code_num = '.$_POST['gm_code_num'].', '.
'gm_code_alpha = "'.$_POST['gm_code_alpha'].'", '.
'gm_nom = "'.$_POST['gm_nom'].'", '.
'gm_raccourci_clavier = "'.$_POST['gm_raccourci_clavier'].'", '.
'gm_robot = "'.$_POST['gm_robot'].'", '.
'gm_titre = "'.$_POST['gm_titre'].'", '.
'gm_titre_alternatif = "'.$_POST['gm_titre_alternatif'].'", '.
'gm_mots_cles = "'.$_POST['gm_mots_cles'].'", '.
'gm_description_libre = "'.$_POST['gm_description_libre'].'", '.
'gm_description_resume = "'.$_POST['gm_description_resume'].'", '.
'gm_description_table_matieres = "'.$_POST['gm_description_table_matieres'].'", '.
'gm_source = "'.$_POST['gm_source'].'", '.
'gm_auteur = "'.$_POST['gm_auteur'].'", '.
'gm_contributeur = "'.$_POST['gm_contributeur'].'", '.
'gm_editeur = "'.$_POST['gm_editeur'].'", '.
'gm_date_debut_validite = "'.$_POST['gm_date_debut_validite'].'", '.
'gm_date_fin_validite = "'.$_POST['gm_date_fin_validite'].'", '.
'gm_date_copyright = "'.$_POST['gm_date_copyright'].'", '.
'gm_licence = "'.$_POST['gm_licence'].'", '.
'gm_categorie = "'.$_POST['gm_categorie'].'", '.
'gm_public = "'.$_POST['gm_public'].'", '.
'gm_public_niveau = "'.$_POST['gm_public_niveau'].'", '.
'gm_portee_spatiale = "'.$_POST['gm_portee_spatiale'].'", '.
'gm_portee_temporelle = "'.$_POST['gm_portee_temporelle'].'", '.
'gm_ce_admin = "'.$_GEN_commun['pear_auth']->getAuthData('ga_id_administrateur').'" '.
'WHERE gm_id_menu = '.$upperid;
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
}
 
/** Fonction moveUpper() - Permet de déplacer un menu commun dans la hiérarchie.
/** Fonction ADME_afficherFormMenuCommun() - Affiche le formulaire pour un menu commun.
*
* Permet de déplacer un menu dans la hiérarchie des menus communs.
* Utilise HTML_QuickForm pour générer le formulaire.
* Ancien nom : showUpper().
*
* @param mixed objet Pear DB de connexion à la base de données.
* @param string code alpha du site administré.
* @param string identifiant de l'i18n du site administré.
* @param int identifiant du menu commun à déplacer.
* @param boolean indique si on veut monter le menu (true) ou le descendre (false).
* @return void Modifie la base de données.
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'url de base.
* @param integer l'identifiant du site à administrer.
* @param integer l'identifiant du menu à administrer.
* @param array le tableau associatif des valeurs à afficher dans le formulaire.
* @return string le formulaire XHTML.
*/
function moveUpper($db, $adminProject, $adminLocale, $upperid, $up)
function ADME_afficherFormMenuCommun($db, $url, $adme_site_id, $adme_menu_id, $aso_valeurs)
{
//----------------------------------------------------------------------------
// Récupération d'information sur le site de ce menu.
/*
$PRJrow = GEN_lireInfoSitePrincipalCodeAlpha($db, $adminProject);
if ($PRJrow == false) {
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du site.<br />'.
'Code alpha du site : '. $adminProject .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
*/
//----------------------------------------------------------------------------
// Récupération d'informations sur les relations du menu courant.
$ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $upperid, '1'); // 1 = relation "avoir père"
if ($ligne_menu_courant_relation == false) {
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos sur les relations du menu.<br />'.
'Identifiant menu : '. $upperid .'<br />'.
'Identifiant valeur relation : 1 <br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
$id_pere = $ligne_menu_courant_relation->gmr_id_menu_02;
// Initialisation de variable
$url->addQueryString('adme_site_id', $adme_site_id);
$url->addQueryString('adme_menu_id', $adme_menu_id);
// Il serait mieux d'utiliser la fonction ci-dessous.
// Mais cela ne semble pas fonctionner!!!
/*
$id_pere = GEN_lireIdentifiantMenuPere($upperid);
if ($id_pere == false) {
die('ERREUR Génésia Administrateur de Menus : impossible de lire identifiant du menu père.<br />'.
'Identifiant menu fils : '. $upperid .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
*/
//----------------------------------------------------------------------------
// Recherche d'information hiérarchiques sur le menu précédent ou suivant le menu courant
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun"
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '.
'AND GMR01.gmr_id_valeur = 1 ';// 1 = relation menu "père"
if ($up) {
$requete .= 'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre DESC';
} else {
$requete .= 'AND GMR01.gmr_ordre > '.$ligne_menu_courant_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre ASC';
}
$MENUresult = $db->query($requete);
(DB::isError($MENUresult)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $MENUresult->getMessage(), $requete)) : '';
$MENUrow = $MENUresult->fetchRow(DB_FETCHMODE_OBJECT);
$MENUresult->free() ;
//----------------------------------------------------------------------------
// Si la requete ne retourne rien nous ne faisons rien.
if (! $MENUrow) {
return;
}
//----------------------------------------------------------------------------
// Mise à jour des relations hiérarchiques du menu courant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.$MENUrow->nouvel_ordre.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Mise à jour des relations hiérarchiques du menu précédent ou suivant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '.
'WHERE gmr_id_menu_01 = '.$MENUrow->id_menu_remplace.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
}
 
/** Fonction deleteUpper() - Détruit un menu commun.
*
* Détruit définitivement un menu commun de la base de données.
*
* @return void le menu commun est supprimé de la base de données.
*/
function deleteUpper($objet_pear_db, $adminProject, $adminLocale, $id_menu_commun)
{
//----------------------------------------------------------------------------
// Y a t'il des sous_menus
$requete = 'SELECT COUNT(gm_id_menu) AS compte '.
'FROM gen_menu, gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.$id_menu_commun.' '.
'AND gmr_id_valeur = 1 '.
'AND gmr_id_menu_01 = gm_id_menu ';
$result = $objet_pear_db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
$row = $result->fetchRow(DB_FETCHMODE_OBJECT);
if ($row && ($row->compte > 0)) {
return "Il reste des menus attachés à ce menu commun !";
}
//----------------------------------------------------------------------------
// S'il n'y a plus de sous niveau, on supprime le menu
$requete = 'DELETE FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu_commun;
$result = $objet_pear_db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
//----------------------------------------------------------------------------
// Puis on supprime les relations de ce menu
$requete = 'DELETE FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_commun;
$result = $objet_pear_db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
}
 
/** Fonction showUpper () Affiche le formulaire pour un menu commun
*
* Utilise HTML_QuickForm pour générer le formulaire
*
*
* @return string Le code HTML du formulaire
*/
function showUpper( $db,
$adminProject, $adminLocale,
$baseURL, $baseURLjs, $baseHidden,
$upperid, $menuopen, $docopen)
{
//----------------------------------------------------------------------------
// Labels.
$cancelLabel = 'Annuler';
$closeURL = $baseURLjs.'&amp;upperid='.$upperid;
//----------------------------------------------------------------------------
// Récupération des informations du menu concerné.
$ligne_menu = GEN_lireInfoMenu($db, $upperid, DB_FETCHMODE_ASSOC);
if ($ligne_menu == false) {
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du menu.<br />'.
'Idenitifiant du menu n° : '. $upperid .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
if (!isset($aso_valeurs['menu_commun_verifier'])) {
$aso_valeurs = GEN_lireInfoMenu($db, $adme_menu_id, DB_FETCHMODE_ASSOC);
if ($aso_valeurs == false) {
die('ERREUR Génésia Administrateur de Menus : impossible de lire les infos du menu.<br />'.
'Idenitifiant du menu n° : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
}
//----------------------------------------------------------------------------
// Titre de la page
$res = '<h1>'.'Modification menu commun'.'</h1>'."\n";
$retour = '<h1>'.'Modification menu commun'.'</h1>'."\n";
//----------------------------------------------------------------------------
// Création du formulaire
$form =& new HTML_QuickForm('updform', 'post', $baseURLjs);
// Notes : Quickform semble remplacer les & des &amp; à nouveau par des &amp; solution utiliser str_replace()...
$form =& new HTML_QuickForm('form_menu_commun', 'post', str_replace('&amp;', '&', $url->getUrl()));
$tab_index = 1000;
$squelette =& $form->defaultRenderer();
$squelette->setFormTemplate("\n".'<form{attributes}>'."\n"."\n".'{content}'."\n"."\n".'</form>'."\n");
756,26 → 623,15
$liste_bouton_debut = '<ul class="liste_bouton">'."\n";
$form->addElement('html', $liste_bouton_debut);
$form->addElement('submit', 'menu_commun_enregistrer', 'Enregistrer');
$bouton_annuler = '<li><a class="bouton" href="'.$closeURL.'" title="'.'Annuler'.'" >'.'Annuler'.'</a>'.'</li>'."\n";
$form->addElement('submit', 'menu_commun_verifier', 'Enregistrer');
$bouton_annuler = '<li><a class="bouton" href="'.$url->getURL().'" title="'.'Annuler'.'" >'.'Annuler'.'</a>'.'</li>'."\n";
$form->addElement('html', $bouton_annuler);
$liste_bouton_fin = '</ul>'."\n";
$form->addElement('html', $liste_bouton_fin);
$partie_cachee_debut = '<p>'."\n";
$form->addElement('html', $partie_cachee_debut);
$form->setDefaults($aso_valeurs);
$form->addElement('html', $baseHidden);
$form->addElement('hidden', 'upperid', $upperid);
$form->addElement('hidden', 'menuopen', $menuopen);
$form->addElement('hidden', 'docopen', $docopen);
$form->addElement('hidden', 'doccmd', 'commitupduppertxt');
$form->setDefaults($ligne_menu);
$partie_cachee_fin = '</p>'."\n";
$form->addElement('html', $partie_cachee_fin);
// Javascript pour la validation côté client
$regles_javascript = $form->getValidationScript();
// Suppression des balises déjà créées par GEN_stockerCodeScript()
788,19 → 644,222
// Note de fin de formulaire
$form->setRequiredNote('Indique les champs obligatoires');
$res .= $form->toHTML()."\n";
return $res;
$retour .= $form->toHTML()."\n";
return $retour;
}
 
/** Fonction ADME_validerFormAjouterMenuCommun() - Valide les données issues du formulaire pour gen_menu.
*
* Cette fonction valide les données à ajouter dans la table gen_menu.
*
* @param string l'objet pear de connexion à la base de données.
* @param string le tableau contenant les valeurs du formulaire.
* @return string retourne les messages d'erreurs sinon rien.
*/
function ADME_validerFormAjouterMenuCommun($db, $aso_valeurs)
{
$message = '';
// Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
if (GEN_verifierPresenceCodeMenu($db, 'int', $aso_valeurs['gm_code_num'])) {
$message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gm_code_num'].'" pour le champ "Code numérique" existe déjà.</p>';
}
if (GEN_verifierPresenceCodeMenu($db, 'int', $aso_valeurs['gm_code_alpha'])) {
$message .= '<p class="pap_erreur">La valeur "'.$aso_valeurs['gm_code_alpha'].'" pour le champ "Code alphanumérique" existe déjà.</p>';
}
return $message;
}
 
/** Fonction ADME_modifierMenuCommun() - Met à jour les infos d'un menu commun
*
* Fonction modifiant un menu commun à Papyrus.
*
* @param object objet Pear de connection à la base de données.
* @param object objet Pear représentant l'authentification.
* @param integer l'identifiant du menu à administrer.
* @param array le tableau des valeurs à modifier.
* @return void les changement sont fait dans la base de données.
*/
function ADME_modifierMenuCommun($db, $auth, $adme_menu_id, $aso_valeurs)
{
$requete = 'UPDATE gen_menu SET '.
'gm_ce_application = '.$_POST['gm_ce_application'].', '.
'gm_application_arguments = "'.$_POST['gm_application_arguments'].'", '.
'gm_fichier_squelette = "'.$_POST['gm_fichier_squelette'].'", '.
'gm_code_num = '.$_POST['gm_code_num'].', '.
'gm_code_alpha = "'.$_POST['gm_code_alpha'].'", '.
'gm_nom = "'.$_POST['gm_nom'].'", '.
'gm_raccourci_clavier = "'.$_POST['gm_raccourci_clavier'].'", '.
'gm_robot = "'.$_POST['gm_robot'].'", '.
'gm_titre = "'.$_POST['gm_titre'].'", '.
'gm_titre_alternatif = "'.$_POST['gm_titre_alternatif'].'", '.
'gm_mots_cles = "'.$_POST['gm_mots_cles'].'", '.
'gm_description_libre = "'.$_POST['gm_description_libre'].'", '.
'gm_description_resume = "'.$_POST['gm_description_resume'].'", '.
'gm_description_table_matieres = "'.$_POST['gm_description_table_matieres'].'", '.
'gm_source = "'.$_POST['gm_source'].'", '.
'gm_auteur = "'.$_POST['gm_auteur'].'", '.
'gm_contributeur = "'.$_POST['gm_contributeur'].'", '.
'gm_editeur = "'.$_POST['gm_editeur'].'", '.
'gm_date_debut_validite = "'.$_POST['gm_date_debut_validite'].'", '.
'gm_date_fin_validite = "'.$_POST['gm_date_fin_validite'].'", '.
'gm_date_copyright = "'.$_POST['gm_date_copyright'].'", '.
'gm_licence = "'.$_POST['gm_licence'].'", '.
'gm_categorie = "'.$_POST['gm_categorie'].'", '.
'gm_public = "'.$_POST['gm_public'].'", '.
'gm_public_niveau = "'.$_POST['gm_public_niveau'].'", '.
'gm_portee_spatiale = "'.$_POST['gm_portee_spatiale'].'", '.
'gm_portee_temporelle = "'.$_POST['gm_portee_temporelle'].'", '.
'gm_ce_admin = "'.$auth->getAuthData('ga_id_administrateur').'" '.
'WHERE gm_id_menu = '.$adme_menu_id;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
/** Fonction ADME_deplacerMenuCommun() - Permet de déplacer un menu dans la hiérarchie.
*
* Permet de déplacer un menu dans la hiérarchie des menus communs.
* Ancien nom : moveUpper()
*
* @param PEAR::DB objet Pear DB de connexion à la base de données.
* @param string identifiant du site administré.
* @param integer identifiant du menu à déplacer.
* @param boolean indique si on veut monter le menu (true) ou le descendre (false).
* @return void modifie la base de données.
*/
function ADME_deplacerMenuCommun($db, $adme_site_id, $adme_menu_id, $bln_monter)
{
//-------------------------------------------------------------------------------------------------------------------
// Récupération d'informations sur les relations du menu courant.
$ligne_menu_courant_relation = GEN_lireInfoMenuRelation($db, $adme_menu_id, '1'); // 1 = relation "avoir père"
if ($ligne_menu_courant_relation == false) {
die('ERREUR Papyrus Administrateur de Menus : impossible de lire les infos sur les relations du menu.<br />'.
'Identifiant menu : '. $adme_menu_id .'<br />'.
'Identifiant valeur relation : 1 <br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//$id_pere = $ligne_menu_courant_relation->gmr_id_menu_02;
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id);
if ($id_pere == false) {
die('ERREUR Papyrus Administrateur de Menus : impossible de lire identifiant du menu père.<br />'.
'Identifiant menu fils : '. $adme_menu_id .'<br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier n° : '. __FILE__ .'<br />');
}
//-------------------------------------------------------------------------------------------------------------------
// Recherche d'information hiérarchiques sur le menu précédent ou suivant le menu courant
$requete = 'SELECT GMR01.gmr_ordre AS nouvel_ordre, GMR01.gmr_id_menu_01 AS id_menu_remplace '.
'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR02.gmr_id_menu_01 = GMR01.gmr_id_menu_01 '.
'AND GMR01.gmr_id_menu_01 = gm_id_menu './/jonction avec la table GEN_MENU
'AND gm_ce_site = 0 '.// les menus communs ne sont pas liés à un site!
'AND GMR02.gmr_id_valeur = 102 '.// 102 = menu type "commun"
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '.
'AND GMR01.gmr_id_valeur = 1 ';// 1 = relation menu "père"
if ($bln_monter) {
$requete .= 'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre DESC';
} else {
$requete .= 'AND GMR01.gmr_ordre > '.$ligne_menu_courant_relation->gmr_ordre.' '.
'ORDER BY GMR01.gmr_ordre ASC';
}
$resultat_menu = $db->query($requete);
(DB::isError($resultat_menu)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_menu->getMessage(), $requete)) : '';
$ligne_menu = $resultat_menu->fetchRow(DB_FETCHMODE_OBJECT);
$resultat_menu->free();
//-------------------------------------------------------------------------------------------------------------------
// Si la requete ne retourne rien nous ne faisons rien.
if (! $ligne_menu) {
return null;
}
//-------------------------------------------------------------------------------------------------------------------
// Mise à jour des relations hiérarchiques du menu courant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.$ligne_menu->nouvel_ordre.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//-------------------------------------------------------------------------------------------------------------------
// Mise à jour des relations hiérarchiques du menu précédent ou suivant
$requete = 'UPDATE gen_menu_relation SET '.
'gmr_ordre = '.$ligne_menu_courant_relation->gmr_ordre.' '.
'WHERE gmr_id_menu_01 = '.$ligne_menu->id_menu_remplace.' '.
'AND gmr_id_valeur = 1';// 1 = relation menu "père"
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
/** Fonction ADME_supprimerMenuCommun() - Supprime un menu classique.
*
* Supprime de la base de données de Génésia toutes les traces du menu classiques
* passé en paramètre.
* Ancien nom : deleteUpper()
*
* @param PEAR::DB l'objet Pear DB de connexion à la base de données.
* @param string l'identifiant du menu à supprimer
* @return void le menu classique est supprimé de la base de données.
*/
function ADME_supprimerMenuCommun($db, $id_menu_a_supprimer)
{
//-------------------------------------------------------------------------------------------------------------------
// Y a t'il des sous_menus ?
$requete = 'SELECT COUNT(gm_id_menu) AS compte '.
'FROM gen_menu, gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.$id_menu_a_supprimer.' '.
'AND gmr_id_valeur = 1 '.
'AND gmr_id_menu_01 = gm_id_menu ';
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
if ($ligne && ($ligne->compte > 0)) {
return 'Ce menu contient encore des sous menus. Veuillez commencez par supprimer ces sous menus.';
}
//-------------------------------------------------------------------------------------------------------------------
// S'il n'y a plus de sous niveau, on supprime le menu
$requete = 'DELETE FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu_a_supprimer;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
//-------------------------------------------------------------------------------------------------------------------
// Puis on supprime les relations de ce menu
$requete = 'DELETE FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_a_supprimer;
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
}
 
 
 
// +------------------------------------------------------------------------------------------------------+
// | PIED du PROGRAMME |
// +------------------------------------------------------------------------------------------------------+
/*Partie non obligatoire*/
 
 
 
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.3 2004/09/23 17:45:13 jpm
* Amélioration de la gestion des liens annuler et du selecteur de sites.
*
* Revision 1.2 2004/07/06 17:07:37 jpm
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
*