Subversion Repositories Applications.papyrus

Rev

Rev 129 | Rev 149 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 129 Rev 146
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