21,7 → 21,7 |
// | 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.17 2005-07-08 22:01:25 ddelon Exp $ |
// CVS : $Id: adme_menu_commun.fonct.php,v 1.18 2005-07-18 16:14:32 ddelon Exp $ |
/** |
* Application de gestion des menus communs |
* |
38,7 → 38,7 |
*@author David Delon <david.delon@clapas.net> |
*@author Laurent COUDOUNEAU <lc@gsite.org> |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.17 $ $Date: 2005-07-08 22:01:25 $ |
*@version $Revision: 1.18 $ $Date: 2005-07-18 16:14:32 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
55,7 → 55,7 |
// +------------------------------------------------------------------------------------------------------+ |
// | LISTE de FONCTIONS | |
// +------------------------------------------------------------------------------------------------------+ |
/** Fonction ADME_afficherListeMenuClassique () - Affiche un arbre de menu en xhtml |
/** Fonction ADME_afficherListeMenuCommun () - Affiche un arbre de menu en xhtml |
* |
* Elle forme l'arbre des menus communs à administrer. |
* Ancien nom : deployer_menu(). |
226,7 → 226,19 |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_DESCENDRE_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_BAS.'" alt="'.ADME_LG_ACTION_COMMUN_DESCENDRE_ALT.'" />'. |
'</a> '."\n"; |
|
$url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_DIMINUER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_DIMINUER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_GAUCHE.'" alt="'.ADME_LG_ACTION_COMMUN_DIMINUER_ALT.'" />'. |
'</a> '."\n"; |
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action',ADME_LG_ACTION_COMMUN_AUGMENTER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_AUGMENTER_TITLE.'">'. |
'<img class="'.ADME_CLASS_IMG_ICONE.'" src="'.ADME_IMAGE_FLECHE_DROITE.'" alt="'.ADME_LG_ACTION_COMMUN_AUGMENTER_ALT.'" />'. |
'</a> '."\n"; |
|
|
$url->removeQueryString('adme_action'); |
$url->addQueryString('adme_action', ADME_LG_ACTION_COMMUN_SUPPRIMER); |
$xhtml_action .= '<a href="'.$url->getURL().'" title="'.ADME_LG_ACTION_COMMUN_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_COMMUN_SUPPRIMER_ALT.'" />'. |
806,15 → 818,188 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : ''; |
} |
|
/** Fonction ADME_supprimerMenuCommun() - Supprime un menu classique. |
function ADME_indenterMenuCommun($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 = 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_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 = 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" |
'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 = 102 '.// 100 = menu type "commun" |
'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_supprimerMenuCommun() - Supprime un menu commun. |
* |
* 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 Génésia toutes les traces du menu commun |
* passé en paramètre. |
* Ancien nom : deleteUpper() |
* |
* @param PEAR::DB l'objet Pear DB de connexion à la base de données. |
* @param integer l'identifiant du menu à supprimer |
* @return void le menu classique est supprimé de la base de données. |
* @return void le menu commun est supprimé de la base de données. |
*/ |
function ADME_supprimerMenuCommun($db, $id_menu_a_supprimer) |
{ |
890,6 → 1075,9 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.17 2005/07/08 22:01:25 ddelon |
* Copyright |
* |
* Revision 1.16 2005/05/26 16:13:08 jpm |
* Correction taille éditeur: passage en text |
* |