| 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.3 2004-10-25 14:16:21 jpm Exp $
|
22 |
// CVS : $Id: pap_menu.fonct.php,v 1.4 2004-11-04 12:23:50 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.3 $ $Date: 2004-10-25 14:16:21 $
|
36 |
*@version $Revision: 1.4 $ $Date: 2004-11-04 12:23:50 $
|
| 37 |
// +------------------------------------------------------------------------------------------------------+
|
37 |
// +------------------------------------------------------------------------------------------------------+
|
| 38 |
*/
|
38 |
*/
|
| Line 39... |
Line 39... |
| 39 |
|
39 |
|
| 40 |
// +------------------------------------------------------------------------------------------------------+
|
40 |
// +------------------------------------------------------------------------------------------------------+
|
| Line 79... |
Line 79... |
| 79 |
$prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01);
|
79 |
$prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01);
|
| 80 |
}
|
80 |
}
|
| 81 |
return $prof;
|
81 |
return $prof;
|
| 82 |
}
|
82 |
}
|
| Line -... |
Line 83... |
| - |
|
83 |
|
| - |
|
84 |
/** Fonction GEN_donnerDernierFreres() - Renvoie l'id du dernier menu frère.
|
| - |
|
85 |
*
|
| - |
|
86 |
* Cette fonction regarde si un menu donné possède au moins un frère dans l'arbre
|
| - |
|
87 |
* des menus. Elle retourne l'id du dernier menu frére en utilisant gmr_ordre.
|
| - |
|
88 |
* Cette fonction fait appel à la fonction : GEN_lireIdentifiantMenuPere().
|
| - |
|
89 |
*
|
| - |
|
90 |
* @param integer identifiant du menu.
|
| - |
|
91 |
* @return boolean renvoi l'id du dernier menu frère sinon faux.
|
| - |
|
92 |
*/
|
| - |
|
93 |
function GEN_donnerDernierFreres($id_menu)
|
| - |
|
94 |
{
|
| - |
|
95 |
// Initialisation des variables.
|
| - |
|
96 |
global $db;
|
| - |
|
97 |
|
| - |
|
98 |
$requete = 'SELECT gmr_id_menu_01 '.
|
| - |
|
99 |
'FROM gen_menu_relation '.
|
| - |
|
100 |
'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
|
| - |
|
101 |
'AND gmr_id_valeur = 1 '.
|
| - |
|
102 |
'AND gmr_id_menu_01 <> '.$id_menu.' '.
|
| - |
|
103 |
'ORDER BY gmr_ordre DESC';
|
| - |
|
104 |
|
| - |
|
105 |
$resultat = $db->query($requete);
|
| - |
|
106 |
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
| - |
|
107 |
|
| - |
|
108 |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
| - |
|
109 |
if ($resultat->numRows() > 0) {
|
| - |
|
110 |
return $ligne->gmr_id_menu_01;
|
| - |
|
111 |
} else {
|
| - |
|
112 |
return false;
|
| - |
|
113 |
}
|
| - |
|
114 |
}
|
| 83 |
|
115 |
|
| 84 |
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
|
116 |
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
|
| 85 |
*
|
117 |
*
|
| 86 |
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
|
118 |
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
|
| 87 |
* des menus. Nous regardons si les menus ont le même identifiant comme père.
|
119 |
* des menus. Nous regardons si les menus ont le même identifiant comme père.
|
| Line 155... |
Line 187... |
| 155 |
|
187 |
|
| 156 |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
188 |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
| 157 |
$resultat->free();
|
189 |
$resultat->free();
|
| 158 |
if ($ligne->gmr_id_menu_02 == 0) {
|
190 |
if ($ligne->gmr_id_menu_02 == 0) {
|
| 159 |
return false;
|
- |
|
| 160 |
}
|
191 |
return false;
|
| 161 |
elseif ($ligne->gmr_id_menu_02 == $id_menu_1) {
|
192 |
} else if ($ligne->gmr_id_menu_02 == $id_menu_1) {
|
| 162 |
return true;
|
193 |
return true;
|
| 163 |
} else {
|
194 |
} else {
|
| 164 |
return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
|
195 |
return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
|
| 165 |
}
|
196 |
}
|
| Line -... |
Line 197... |
| - |
|
197 |
}
|
| - |
|
198 |
|
| - |
|
199 |
/** Fonction GEN_etreFils() - Renvoie vrai si le premier argument (identifiant de menu) est un fils du second.
|
| - |
|
200 |
*
|
| - |
|
201 |
* Nous récupérons l'identifiant du père du menu passé en argument numéro 2. Puis,
|
| - |
|
202 |
* nous le comparons à l'argument 1. Si c'est les même on retourne faux. Sinon on rapelle
|
| - |
|
203 |
* la fonction avec l'identifiant du père trouvé pour l'argument 1. Ainsi de suite jusqu'a
|
| - |
|
204 |
* renvoyé vrai où tomber sur un menu racine (idetifiant du père = 0).
|
| - |
|
205 |
* Si les variable sont null nous retournons false.
|
| - |
|
206 |
* C'est une fonction récursive.
|
| - |
|
207 |
*
|
| - |
|
208 |
* @param integer identifiant d'un menu numéro 1.
|
| - |
|
209 |
* @param integer identifiant d'un menu numéro 2.
|
| - |
|
210 |
* @return boolean vrai si le menu numéro 1 est fils du second.
|
| - |
|
211 |
*/
|
| - |
|
212 |
function GEN_etreFils($id_menu_1, $id_menu_2)
|
| - |
|
213 |
{
|
| - |
|
214 |
//Test erreur
|
| - |
|
215 |
if (is_null($id_menu_1) || is_null($id_menu_2)) {
|
| - |
|
216 |
return false;
|
| - |
|
217 |
}
|
| - |
|
218 |
|
| - |
|
219 |
// Initialisation des variables.
|
| - |
|
220 |
global $db;
|
| - |
|
221 |
|
| - |
|
222 |
$requete = 'SELECT gmr_id_menu_01 '.
|
| - |
|
223 |
'FROM gen_menu_relation '.
|
| - |
|
224 |
'WHERE gmr_id_menu_02 = '.$id_menu_2.' '.
|
| - |
|
225 |
'AND gmr_id_valeur = 1 ';
|
| - |
|
226 |
|
| - |
|
227 |
$resultat = $db->query($requete);
|
| - |
|
228 |
(DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
|
| - |
|
229 |
|
| - |
|
230 |
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
|
| - |
|
231 |
$resultat->free();
|
| - |
|
232 |
if ($ligne->gmr_id_menu_01 == 0) {
|
| - |
|
233 |
echo "faux";
|
| - |
|
234 |
return false;
|
| - |
|
235 |
} else if ($ligne->gmr_id_menu_01 == $id_menu_1) {
|
| - |
|
236 |
echo "vrai";
|
| - |
|
237 |
return true;
|
| - |
|
238 |
} else {
|
| - |
|
239 |
return GEN_etreFils($id_menu_1, $ligne->gmr_id_menu_01);
|
| - |
|
240 |
}
|
| 166 |
}
|
241 |
}
|
| 167 |
|
242 |
|
| 168 |
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
|
243 |
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
|
| 169 |
*
|
244 |
*
|
| 170 |
* Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
|
245 |
* Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
|
| Line 255... |
Line 330... |
| 255 |
return $info_menu;
|
330 |
return $info_menu;
|
| 256 |
}
|
331 |
}
|
| Line 257... |
Line 332... |
| 257 |
|
332 |
|
| 258 |
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
|
333 |
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
|
| 259 |
*
|
334 |
*
|
| 260 |
* Par défaut recherch une relation de type père.
|
335 |
* Par défaut recherche une relation de type père.
|
| 261 |
* Ancien nom : getMenuRelation().
|
336 |
* Ancien nom : getMenuRelation().
|
| 262 |
*
|
337 |
*
|
| 263 |
* @param mixed Une instance de la classse PEAR_DB
|
338 |
* @param mixed Une instance de la classse PEAR_DB
|
| 264 |
* @param int l'identifiant d'un menu.
|
339 |
* @param int l'identifiant d'un menu.
|
| Line 288... |
Line 363... |
| 288 |
$result->free();
|
363 |
$result->free();
|
| Line 289... |
Line 364... |
| 289 |
|
364 |
|
| 290 |
return $info_menu_relation;
|
365 |
return $info_menu_relation;
|
| Line -... |
Line 366... |
| - |
|
366 |
}
|
| - |
|
367 |
|
| - |
|
368 |
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
|
| - |
|
369 |
*
|
| - |
|
370 |
* Permet de vérifier dans la base de données si le code fournie (alphanumérique ou numérique) a déjà
|
| - |
|
371 |
* été attribué à un menu ou pas!
|
| - |
|
372 |
*
|
| - |
|
373 |
* @param mixed Une instance de la classse PEAR_DB
|
| - |
|
374 |
* @param string le type du code (int ou string).
|
| - |
|
375 |
* @param mixed le code numérique ou alphanumérique.
|
| - |
|
376 |
* @return mixed retourne l'identifiant du menu possédant le code sinon false.
|
| - |
|
377 |
*/
|
| - |
|
378 |
function GEN_verifierPresenceCodeMenu($db, $type, $code)
|
| - |
|
379 |
{
|
| - |
|
380 |
// Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
|
| - |
|
381 |
$requete = 'SELECT gm_id_menu '.
|
| - |
|
382 |
'FROM gen_menu ';
|
| - |
|
383 |
// Complément de requête en fonction du type de code
|
| - |
|
384 |
if ($type == 'int') {
|
| - |
|
385 |
$requete .= 'WHERE gm_code_num = '.$code;
|
| - |
|
386 |
} else {
|
| - |
|
387 |
$requete .= 'WHERE gm_code_alpha = "'.$code.'"';
|
| - |
|
388 |
}
|
| - |
|
389 |
$nombre_reponse = $db->affectedRows($requete);
|
| - |
|
390 |
if (DB::isError($nombre_reponse)) {
|
| - |
|
391 |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $nombre_reponse->getMessage(), $requete) );
|
| - |
|
392 |
}
|
| - |
|
393 |
if ($nombre_reponse == 1) {
|
| - |
|
394 |
$id = $db->getOne($requete);
|
| - |
|
395 |
if (DB::isError($id)) {
|
| - |
|
396 |
die( BOG_afficherErreurSql(__FILE__, __LINE__, $id->getMessage(), $requete) );
|
| - |
|
397 |
}
|
| - |
|
398 |
return $id;
|
| - |
|
399 |
} else {
|
| - |
|
400 |
return false;
|
| - |
|
401 |
}
|
| 291 |
}
|
402 |
}
|
| 292 |
|
403 |
|
| 293 |
// +------------------------------------------------------------------------------------------------------+
|
404 |
// +------------------------------------------------------------------------------------------------------+
|
| Line 294... |
Line 405... |
| 294 |
// A NORMALISER !!!
|
405 |
// A NORMALISER !!!
|
| Line 368... |
Line 479... |
| 368 |
return id_ancetre_niveau($id_site, $id_langue, $ligne->gm_ce_menu_pere, $niveau);
|
479 |
return id_ancetre_niveau($id_site, $id_langue, $ligne->gm_ce_menu_pere, $niveau);
|
| 369 |
}
|
480 |
}
|
| Line 370... |
Line 481... |
| 370 |
|
481 |
|
| 371 |
/* +--Fin du code ---------------------------------------------------------------------------------------+
|
482 |
/* +--Fin du code ---------------------------------------------------------------------------------------+
|
| - |
|
483 |
* $Log: not supported by cvs2svn $
|
| - |
|
484 |
* Revision 1.3 2004/10/25 14:16:21 jpm
|
| - |
|
485 |
* Suppression de code commenté.
|
| 372 |
* $Log: not supported by cvs2svn $
|
486 |
*
|
| 373 |
* Revision 1.2 2004/10/21 18:15:21 jpm
|
487 |
* Revision 1.2 2004/10/21 18:15:21 jpm
|
| 374 |
* Ajout de gestion d'erreur aux fonctions.
|
488 |
* Ajout de gestion d'erreur aux fonctions.
|
| 375 |
*
|
489 |
*
|
| 376 |
* Revision 1.1 2004/06/15 15:11:37 jpm
|
490 |
* Revision 1.1 2004/06/15 15:11:37 jpm
|