1,25 → 1,38 |
<?php |
<?php |
/*vim: set expandtab tabstop=4 shiftwidth=4: */ |
// +------------------------------------------------------------------------------------------------------+ |
// | PHP version 4.1 | |
// +------------------------------------------------------------------------------------------------------+ |
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org) | |
// +------------------------------------------------------------------------------------------------------+ |
// | This library is free software; you can redistribute it and/or | |
// | modify it under the terms of the GNU Lesser General Public | |
// | License as published by the Free Software Foundation; either | |
// | version 2.1 of the License, or (at your option) any later version. | |
// | | |
// | This library is distributed in the hope that it will be useful, | |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
// | Lesser General Public License for more details. | |
// | | |
// | You should have received a copy of the GNU Lesser General Public | |
// | License along with this library; if not, write to the Free Software | |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
// +------------------------------------------------------------------------------------------------------+ |
// CVS : $Id: adme_menu_classique.fonct.php,v 1.21 2005-05-26 16:13:08 jpm Exp $ |
// Copyright (C) 1999-2004 Tela Botanica (accueil@tela-botanica.org) |
// |
// Ce logiciel est un programme informatique servant à gérer du contenu et des |
// applications web. |
|
// Ce logiciel est régi par la licence CeCILL soumise au droit français et |
// respectant les principes de diffusion des logiciels libres. Vous pouvez |
// utiliser, modifier et/ou redistribuer ce programme sous les conditions |
// de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA |
// sur le site "http://www.cecill.info". |
|
// En contrepartie de l'accessibilité au code source et des droits de copie, |
// de modification et de redistribution accordés par cette licence, il n'est |
// offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons, |
// seule une responsabilité restreinte pèse sur l'auteur du programme, le |
// titulaire des droits patrimoniaux et les concédants successifs. |
|
// A cet égard l'attention de l'utilisateur est attirée sur les risques |
// associés au chargement, à l'utilisation, à la modification et/ou au |
// développement et à la reproduction du logiciel par l'utilisateur étant |
// donné sa spécificité de logiciel libre, qui peut le rendre complexe à |
// manipuler et qui le réserve donc à des développeurs et des professionnels |
// avertis possédant des connaissances informatiques approfondies. Les |
// utilisateurs sont donc invités à charger et tester l'adéquation du |
// logiciel à leurs besoins dans des conditions permettant d'assurer la |
// sécurité de leurs systèmes et ou de leurs données et, plus généralement, |
// à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. |
|
// Le fait que vous puissiez accéder à cet en-tête signifie que vous avez |
// pris connaissance de la licence CeCILL, et que vous en avez accepté les |
// termes. |
// ---- |
// CVS : $Id: adme_menu_classique.fonct.php,v 1.22 2005-07-08 21:13:15 ddelon Exp $ |
/** |
* Fonctions de gestion des menus classiques |
* |
35,7 → 48,7 |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
*@author Laurent COUDOUNEAU <lc@gsite.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.21 $ $Date: 2005-05-26 16:13:08 $ |
*@version $Revision: 1.22 $ $Date: 2005-07-08 21:13:15 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
223,7 → 236,18 |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_DESCENDRE_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.ADME_LG_ACTION_CLASSIQUE_DESCENDRE_ALT.'" />'. |
'</a> '."\n"; |
|
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_DIMINUER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_DIMINUER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_GAUCHE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_DIMINUER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action',ADME_LG_ACTION_CLASSIQUE_AUGMENTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_AUGMENTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_DROITE.'" alt="'.ADME_LG_ACTION_CLASSIQUE_AUGMENTER_ALT.'" />'. |
'</a> '."\n"; |
|
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_CLASSIQUE_SUPPRIMER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_TITLE.'" onclick="javascript:return confirm(\''.ADME_LG_ACTION_SUPPRIMER_CONFIRMATION.'\');">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_SUPPRIMER.'" alt="'.ADME_LG_ACTION_CLASSIQUE_SUPPRIMER_ALT.'" />'. |
233,7 → 257,9 |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_CLASSIQUE_AJOUTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_NOUVEAU.'" alt="'.ADME_LG_ACTION_CLASSIQUE_AJOUTER_ALT.'" />'. |
'</a>'.' '."\n"; |
$url->removeQueryString('adme_action'); |
|
|
// Si le menu à une application liée on regarde s'il y a une interface d'administration. |
if ($ligne_app->gap_id_application != 0 && GEN_verifierPresenceInterfaceAdmin($db, $ligne_app->gap_id_application)) { |
$url->removeQueryString('adme_action'); |
845,6 → 871,7 |
(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. |
871,9 → 898,193 |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
} |
|
|
/** Fonction ADME_indenterMenuClassique() - Permet d'augmenter ou diminuer l'indentation d'un menu dans la |
* hierarchie |
* |
* Permet d'augmenter ou diminuer l'indentation d'un menu dans la hierarchie |
* |
* @param mixed objet Pear DB de connexion à la base de données. |
* @param integer identifiant du site administré. |
* @param integer identifiant du menu à déplacer. |
* @param boolean indique si on veut diminuer (gauche) l'indentation (true) ou augmenter (droite) l'indentation (false). |
* @return void modifie la base de données. |
*/ |
function ADME_indenterMenuClassique($db, $adme_site_id, $adme_menu_id, $bln_diminuer) { |
|
//------------------------------------------------------------------------------------------------------------------- |
// Récupération d'information sur le site de ce menu. |
$objet_site = GEN_lireInfoSitePrincipal($db, $adme_site_id); |
|
if ($objet_site == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_SITE.'<br />'. |
'Id du site : '. $adme_site_id .'<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, $adme_menu_id, '1'); |
if ($ligne_menu_courant_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
|
|
|
//------------------------------------------------------------------------------------------------------------------- |
// Récupération de l'identifiant du menu pére |
|
$id_pere = GEN_lireIdentifiantMenuPere($adme_menu_id); |
if ($id_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
|
if ($bln_diminuer) { |
|
// Diminution d'un niveau |
|
if ($id_pere) { |
|
// Récupération de l'identifiant du menu grand pére, sera le nouveau pere |
|
$id_grand_pere = GEN_lireIdentifiantMenuPere($id_pere); |
|
if ($id_grand_pere === false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_ID_MENU_PERE.'<br />'. |
'Identifiant menu fils : '. $adme_menu_id .'<br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
|
// Récupération d'informations sur les relations du menu pere |
|
$ligne_menu_pere_relation = GEN_lireInfoMenuRelation($db, $id_pere, '1'); |
|
if ($ligne_menu_pere_relation == false) { |
die('ERREUR Papyrus Administrateur de Menus : '.ADME_LG_ERREUR_INFO_MENU_RELATION.'<br />'. |
'Identifiant menu : '. $adme_menu_id .'<br />'. |
'Identifiant valeur relation : 1 <br />'. |
'Ligne n° : '. __LINE__ .'<br />'. |
'Fichier n° : '. __FILE__ .'<br />'); |
} |
|
|
//------------------------------------------------------------------------------------------------------------------- |
// Recherche d'information sur le menu suivant le menu pere |
//------------------------------------------------------------------------------------------------------------------- |
|
$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 = '.$objet_site->gs_id_site.' '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'AND GMR01.gmr_id_menu_02 = '.$id_grand_pere.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père" |
'AND GMR01.gmr_ordre > '.$ligne_menu_pere_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
|
|
$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) { |
$no=$ligne_menu_pere_relation->gmr_ordre+1; |
} |
else { |
$no=$ligne_menu->nouvel_ordre+1; |
} |
|
// Mise à jour pere menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_id_menu_02 = '.$id_grand_pere.' ,'. |
'gmr_ordre = '.$no.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
|
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
|
|
|
} |
} |
else { |
|
$requete = 'SELECT GMR01.gmr_id_menu_01 '. |
'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 = '.$objet_site->gs_id_site.' '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'AND GMR01.gmr_id_menu_02 = '.$id_pere.' '. |
'AND GMR01.gmr_id_valeur = 1 '.// 1 = relation menu "père" |
'AND GMR01.gmr_ordre < '.$ligne_menu_courant_relation->gmr_ordre.' '. |
'ORDER BY GMR01.gmr_ordre DESC'; |
|
$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; |
} |
|
//---------------------------------------------------------------------------- |
// Recherche dernier fils |
|
$requete = 'SELECT GMR01.gmr_ordre '. |
'FROM gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '. |
'WHERE GMR01.gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' '. |
'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 '. |
'AND GMR02.gmr_id_valeur = 100 '.// 100 = menu type "classique" |
'ORDER BY GMR01.gmr_ordre DESC'; |
|
$resultat = $db->query($requete); |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
|
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT); |
$no = $ligne->gmr_ordre + 1; |
$resultat->free(); |
|
|
// Mise à jour pere menu courant |
$requete = 'UPDATE gen_menu_relation SET '. |
'gmr_id_menu_02 = '.$ligne_menu->gmr_id_menu_01.' ,'. |
'gmr_ordre = '.$no.' '. |
'WHERE gmr_id_menu_01 = '.$ligne_menu_courant_relation->gmr_id_menu_01.' '. |
'AND gmr_id_valeur = 1';// 1 = relation menu "père" |
|
$resultat_update = $db->query($requete); |
(DB::isError($resultat_update)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_update->getMessage(), $requete)) : ''; |
|
|
} |
} |
|
|
/** Fonction ADME_supprimerMenuClassique() - Supprime un menu classique. |
* |
* Supprime de la base de données de Génésia toutes les traces du menu classiques |
* Supprime de la base de données de Papyrus toutes les traces du menu classiques |
* passé en paramètre. |
* Ancien nom : deleteMenu() |
* |
952,6 → 1163,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.21 2005/05/26 16:13:08 jpm |
* Correction taille éditeur: passage en text |
* |
* Revision 1.19 2005/05/26 15:34:46 jpm |
* Ajout d'un espace. |
* |