Subversion Repositories Applications.papyrus

Rev

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

Rev 443 Rev 597
Line 1... Line 1...
1
<?php
1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
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.24 2005-09-20 17:01:22 ddelon Exp $
22
// CVS : $Id: pap_menu.fonct.php,v 1.25 2005-11-08 17:43:46 ddelon 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        Jean-Pascal MILCENT <jpm@tela-botanica.org>
31
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
32
//Autres auteurs :
32
//Autres auteurs :
33
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
33
*@author        Alexandre GRANIER <alexadandre@tela-botanica.org>
34
*@author        Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
34
*@author        Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
35
*@copyright     Tela-Botanica 2000-2004
35
*@copyright     Tela-Botanica 2000-2004
36
*@version       $Revision: 1.24 $ $Date: 2005-09-20 17:01:22 $
36
*@version       $Revision: 1.25 $ $Date: 2005-11-08 17:43:46 $
37
// +------------------------------------------------------------------------------------------------------+
37
// +------------------------------------------------------------------------------------------------------+
38
*/
38
*/
Line 39... Line 39...
39
 
39
 
40
// +------------------------------------------------------------------------------------------------------+
40
// +------------------------------------------------------------------------------------------------------+
41
// |                                            LISTE des FONCTIONS                                       |
41
// |                                            LISTE des FONCTIONS                                       |
Line 42... Line 42...
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
 
43
 
