Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 596 → Rev 597

/trunk/papyrus/bibliotheque/fonctions/pap_menu.fonct.php
1,5 → 1,5
<?php
/*vim: set expandtab tabstop=4 shiftwidth=4: */
/*vim: set expandtab tabstop=4 shiftwidth=4: */
// +------------------------------------------------------------------------------------------------------+
// | PHP version 4.1 |
// +------------------------------------------------------------------------------------------------------+
19,7 → 19,7
// | 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: pap_menu.fonct.php,v 1.24 2005-09-20 17:01:22 ddelon Exp $
// CVS : $Id: pap_menu.fonct.php,v 1.25 2005-11-08 17:43:46 ddelon Exp $
/**
* Bibliothèque de fonction sur le rendu.
*
33,7 → 33,7
*@author Alexandre GRANIER <alexadandre@tela-botanica.org>
*@author Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.24 $ $Date: 2005-09-20 17:01:22 $
*@version $Revision: 1.25 $ $Date: 2005-11-08 17:43:46 $
// +------------------------------------------------------------------------------------------------------+
*/
 
43,7 → 43,7
 
/** Fonction GEN_donnerProfondeurMax() - Renvoie le nombre de niveau de menu.
*
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant
* l'arbre des menus jusqu'au feuilles.
* Ici on l'utilise en passant l'argument égal à zéro c'est à dire
* en partant du menu racine d'un site gmr_id_menu_02 = 0.
58,7 → 58,7
{
global $db;
static $prof = 0;
 
// Requête sur les relations de type "avoir père" entre menus
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu, gen_menu_relation '.
67,10 → 67,10
'AND gm_ce_site = '.$id_site.' '.
'AND gmr_id_valeur = 1 '.
'ORDER BY gmr_ordre ASC';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() == 0) {
return $prof;
}
94,7 → 94,7
{
// Initialisation des variables.
global $db;
 
$requete = 'SELECT gmr_id_menu_01 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
101,10 → 101,10
'AND gmr_id_valeur = 1 '.
'AND gmr_id_menu_01 <> '.$id_menu.' '.
'ORDER BY gmr_ordre DESC';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
if ($resultat->numRows() > 0) {
return $ligne->gmr_id_menu_01;
126,15 → 126,15
{
// Initialisation des variables.
global $db;
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_1.' '.
'AND gmr_id_valeur = 1 ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$id_pere_1 = $ligne->gmr_id_menu_02;
$resultat->free();
143,14 → 143,14
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
'AND gmr_id_valeur = 1 ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$id_pere_2 = $ligne->gmr_id_menu_02;
$resultat->free();
 
return ($id_pere_1 == $id_pere_2);
}
 
173,18 → 173,18
if (is_null($id_menu_1) || is_null($id_menu_2)) {
return false;
}
 
// Initialisation des variables.
global $db;
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
'AND gmr_id_valeur = 1 ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$resultat->free();
if (isset($ligne)) {
215,18 → 215,18
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu.' '.
'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$resultat->free();
 
// Dans le cas où le menu en paramètre est un menu racine
if ($ligne->gmr_id_menu_02 == 0) {
return $id_menu;
}
 
return GEN_lireIdentifiantMenuAncetre($ligne->gmr_id_menu_02);
}
 
245,15 → 245,15
if (is_null($db)) {
$db =& $GLOBALS['_GEN_commun']['pear_db'];
}
 
$requete = 'SELECT gmr_id_menu_02 '.
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$id_menu.' '.
'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
 
$resultat = $db->getOne($requete) ;
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
return $resultat;
}
 
276,19 → 276,19
$requete = 'SELECT * '.
'FROM gen_menu '.
'WHERE gm_id_menu = '.$id_menu;
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow($mode);
$resultat->free();
 
return $info_menu;
}
/** Fonction GEN_retournerMenuCodeNum() - Renvoie le code num d'un menu en fonction du code Alphanumérique
306,20 → 306,20
$requete = 'SELECT gm_code_num '.
'FROM gen_menu '.
'WHERE gm_code_alpha = "'.$code_alphanum.'"';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$code_num = $info_menu->gm_code_num;
$resultat->free();
 
return $code_num;
}
 
338,20 → 338,20
$requete = 'SELECT gm_code_alpha '.
'FROM gen_menu '.
'WHERE gm_code_num = '.$code_num;
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
$code_alphanum = $info_menu->gm_code_alpha;
$resultat->free();
 
return $code_alphanum;
}
 
369,7 → 369,7
{
//----------------------------------------------------------------------------
// Gestion des erreurs
 
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT * '.
376,19 → 376,19
'FROM gen_menu_contenu '.
'WHERE gmc_ce_menu = '.$id_menu.' '.
'AND gmc_bool_dernier = 1';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
if ($resultat->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu = $resultat->fetchRow($mode);
$resultat->free();
 
return $info_menu;
}
 
403,15 → 403,15
{
//----------------------------------------------------------------------------
// Gestion des erreurs
 
//----------------------------------------------------------------------------
// Recherche des informations sur le menu
$requete = 'SELECT gm_id_menu '.
'FROM gen_menu ';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
//----------------------------------------------------------------------------
// Récupération des infos
$tab_retour = array();
419,7 → 419,7
array_push($tab_retour, $info_menu->gm_id_menu);
}
$resultat->free();
 
return $tab_retour;
}
 
442,19 → 442,19
'FROM gen_menu_relation '.
'WHERE gmr_id_menu_01 = '.$menuid.' '.
'AND gmr_id_valeur = '.$id_valeur;
 
$result = $db->query($requete);
(DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
 
if ($result->numRows() != 1) {
return false;
}
 
//----------------------------------------------------------------------------
// Récupération des infos
$info_menu_relation = $result->fetchRow($mode);
$result->free();
 
return $info_menu_relation;
}
 
475,12 → 475,12
if ($code == '') {
return true;
}
 
// Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
$requete = 'SELECT gm_id_menu '.
'FROM gen_menu '.
'WHERE gm_id_menu <> '.$id_menu.' ';
 
// Complément de requête en fonction du type de code
if ($type == 'int') {
$requete .= 'AND gm_code_num = '.$code;
500,7 → 500,7
}
/** Fonction GEN_lireInfoMenuMotsCles() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés présents dans
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés présents dans
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
528,14 → 528,14
$requete .= 'ORDER BY gm_date_creation '.$ordre;
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
 
/** Fonction GEN_lireInfoMenuMeta() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés,
* catégories, id_menu,
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés,
* catégories, id_menu,
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
571,12 → 571,12
$requete .= 'ORDER BY gm_date_creation '.$ordre;
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
/** Fonction GEN_lireInfoMenuCategorie() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
601,12 → 601,12
}
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
/** Fonction GEN_lireInfoMenuContenuDate() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
*
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
* la table gen_menu.
*
* @param mixed Une instance de la classse PEAR_DB
630,7 → 630,7
} else {
$site = '';
}
 
if (!empty($categorie)) {
$categorie = 'AND gm_categorie like "%'.$categorie.'%"' ;
} else {
640,7 → 640,7
$requete = 'SELECT DISTINCT gen_menu.*, gs_code_alpha, gmc_date_modification, gmc_resume_modification, gmc_ce_type_modification '.
'FROM gen_site, gen_menu, gen_menu_contenu '.
'WHERE gmc_date_modification <= "'.date('Y-m-d H:i:s', time()).'" '.
'AND gm_ce_site = gs_id_site '.
'AND (gm_ce_site = gs_id_site OR gm_ce_site = 0) '.
'AND gm_id_menu = gmc_ce_menu '.
'AND gmc_bool_dernier = 1 '.
$site.
647,15 → 647,15
$type_modif.
$categorie.
'ORDER BY gmc_date_modification DESC';
 
$aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
(PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
 
return $aso_info;
}
/** Fonction GEN_retournerTableauMenusSiteCodeAlpha() - Renvoie un tableau de tableau contenant des lignes de la table gen_menu
*
* Renvoie un tableau de tableau contenant les lignes de la table gen_menu pour un site donné. Les tableaux sont imbriquées
* Renvoie un tableau de tableau contenant les lignes de la table gen_menu pour un site donné. Les tableaux sont imbriquées
* pour reproduire l'arborescence des menus.
*
* @param mixed Une instance de la classse PEAR_DB
664,7 → 664,7
*/
function GEN_retournerTableauMenusSiteCodeAlpha(&$db, $site, $id_pere = 0, $aso_site_menus = array())
{
 
$requete = 'SELECT gen_menu.* '.
'FROM gen_site, gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
'WHERE GMR01.gmr_id_menu_02 = '.$id_pere.' '.
680,7 → 680,7
if (DB::isError($resultat)) {
die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
}
 
if ($resultat->numRows() > 0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$aso_site_menus[$ligne['gm_id_menu']] = $ligne;
691,6 → 691,9
}
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log: not supported by cvs2svn $
* Revision 1.24 2005/09/20 17:01:22 ddelon
* php5 et bugs divers
*
* Revision 1.23 2005/08/29 09:05:12 ddelon
* Suppression message debug
*