Line 17... |
Line 17... |
17 |
// | |
|
17 |
// | |
|
18 |
// | You should have received a copy of the GNU Lesser General Public |
|
18 |
// | You should have received a copy of the GNU Lesser General Public |
|
19 |
// | License along with this library; if not, write to the Free Software |
|
19 |
// | License along with this library; if not, write to the Free Software |
|
20 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
20 |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
21 |
// +------------------------------------------------------------------------------------------------------+
|
21 |
// +------------------------------------------------------------------------------------------------------+
|
22 |
// CVS : $Id: pap_menu.fonct.php,v 1.6 2004-11-08 17:39:32 jpm Exp $
|
22 |
// CVS : $Id: pap_menu.fonct.php,v 1.7 2004-11-09 17:55:26 jpm Exp $
|
23 |
/**
|
23 |
/**
|
24 |
* Bibliothèque de fonction sur le rendu.
|
24 |
* Bibliothèque de fonction sur le rendu.
|
25 |
*
|
25 |
*
|
26 |
* Cette bibliothèque contient des fonctions utilisé par le rendu des pages de Papyrus.
|
26 |
* Cette bibliothèque contient des fonctions utilisé par le rendu des pages de Papyrus.
|
27 |
*
|
27 |
*
|
Line 31... |
Line 31... |
31 |
*@author Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
|
31 |
*@author Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
|
32 |
//Autres auteurs :
|
32 |
//Autres auteurs :
|
33 |
*@author Alexandre GRANIER <alexadandre@tela-botanica.org>
|
33 |
*@author Alexandre GRANIER <alexadandre@tela-botanica.org>
|
34 |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
34 |
*@author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
35 |
*@copyright Tela-Botanica 2000-2004
|
35 |
*@copyright Tela-Botanica 2000-2004
|
36 |
*@version $Revision: 1.6 $ $Date: 2004-11-08 17:39:32 $
|
36 |
*@version $Revision: 1.7 $ $Date: 2004-11-09 17:55:26 $
|
37 |
// +------------------------------------------------------------------------------------------------------+
|
37 |
// +------------------------------------------------------------------------------------------------------+
|
38 |
*/
|
38 |
*/
|
Line 39... |
Line 39... |
39 |
|
39 |
|
40 |
// +------------------------------------------------------------------------------------------------------+
|
40 |
// +------------------------------------------------------------------------------------------------------+
|
Line 261... |
Line 261... |
261 |
* @param mixed une instance de la classse Pear DB.
|
261 |
* @param mixed une instance de la classse Pear DB.
|
262 |
* @param int l'identifiant d'un menu.
|
262 |
* @param int l'identifiant d'un menu.
|
263 |
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
|
263 |
* @param string le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
|
264 |
* @return mixed un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu, ou false en cas d'erreur.
|
264 |
* @return mixed un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu, ou false en cas d'erreur.
|
265 |
*/
|
265 |
*/
|
266 |
function GEN_lireInfoMenu($db, $menuid, $mode = DB_FETCHMODE_OBJECT)
|
266 |
function GEN_lireInfoMenu($db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
|
267 |
{
|
267 |
{
|
268 |
//----------------------------------------------------------------------------
|
268 |
//----------------------------------------------------------------------------
|
269 |
// Recherche des informations sur le menu
|
269 |
// Recherche des informations sur le menu
|
270 |
$requete = 'SELECT * '.
|
270 |
$requete = 'SELECT * '.
|
271 |
'FROM gen_menu '.
|
271 |
'FROM gen_menu '.
|
272 |
'WHERE gm_id_menu = '.$menuid;
|
272 |
'WHERE gm_id_menu = '.$id_menu;
|
Line 273... |
Line 273... |
273 |
|
273 |
|
274 |
$resultat = $db->query($requete);
|
274 |
$resultat = $db->query($requete);
|
Line 275... |
Line 275... |
275 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
275 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
Line 355... |
Line 355... |
355 |
} else {
|
355 |
} else {
|
356 |
return false;
|
356 |
return false;
|
357 |
}
|
357 |
}
|
358 |
}
|
358 |
}
|
Line 359... |
Line -... |
359 |
|
- |
|
360 |
// +------------------------------------------------------------------------------------------------------+
|
- |
|
361 |
// A NORMALISER !!!
|
- |
|
362 |
// +------------------------------------------------------------------------------------------------------+
|
- |
|
363 |
|
- |
|
364 |
/** Fonction niveau_menu() - Renvoie le niveau d'un menu.
|
- |
|
365 |
*
|
- |
|
366 |
* Fournit le niveau d'un menu dans l'arbre des menus d'un site
|
- |
|
367 |
* donné.
|
- |
|
368 |
* C'est une fonction récursive.
|
- |
|
369 |
*
|
- |
|
370 |
* @param integer l'identifiant du site du menu.
|
- |
|
371 |
* @param integer l'identifiant de la langue du site du menu.
|
- |
|
372 |
* @param integer l'identifiant d'un menu.
|
- |
|
373 |
* @return integer le niveau d'un menu.
|
- |
|
374 |
*/
|
- |
|
375 |
function niveau_menu($id_site, $id_langue, $id_menu)
|
- |
|
376 |
{
|
- |
|
377 |
global $db ;
|
- |
|
378 |
static $niveau = 1;
|
- |
|
379 |
|
- |
|
380 |
$requete = 'SELECT gm_ce_menu_pere '.
|
- |
|
381 |
'FROM gen_menu '.
|
- |
|
382 |
'WHERE gm_id_menu = '.$id_menu.' '.
|
- |
|
383 |
'AND gm_id_i18n = "'.$id_langue.'" '.
|
- |
|
384 |
'AND gm_id_site = '.$id_site;
|
- |
|
385 |
|
- |
|
386 |
$resultat = $db->query($requete);
|
- |
|
387 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
- |
|
388 |
|
- |
|
389 |
if ($resultat->numRows() == 0) {
|
- |
|
390 |
return $niveau;
|
- |
|
391 |
}
|
- |
|
392 |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
- |
|
393 |
|
- |
|
394 |
if ($ligne->gm_ce_menu_pere == 0) {
|
- |
|
395 |
|
- |
|
396 |
$niveau++;
|
- |
|
397 |
$niveau = niveau_menu($id_site, $id_langue, $ligne->gm_ce_menu_pere);
|
- |
|
398 |
}
|
- |
|
399 |
|
- |
|
400 |
return $niveau;
|
- |
|
401 |
}
|
- |
|
402 |
|
- |
|
403 |
/** Fonction id_ancetre_niveau() - Renvoie l'identifiant de l'ancetre de niveau $niveau
|
- |
|
404 |
*
|
- |
|
405 |
* Renvoie l'identifiant de l'ancetre de niveau $niveau.
|
- |
|
406 |
* C'est une fonction récursive.
|
- |
|
407 |
*
|
- |
|
408 |
* @param integer identifiant du site du menu dont on cherche l'ancètre.
|
- |
|
409 |
* @param integer identifiant de la langue du site du menu dont on cherche l'ancètre.
|
- |
|
410 |
* @param integer identifiant du menu dont on cherche l'ancètre.
|
- |
|
411 |
* @param integer niveau souhaité.
|
- |
|
412 |
* @return integer identifiant de l'ancètre cherché.
|
- |
|
413 |
*/
|
- |
|
414 |
function id_ancetre_niveau($id_site, $id_langue, $id_menu, $niveau)
|
- |
|
415 |
{
|
- |
|
416 |
global $db;
|
- |
|
417 |
static $id_et_niveau = array();
|
- |
|
418 |
|
- |
|
419 |
$requete = 'SELECT gp_ce_page_pere '.
|
- |
|
420 |
'FROM gen_page '.
|
- |
|
421 |
'WHERE gp_id_page = '.$id_page;
|
- |
|
422 |
|
- |
|
423 |
$resultat = $db->query($requete);
|
- |
|
424 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
- |
|
425 |
|
- |
|
426 |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
- |
|
427 |
|
- |
|
428 |
if ($ligne->gm_ce_menu_pere != 0) {
|
- |
|
429 |
array_push ($id_et_niveau, $ligne->gm_ce_menu_pere);
|
- |
|
430 |
} else {
|
- |
|
431 |
return array_pop($id_et_niveau);
|
- |
|
432 |
}
|
- |
|
433 |
$resultat->free();
|
- |
|
434 |
|
- |
|
435 |
return id_ancetre_niveau($id_site, $id_langue, $ligne->gm_ce_menu_pere, $niveau);
|
- |
|
436 |
}
|
- |
|
437 |
|
359 |
|
438 |
/* +--Fin du code ---------------------------------------------------------------------------------------+
|
360 |
/* +--Fin du code ---------------------------------------------------------------------------------------+
|
- |
|
361 |
* $Log: not supported by cvs2svn $
|
- |
|
362 |
* Revision 1.6 2004/11/08 17:39:32 jpm
|
- |
|
363 |
* Suppression d'une fonction inutile.
|
- |
|
364 |
* GEN_etreFils() n'est pas utile. On peut utiliser GEN_etreAncetre() à la place.
|
439 |
* $Log: not supported by cvs2svn $
|
365 |
*
|
440 |
* Revision 1.5 2004/11/04 12:51:45 jpm
|
366 |
* Revision 1.5 2004/11/04 12:51:45 jpm
|
441 |
* Suppression de message de débogage.
|
367 |
* Suppression de message de débogage.
|
442 |
*
|
368 |
*
|
443 |
* Revision 1.4 2004/11/04 12:23:50 jpm
|
369 |
* Revision 1.4 2004/11/04 12:23:50 jpm
|