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).' '. |
'('.htmlentities($UProw->nom_appli).' - '.htmlentities($UProw->prenom).') '; |
$menuText = (empty($menuText) ? '(...)' : $menuText); |
$actionIcons = ' '; |
//$commitIcons = ' '; |
|
//------------------------------------------------------------------------ |
// Ajout de l'identifiant du menu commun à l'url des boutons d'action. |
$pageHREF = $baseURLjs.'&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.'&doccmd=upduppertxt'; |
$menuText = '<a href="'.$txtHREF.'" class="anchor">'.$menuTextFull.'</a>'; |
}*/ |
|
//------------------------------------------------------------------------ |
// Les icones d'action. |
$actionIcons = |
'<a href="'.$pageHREF.'&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.'&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.'&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 ". |
'<a href="'.$pageHREF.'&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>'.' '."\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 .= ' '; |
$xhtml_info .= '('.$ligne_app->gap_nom.' / '.$ligne->ga_prenom.')'; |
$xhtml_info .= ' '."\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> '."\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> '."\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> '."\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> '."\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>'.' '."\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>'.' '."\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.'&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 & à nouveau par des & solution utiliser str_replace()... |
$form =& new HTML_QuickForm('form_menu_commun', 'post', str_replace('&', '&', $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. |
* |