44
/** Fonction GEN_donnerProfondeurMax() - Renvoie le nombre de niveau de menu.
44
/** Fonction GEN_donnerProfondeurMax() - Renvoie le nombre de niveau de menu.
45
*
45
*
46
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant 
46
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant
47
* l'arbre des menus jusqu'au feuilles.
47
* l'arbre des menus jusqu'au feuilles.
48
* Ici on l'utilise en passant l'argument égal à zéro c'est à dire
48
* Ici on l'utilise en passant l'argument égal à zéro c'est à dire
49
* en partant du menu racine d'un site gmr_id_menu_02 = 0.
49
* en partant du menu racine d'un site gmr_id_menu_02 = 0.
Line 56... Line 56...
56
*/
56
*/
57
function GEN_donnerProfondeurMax($id_site, $id_menu)
57
function GEN_donnerProfondeurMax($id_site, $id_menu)
58
{
58
{
59
    global $db;
59
    global $db;
60
    static $prof = 0;
60
    static $prof = 0;
61
    
61
 
62
    // Requête sur les relations de type "avoir père" entre menus
62
    // Requête sur les relations de type "avoir père" entre menus
63
    $requete =  'SELECT gmr_id_menu_01 '.
63
    $requete =  'SELECT gmr_id_menu_01 '.
64
                'FROM gen_menu, gen_menu_relation '.
64
                'FROM gen_menu, gen_menu_relation '.
65
                'WHERE gmr_id_menu_02 = '.$id_menu.' '.
65
                'WHERE gmr_id_menu_02 = '.$id_menu.' '.
66
                'AND gmr_id_menu_01 = gm_id_menu '.
66
                'AND gmr_id_menu_01 = gm_id_menu '.
67
                'AND gm_ce_site = '.$id_site.' '.
67
                'AND gm_ce_site = '.$id_site.' '.
68
                'AND gmr_id_valeur = 1 '.
68
                'AND gmr_id_valeur = 1 '.
69
                'ORDER BY gmr_ordre ASC';
69
                'ORDER BY gmr_ordre ASC';
70
    
70
 
71
    $resultat = $db->query($requete);
71
    $resultat = $db->query($requete);
72
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
72
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
73
    
73
 
74
    if ($resultat->numRows() == 0) {
74
    if ($resultat->numRows() == 0) {
75
        return $prof;
75
        return $prof;
76
    }
76
    }
77
    $prof++;
77
    $prof++;
78
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
78
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
Line 92... Line 92...
92
*/
92
*/
93
function GEN_donnerDernierFreres($id_menu)
93
function GEN_donnerDernierFreres($id_menu)
94
{
94
{
95
    // Initialisation des variables.
95
    // Initialisation des variables.
96
    global $db;
96
    global $db;
97
    
97
 
98
    $requete =  'SELECT gmr_id_menu_01 '.
98
    $requete =  'SELECT gmr_id_menu_01 '.
99
                'FROM gen_menu_relation '.
99
                'FROM gen_menu_relation '.
100
                'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
100
                'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
101
                'AND gmr_id_valeur = 1 '.
101
                'AND gmr_id_valeur = 1 '.
102
                'AND gmr_id_menu_01 <> '.$id_menu.' '.
102
                'AND gmr_id_menu_01 <> '.$id_menu.' '.
103
                'ORDER BY gmr_ordre DESC';
103
                'ORDER BY gmr_ordre DESC';
104
    
104
 
105
    $resultat = $db->query($requete);
105
    $resultat = $db->query($requete);
106
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
106
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
107
    
107
 
108
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
108
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
109
    if ($resultat->numRows() > 0) {
109
    if ($resultat->numRows() > 0) {
110
        return $ligne->gmr_id_menu_01;
110
        return $ligne->gmr_id_menu_01;
111
    } else {
111
    } else {
112
        return false;
112
        return false;
Line 124... Line 124...
124
*/
124
*/
125
function GEN_etreFreres($id_menu_1, $id_menu_2)
125
function GEN_etreFreres($id_menu_1, $id_menu_2)
126
{
126
{
127
    // Initialisation des variables.
127
    // Initialisation des variables.
128
    global $db;
128
    global $db;
129
    
129
 
130
    $requete =  'SELECT gmr_id_menu_02 '.
130
    $requete =  'SELECT gmr_id_menu_02 '.
131
                'FROM gen_menu_relation '.
131
                'FROM gen_menu_relation '.
132
                'WHERE gmr_id_menu_01 = '.$id_menu_1.' '.
132
                'WHERE gmr_id_menu_01 = '.$id_menu_1.' '.
133
                'AND gmr_id_valeur = 1 ';
133
                'AND gmr_id_valeur = 1 ';
134
    
134
 
135
    $resultat = $db->query($requete);
135
    $resultat = $db->query($requete);
136
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
136
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
137
    
137
 
138
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
138
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
139
    $id_pere_1 = $ligne->gmr_id_menu_02;
139
    $id_pere_1 = $ligne->gmr_id_menu_02;
140
    $resultat->free();
140
    $resultat->free();
Line 141... Line 141...
141
 
141
 
142
    $requete =  'SELECT gmr_id_menu_02 '.
142
    $requete =  'SELECT gmr_id_menu_02 '.
143
                'FROM gen_menu_relation '.
143
                'FROM gen_menu_relation '.
144
                'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
144
                'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
145
                'AND gmr_id_valeur = 1 ';
145
                'AND gmr_id_valeur = 1 ';
146
    
146
 
147
    $resultat = $db->query($requete);
147
    $resultat = $db->query($requete);
148
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
148
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
149
    
149
 
150
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
150
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
151
    $id_pere_2 = $ligne->gmr_id_menu_02;
151
    $id_pere_2 = $ligne->gmr_id_menu_02;
152
    $resultat->free();
152
    $resultat->free();
153
    
153
 
154
    return ($id_pere_1 == $id_pere_2);
154
    return ($id_pere_1 == $id_pere_2);
Line 155... Line 155...
155
}
155
}
156
 
156
 
Line 171... Line 171...
171
{
171
{
172
    //Test erreur
172
    //Test erreur
173
    if (is_null($id_menu_1) || is_null($id_menu_2)) {
173
    if (is_null($id_menu_1) || is_null($id_menu_2)) {
174
        return false;
174
        return false;
175
    }
175
    }
176
    
176
 
177
    // Initialisation des variables.
177
    // Initialisation des variables.
178
    global $db;
178
    global $db;
179
    
179
 
180
    $requete =  'SELECT gmr_id_menu_02 '.
180
    $requete =  'SELECT gmr_id_menu_02 '.
181
                'FROM gen_menu_relation '.
181
                'FROM gen_menu_relation '.
182
                'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
182
                'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
183
                'AND gmr_id_valeur = 1 ';
183
                'AND gmr_id_valeur = 1 ';
184
    
184
 
185
    $resultat = $db->query($requete);
185
    $resultat = $db->query($requete);
186
    (DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
186
    (DB::isError($resultat)) ? die (BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
187
    
187
 
188
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
188
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
189
    $resultat->free();
189
    $resultat->free();
190
    if (isset($ligne)) {
190
    if (isset($ligne)) {
191
	    if  ($ligne->gmr_id_menu_02 == 0) {
191
	    if  ($ligne->gmr_id_menu_02 == 0) {
192
	        return false;
192
	        return false;
Line 213... Line 213...
213
    // On teste si on est au niveau d'un menu racine i.e GM_ID_PERE=0
213
    // On teste si on est au niveau d'un menu racine i.e GM_ID_PERE=0
214
    $requete =  'SELECT gmr_id_menu_02 '.
214
    $requete =  'SELECT gmr_id_menu_02 '.
215
                'FROM gen_menu_relation '.
215
                'FROM gen_menu_relation '.
216
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
216
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
217
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
217
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
218
    
218
 
219
    $resultat = $db->query($requete);
219
    $resultat = $db->query($requete);
220
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
220
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
221
    
221
 
222
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
222
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
223
    $resultat->free();
223
    $resultat->free();
224
    
224
 
225
    // Dans le cas où le menu en paramètre est un menu racine
225
    // Dans le cas où le menu en paramètre est un menu racine
226
    if ($ligne->gmr_id_menu_02 == 0) {
226
    if ($ligne->gmr_id_menu_02 == 0) {
227
        return $id_menu;
227
        return $id_menu;
228
    }
228
    }
229
    
229
 
230
    return GEN_lireIdentifiantMenuAncetre($ligne->gmr_id_menu_02);
230
    return GEN_lireIdentifiantMenuAncetre($ligne->gmr_id_menu_02);
231
}
231
}
Line 232... Line 232...
232
 
232
 
233
/** Fonction GEN_lireIdentifiantMenuPere() - Renvoie l'identifiant du père du menu passé en paramètre.
233
/** Fonction GEN_lireIdentifiantMenuPere() - Renvoie l'identifiant du père du menu passé en paramètre.
Line 243... Line 243...
243
function GEN_lireIdentifiantMenuPere($id_menu, $db = null)
243
function GEN_lireIdentifiantMenuPere($id_menu, $db = null)
244
{
244
{
245
    if (is_null($db)) {
245
    if (is_null($db)) {
246
        $db =& $GLOBALS['_GEN_commun']['pear_db'];
246
        $db =& $GLOBALS['_GEN_commun']['pear_db'];
247
    }
247
    }
248
    
248
 
249
    $requete =  'SELECT gmr_id_menu_02 '.
249
    $requete =  'SELECT gmr_id_menu_02 '.
250
                'FROM gen_menu_relation '.
250
                'FROM gen_menu_relation '.
251
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
251
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
252
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
252
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
253
    
253
 
254
    $resultat = $db->getOne($requete) ;
254
    $resultat = $db->getOne($requete) ;
255
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
255
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
256
    
256
 
257
    return $resultat;
257
    return $resultat;
258
}
258
}
Line 259... Line 259...
259
 
259
 
260
/** Fonction GEN_lireInfoMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu
260
/** Fonction GEN_lireInfoMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu
Line 274... Line 274...
274
    //----------------------------------------------------------------------------
274
    //----------------------------------------------------------------------------
275
    // Recherche des informations sur le menu
275
    // Recherche des informations sur le menu
276
    $requete =  'SELECT * '.
276
    $requete =  'SELECT * '.
277
                'FROM gen_menu '.
277
                'FROM gen_menu '.
278
                'WHERE gm_id_menu = '.$id_menu;
278
                'WHERE gm_id_menu = '.$id_menu;
279
    
279
 
280
    $resultat = $db->query($requete);
280
    $resultat = $db->query($requete);
281
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
281
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
282
    
282
 
283
    if ($resultat->numRows() != 1) {
283
    if ($resultat->numRows() != 1) {
284
        return false;
284
        return false;
285
    }
285
    }
286
    
286
 
287
    //----------------------------------------------------------------------------
287
    //----------------------------------------------------------------------------
288
    // Récupération des infos
288
    // Récupération des infos
289
    $info_menu = $resultat->fetchRow($mode);
289
    $info_menu = $resultat->fetchRow($mode);
290
    $resultat->free();
290
    $resultat->free();
291
    
291
 
292
    return $info_menu;
292
    return $info_menu;
293
}
293
}
294
/** Fonction GEN_retournerMenuCodeNum() - Renvoie le code num d'un menu en fonction du code Alphanumérique
294
/** Fonction GEN_retournerMenuCodeNum() - Renvoie le code num d'un menu en fonction du code Alphanumérique
295
*
295
*
296
* Retourne le code numérique d'un menu en fonction du code alphanumérique.
296
* Retourne le code numérique d'un menu en fonction du code alphanumérique.
Line 304... Line 304...
304
    //----------------------------------------------------------------------------
304
    //----------------------------------------------------------------------------
305
    // Recherche des informations sur le menu
305
    // Recherche des informations sur le menu
306
    $requete =  'SELECT gm_code_num '.
306
    $requete =  'SELECT gm_code_num '.
307
                'FROM gen_menu '.
307
                'FROM gen_menu '.
308
                'WHERE gm_code_alpha = "'.$code_alphanum.'"';
308
                'WHERE gm_code_alpha = "'.$code_alphanum.'"';
309
    
309
 
310
    $resultat = $db->query($requete);
310
    $resultat = $db->query($requete);
311
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
311
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
312
    
312
 
313
    if ($resultat->numRows() != 1) {
313
    if ($resultat->numRows() != 1) {
314
        return false;
314
        return false;
315
    }
315
    }
316
    
316
 
317
    //----------------------------------------------------------------------------
317
    //----------------------------------------------------------------------------
318
    // Récupération des infos
318
    // Récupération des infos
319
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
319
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
320
    $code_num = $info_menu->gm_code_num;
320
    $code_num = $info_menu->gm_code_num;
321
    $resultat->free();
321
    $resultat->free();
322
    
322
 
323
    return $code_num;
323
    return $code_num;
324
}
324
}
Line 325... Line 325...
325
 
325
 
326
/** Fonction GEN_retournerMenuCodeAlpha() - Renvoie le code alphanumérique d'un menu en fonction du code numérique
326
/** Fonction GEN_retournerMenuCodeAlpha() - Renvoie le code alphanumérique d'un menu en fonction du code numérique
Line 336... Line 336...
336
    //----------------------------------------------------------------------------
336
    //----------------------------------------------------------------------------
337
    // Recherche des informations sur le menu
337
    // Recherche des informations sur le menu
338
    $requete =  'SELECT gm_code_alpha '.
338
    $requete =  'SELECT gm_code_alpha '.
339
                'FROM gen_menu '.
339
                'FROM gen_menu '.
340
                'WHERE gm_code_num = '.$code_num;
340
                'WHERE gm_code_num = '.$code_num;
341
    
341
 
342
    $resultat = $db->query($requete);
342
    $resultat = $db->query($requete);
343
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
343
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
344
    
344
 
345
    if ($resultat->numRows() != 1) {
345
    if ($resultat->numRows() != 1) {
346
        return false;
346
        return false;
347
    }
347
    }
348
    
348
 
349
    //----------------------------------------------------------------------------
349
    //----------------------------------------------------------------------------
350
    // Récupération des infos
350
    // Récupération des infos
351
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
351
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
352
    $code_alphanum = $info_menu->gm_code_alpha;
352
    $code_alphanum = $info_menu->gm_code_alpha;
353
    $resultat->free();
353
    $resultat->free();
354
    
354
 
355
    return $code_alphanum;
355
    return $code_alphanum;
356
}
356
}
Line 357... Line 357...
357
 
357
 
358
/** Fonction GEN_lireContenuMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_contenu
358
/** Fonction GEN_lireContenuMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_contenu
Line 367... Line 367...
367
*/
367
*/
368
function GEN_lireContenuMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
368
function GEN_lireContenuMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
369
{
369
{
370
    //----------------------------------------------------------------------------
370
    //----------------------------------------------------------------------------
371
    // Gestion des erreurs
371
    // Gestion des erreurs
372
    
372
 
373
    //----------------------------------------------------------------------------
373
    //----------------------------------------------------------------------------
374
    // Recherche des informations sur le menu
374
    // Recherche des informations sur le menu
375
    $requete =  'SELECT * '.
375
    $requete =  'SELECT * '.
376
                'FROM gen_menu_contenu '.
376
                'FROM gen_menu_contenu '.
377
                'WHERE gmc_ce_menu = '.$id_menu.' '.
377
                'WHERE gmc_ce_menu = '.$id_menu.' '.
378
                'AND gmc_bool_dernier = 1';
378
                'AND gmc_bool_dernier = 1';
379
    
379
 
380
    $resultat = $db->query($requete);
380
    $resultat = $db->query($requete);
381
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
381
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
382
    
382
 
383
    if ($resultat->numRows() != 1) {
383
    if ($resultat->numRows() != 1) {
384
        return false;
384
        return false;
385
    }
385
    }
386
    
386
 
387
    //----------------------------------------------------------------------------
387
    //----------------------------------------------------------------------------
388
    // Récupération des infos
388
    // Récupération des infos
389
    $info_menu = $resultat->fetchRow($mode);
389
    $info_menu = $resultat->fetchRow($mode);
390
    $resultat->free();
390
    $resultat->free();
391
    
391
 
392
    return $info_menu;
392
    return $info_menu;
393
}
393
}
Line 394... Line 394...
394
 
394
 
395
/** Fonction GEN_retournerMenus() - Renvoie un tableau contenant les id de l'ensemble des menus
395
/** Fonction GEN_retournerMenus() - Renvoie un tableau contenant les id de l'ensemble des menus
Line 401... Line 401...
401
*/
401
*/
402
function GEN_retournerMenus(&$db)
402
function GEN_retournerMenus(&$db)
403
{
403
{
404
    //----------------------------------------------------------------------------
404
    //----------------------------------------------------------------------------
405
    // Gestion des erreurs
405
    // Gestion des erreurs
406
    
406
 
407
    //----------------------------------------------------------------------------
407
    //----------------------------------------------------------------------------
408
    // Recherche des informations sur le menu
408
    // Recherche des informations sur le menu
409
    $requete =  'SELECT gm_id_menu '.
409
    $requete =  'SELECT gm_id_menu '.
410
                'FROM gen_menu ';
410
                'FROM gen_menu ';
411
    
411
 
412
    $resultat = $db->query($requete);
412
    $resultat = $db->query($requete);
413
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
413
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
414
    
414
 
415
    //----------------------------------------------------------------------------
415
    //----------------------------------------------------------------------------
416
    // Récupération des infos
416
    // Récupération des infos
417
    $tab_retour = array();
417
    $tab_retour = array();
418
    while ($info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
418
    while ($info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
419
        array_push($tab_retour, $info_menu->gm_id_menu);
419
        array_push($tab_retour, $info_menu->gm_id_menu);
420
    }
420
    }
421
    $resultat->free();
421
    $resultat->free();
422
    
422
 
423
    return $tab_retour;
423
    return $tab_retour;
424
}
424
}
Line 425... Line 425...
425
 
425
 
426
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
426
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
Line 440... Line 440...
440
    // Recherche des informations sur la relation de menu
440
    // Recherche des informations sur la relation de menu
441
    $requete =  'SELECT * '.
441
    $requete =  'SELECT * '.
442
                'FROM gen_menu_relation '.
442
                'FROM gen_menu_relation '.
443
                'WHERE gmr_id_menu_01 = '.$menuid.' '.
443
                'WHERE gmr_id_menu_01 = '.$menuid.' '.
444
                'AND gmr_id_valeur = '.$id_valeur;
444
                'AND gmr_id_valeur = '.$id_valeur;
445
    
445
 
446
    $result = $db->query($requete);
446
    $result = $db->query($requete);
447
    (DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
447
    (DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
448
    
448
 
449
    if ($result->numRows() != 1) {
449
    if ($result->numRows() != 1) {
450
        return false;
450
        return false;
451
    }
451
    }
452
    
452
 
453
    //----------------------------------------------------------------------------
453
    //----------------------------------------------------------------------------
454
    // Récupération des infos
454
    // Récupération des infos
455
    $info_menu_relation = $result->fetchRow($mode);
455
    $info_menu_relation = $result->fetchRow($mode);
456
    $result->free();
456
    $result->free();
457
    
457
 
458
    return $info_menu_relation;
458
    return $info_menu_relation;
459
}
459
}
Line 460... Line 460...
460
 
460
 
461
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
461
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
Line 473... Line 473...
473
{
473
{
474
    // Gestion des erreurs
474
    // Gestion des erreurs
475
    if ($code == '') {
475
    if ($code == '') {
476
        return true;
476
        return true;
477
    }
477
    }
478
    
478
 
479
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
479
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
480
    $requete =  'SELECT gm_id_menu '.
480
    $requete =  'SELECT gm_id_menu '.
481
                'FROM gen_menu '.
481
                'FROM gen_menu '.
482
                'WHERE gm_id_menu <> '.$id_menu.' ';
482
                'WHERE gm_id_menu <> '.$id_menu.' ';
483
    
483
 
484
    // Complément de requête en fonction du type de code
484
    // Complément de requête en fonction du type de code
485
    if ($type == 'int') {
485
    if ($type == 'int') {
486
        $requete .= 'AND gm_code_num = '.$code;
486
        $requete .= 'AND gm_code_num = '.$code;
487
    } else {
487
    } else {
488
        $requete .= 'AND gm_code_alpha = "'.$code.'"';
488
        $requete .= 'AND gm_code_alpha = "'.$code.'"';
Line 498... Line 498...
498
        return false;
498
        return false;
499
    }
499
    }
500
}
500
}
501
/** Fonction GEN_lireInfoMenuMotsCles() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
501
/** Fonction GEN_lireInfoMenuMotsCles() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
502
*
502
*
503
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés présents dans 
503
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés présents dans
504
* la table gen_menu.
504
* la table gen_menu.
505
*
505
*
506
* @param  mixed   Une instance de la classse PEAR_DB
506
* @param  mixed   Une instance de la classse PEAR_DB
507
* @param  array  un tableau de mots clés.
507
* @param  array  un tableau de mots clés.
508
* @param  string  la condition séparant chaque rechercher de mots-clés (AND ou OR).
508
* @param  string  la condition séparant chaque rechercher de mots-clés (AND ou OR).
Line 526... Line 526...
526
        }
526
        }
527
    }
527
    }
528
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
528
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
529
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
529
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
530
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
530
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
531
    
531
 
532
    return $aso_info;
532
    return $aso_info;
533
}
533
}
Line 534... Line 534...
534
 
534
 
535
/** Fonction GEN_lireInfoMenuMeta() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
535
/** Fonction GEN_lireInfoMenuMeta() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
536
*
536
*
537
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés, 
537
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés,
538
* catégories, id_menu, 
538
* catégories, id_menu,
539
* la table gen_menu.
539
* la table gen_menu.
540
*
540
*
541
* @param  mixed   Une instance de la classse PEAR_DB
541
* @param  mixed   Une instance de la classse PEAR_DB
542
* @param  array  un tableau de mots clés.
542
* @param  array  un tableau de mots clés.
Line 569... Line 569...
569
        }
569
        }
570
    }
570
    }
571
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
571
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
572
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
572
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
573
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
573
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
574
    
574
 
575
    return $aso_info;
575
    return $aso_info;
576
}
576
}
577
/** Fonction GEN_lireInfoMenuCategorie() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
577
/** Fonction GEN_lireInfoMenuCategorie() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
578
*
578
*
579
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans 
579
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
580
* la table gen_menu.
580
* la table gen_menu.
581
*
581
*
582
* @param  mixed   Une instance de la classse PEAR_DB
582
* @param  mixed   Une instance de la classse PEAR_DB
583
* @param  array  un tableau de catégorie(s).
583
* @param  array  un tableau de catégorie(s).
584
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
584
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
Line 599... Line 599...
599
            $requete .= 'OR gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
599
            $requete .= 'OR gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
600
        }
600
        }
601
    }
601
    }
602
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
602
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
603
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
603
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
604
    
604
 
605
    return $aso_info;
605
    return $aso_info;
606
}
606
}
607
/** Fonction GEN_lireInfoMenuContenuDate() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
607
/** Fonction GEN_lireInfoMenuContenuDate() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
608
*
608
*
609
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans 
609
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
610
* la table gen_menu.
610
* la table gen_menu.
611
*
611
*
612
* @param  mixed   Une instance de la classse PEAR_DB
612
* @param  mixed   Une instance de la classse PEAR_DB
613
* @param  array  le type de modification.
613
* @param  array  le type de modification.
614
* @param  array  le code alphanumérique du site ou de plusieurs sites séparés par des virgules.
614
* @param  array  le code alphanumérique du site ou de plusieurs sites séparés par des virgules.
Line 628... Line 628...
628
    if (!empty($site)) {
628
    if (!empty($site)) {
629
        $site = sprintf($site_sql, '"'.implode('", "', array_map('trim', explode(',', $site))).'"');
629
        $site = sprintf($site_sql, '"'.implode('", "', array_map('trim', explode(',', $site))).'"');
630
    } else {
630
    } else {
631
        $site = '';
631
        $site = '';
632
    }
632
    }
633
    
633
 
634
    if (!empty($categorie)) {
634
    if (!empty($categorie)) {
635
        $categorie = 'AND gm_categorie like "%'.$categorie.'%"' ;
635
        $categorie = 'AND gm_categorie like "%'.$categorie.'%"' ;
636
    } else {
636
    } else {
637
        $categorie = '';
637
        $categorie = '';
638
    }
638
    }
639
    // Recherche des informations sur les menus en fonctions des mots clés
639
    // Recherche des informations sur les menus en fonctions des mots clés
640
    $requete =  'SELECT DISTINCT gen_menu.*, gs_code_alpha, gmc_date_modification, gmc_resume_modification, gmc_ce_type_modification '.
640
    $requete =  'SELECT DISTINCT gen_menu.*, gs_code_alpha, gmc_date_modification, gmc_resume_modification, gmc_ce_type_modification '.
641
                'FROM gen_site, gen_menu, gen_menu_contenu '.
641
                'FROM gen_site, gen_menu, gen_menu_contenu '.
642
                'WHERE gmc_date_modification <= "'.date('Y-m-d H:i:s', time()).'" '.
642
                'WHERE gmc_date_modification <= "'.date('Y-m-d H:i:s', time()).'" '.
643
                'AND gm_ce_site = gs_id_site '.
643
                'AND (gm_ce_site = gs_id_site OR gm_ce_site = 0) '.
644
                'AND gm_id_menu = gmc_ce_menu '.
644
                'AND gm_id_menu = gmc_ce_menu '.
645
                'AND gmc_bool_dernier = 1 '.
645
                'AND gmc_bool_dernier = 1 '.
646
                $site.
646
                $site.
647
                $type_modif.
647
                $type_modif.
648
                $categorie.
648
                $categorie.
649
                'ORDER BY gmc_date_modification DESC';
649
                'ORDER BY gmc_date_modification DESC';
650
    
650
 
651
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
651
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
652
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
652
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
653
    
653
 
654
    return $aso_info;
654
    return $aso_info;
655
}
655
}
656
/** Fonction GEN_retournerTableauMenusSiteCodeAlpha() - Renvoie un tableau de tableau contenant des lignes de la table gen_menu
656
/** Fonction GEN_retournerTableauMenusSiteCodeAlpha() - Renvoie un tableau de tableau contenant des lignes de la table gen_menu
657
*
657
*
658
* Renvoie un tableau de tableau contenant les lignes de la table gen_menu pour un site donné. Les tableaux sont imbriquées 
658
* Renvoie un tableau de tableau contenant les lignes de la table gen_menu pour un site donné. Les tableaux sont imbriquées
659
* pour reproduire l'arborescence des menus.
659
* pour reproduire l'arborescence des menus.
660
*
660
*
661
* @param  mixed  Une instance de la classse PEAR_DB
661
* @param  mixed  Une instance de la classse PEAR_DB
662
* @param  string le code alphanumérique du site.
662
* @param  string le code alphanumérique du site.
663
* @return  array   un tableau de tableau contenant des lignes de la table gen_menu.
663
* @return  array   un tableau de tableau contenant des lignes de la table gen_menu.
664
*/
664
*/
665
function GEN_retournerTableauMenusSiteCodeAlpha(&$db, $site, $id_pere = 0, $aso_site_menus = array())
665
function GEN_retournerTableauMenusSiteCodeAlpha(&$db, $site, $id_pere = 0, $aso_site_menus = array())
666
{
666
{
667
    
667
 
668
    $requete =  'SELECT gen_menu.* '.
668
    $requete =  'SELECT gen_menu.* '.
669
                'FROM gen_site, gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
669
                'FROM gen_site, gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
670
                'WHERE GMR01.gmr_id_menu_02 = '.$id_pere.' '.
670
                'WHERE GMR01.gmr_id_menu_02 = '.$id_pere.' '.
671
                'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
671
                'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
672
                'AND gs_code_alpha = "'.$site.'" '.
672
                'AND gs_code_alpha = "'.$site.'" '.
Line 678... Line 678...
678
                'ORDER BY GMR01.gmr_ordre ASC';
678
                'ORDER BY GMR01.gmr_ordre ASC';
679
    $resultat = $db->query($requete);
679
    $resultat = $db->query($requete);
680
    if (DB::isError($resultat)) {
680
    if (DB::isError($resultat)) {
681
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
681
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
682
    }
682
    }
683
    
683
 
684
    if ($resultat->numRows() > 0) {
684
    if ($resultat->numRows() > 0) {
685
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
685
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
686
            $aso_site_menus[$ligne['gm_id_menu']] = $ligne;
686
            $aso_site_menus[$ligne['gm_id_menu']] = $ligne;
687
            $aso_site_menus[$ligne['gm_id_menu']]['sous_menus'] = GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $ligne['gm_id_menu']);
687
            $aso_site_menus[$ligne['gm_id_menu']]['sous_menus'] = GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $ligne['gm_id_menu']);
688
        }
688
        }
689
    }
689
    }
690
    return $aso_site_menus;
690
    return $aso_site_menus;
691
}
691
}
692
/* +--Fin du code ---------------------------------------------------------------------------------------+
692
/* +--Fin du code ---------------------------------------------------------------------------------------+
693
* $Log: not supported by cvs2svn $
693
* $Log: not supported by cvs2svn $
-
 
694
* Revision 1.24  2005/09/20 17:01:22  ddelon
-
 
695
* php5 et bugs divers
-
 
696
*
694
* Revision 1.23  2005/08/29 09:05:12  ddelon
697
* Revision 1.23  2005/08/29 09:05:12  ddelon
695
* Suppression message debug
698
* Suppression message debug
696
*
699
*
697
* Revision 1.22  2005/07/08 15:16:37  alexandre_tb
700
* Revision 1.22  2005/07/08 15:16:37  alexandre_tb
698
* ajout de la fonction GEN_lireInfoMenuMeta() qui permet de sélectionner des menus en fonction de leur mot clé et leur catégorie
701
* ajout de la fonction GEN_lireInfoMenuMeta() qui permet de sélectionner des menus en fonction de leur mot clé et leur catégorie