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 |
* |