Subversion Repositories Applications.papyrus

Rev

Rev 1846 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1846 Rev 2089
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
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
16
// | Lesser General Public License for more details.                                                      |
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.34 2008-08-08 14:42:14 jp_milcent Exp $
22
// CVS : $Id: pap_menu.fonct.php,v 1.34 2008-08-08 14:42:14 jp_milcent 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
*
28
*@package Papyrus
28
*@package Papyrus
29
*@subpackage Fonctions
29
*@subpackage Fonctions
30
//Auteur original :
30
//Auteur original :
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
*@copyright     Tela-Botanica 2000-2004
34
*@copyright     Tela-Botanica 2000-2004
35
*@version       $Revision: 1.34 $ $Date: 2008-08-08 14:42:14 $
35
*@version       $Revision: 1.34 $ $Date: 2008-08-08 14:42:14 $
36
// +------------------------------------------------------------------------------------------------------+
36
// +------------------------------------------------------------------------------------------------------+
37
*/
37
*/
38
 
38
 
39
// +------------------------------------------------------------------------------------------------------+
39
// +------------------------------------------------------------------------------------------------------+
40
// |                                            LISTE des FONCTIONS                                       |
40
// |                                            LISTE des FONCTIONS                                       |
41
// +------------------------------------------------------------------------------------------------------+
41
// +------------------------------------------------------------------------------------------------------+
42
 
42
 
43
/** Fonction GEN_donnerProfondeurMax() - Renvoie le nombre de niveau de menu.
43
/** Fonction GEN_donnerProfondeurMax() - Renvoie le nombre de niveau de menu.
44
*
44
*
45
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant
45
* Cette fonction calcule, pour un menu donné, le nombre de niveau de menu fils complétant
46
* l'arbre des menus jusqu'au feuilles.
46
* l'arbre des menus jusqu'au feuilles.
47
* Ici on l'utilise en passant l'argument égal à zéro c'est à dire
47
* Ici on l'utilise en passant l'argument égal à zéro c'est à dire
48
* en partant du menu racine d'un site gmr_id_menu_02 = 0.
48
* en partant du menu racine d'un site gmr_id_menu_02 = 0.
49
* C'est une fonction récursive.
49
* C'est une fonction récursive.
50
* Noter que la variable $prof est statique.
50
* Noter que la variable $prof est statique.
51
*
51
*
52
* @param integer identifiant du site sur lequel la profondeur est calculé.
52
* @param integer identifiant du site sur lequel la profondeur est calculé.
53
* @param integer identifiant du menu à partir duquel on souhaite calculer la profondeur.
53
* @param integer identifiant du menu à partir duquel on souhaite calculer la profondeur.
54
* @return integer le nombre de niveau de menu.
54
* @return integer le nombre de niveau de menu.
55
*/
55
*/
56
function GEN_donnerProfondeurMax($id_site, $id_menu)
56
function GEN_donnerProfondeurMax($id_site, $id_menu)
57
{
57
{
58
    global $db;
58
    global $db;
59
    static $prof = 0;
59
    static $prof = 0;
60
 
60
 
61
    // Requête sur les relations de type "avoir père" entre menus
61
    // Requête sur les relations de type "avoir père" entre menus
62
    $requete =  'SELECT gmr_id_menu_01 '.
62
    $requete =  'SELECT gmr_id_menu_01 '.
63
                'FROM gen_menu, gen_menu_relation '.
63
                'FROM gen_menu, gen_menu_relation '.
64
                'WHERE gmr_id_menu_02 = '.$id_menu.' '.
64
                'WHERE gmr_id_menu_02 = '.$id_menu.' '.
65
                'AND gmr_id_menu_01 = gm_id_menu '.
65
                'AND gmr_id_menu_01 = gm_id_menu '.
66
                'AND gm_ce_site = '.$id_site.' '.
66
                'AND gm_ce_site = '.$id_site.' '.
67
                'AND gmr_id_valeur = 1 '.
67
                'AND gmr_id_valeur = 1 '.
68
                'ORDER BY gmr_ordre ASC';
68
                'ORDER BY gmr_ordre ASC';
69
 
69
 
70
    $resultat = $db->query($requete);
70
    $resultat = $db->query($requete);
71
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
71
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
72
 
72
 
73
    if ($resultat->numRows() == 0) {
73
    if ($resultat->numRows() == 0) {
74
        return $prof;
74
        return $prof;
75
    }
75
    }
76
    $prof++;
76
    $prof++;
77
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
77
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
78
        $prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01);
78
        $prof = GEN_donnerProfondeurMax($id_site, $ligne->gmr_id_menu_01);
79
    }
79
    }
80
    return $prof;
80
    return $prof;
81
}
81
}
82
 
82
 
83
/** Fonction GEN_donnerProfondeur() - Renvoie le niveau du menu.
83
/** Fonction GEN_donnerProfondeur() - Renvoie le niveau du menu.
84
*
84
*
85
* Cette fonction calcule, pour un menu donné, son niveau par rapport à la racine.
85
* Cette fonction calcule, pour un menu donné, son niveau par rapport à la racine.
86
* C'est une fonction récursive.
86
* C'est une fonction récursive.
87
* Noter que la variable $prof est statique.
87
* Noter que la variable $prof est statique.
88
*
88
*
89
* @param integer identifiant du site sur lequel la profondeur est calculé.
89
* @param integer identifiant du site sur lequel la profondeur est calculé.
90
* @param integer identifiant du menu dont on souhaite connaître la profondeur.
90
* @param integer identifiant du menu dont on souhaite connaître la profondeur.
91
* @param integer profondeur de départ (par défaut 0). Ne devrait pas être modifié...
91
* @param integer profondeur de départ (par défaut 0). Ne devrait pas être modifié...
92
* @return integer le nombre de niveau de menu.
92
* @return integer le nombre de niveau de menu.
93
*/
93
*/
94
function GEN_donnerProfondeur($id_site, $id_menu, $prof = 0)
94
function GEN_donnerProfondeur($id_site, $id_menu, $prof = 0)
95
{
95
{
96
    global $db;
96
    global $db;
97
 
97
 
98
    // Requête sur les relations de type "avoir père" entre menus
98
    // Requête sur les relations de type "avoir père" entre menus
99
    $requete =  'SELECT gmr_id_menu_02 '.
99
    $requete =  'SELECT gmr_id_menu_02 '.
100
                'FROM gen_menu, gen_menu_relation '.
100
                'FROM gen_menu, gen_menu_relation '.
101
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
101
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
102
                'AND gmr_id_menu_01 = gm_id_menu '.
102
                'AND gmr_id_menu_01 = gm_id_menu '.
103
                'AND gm_ce_site = '.$id_site.' '.
103
                'AND gm_ce_site = '.$id_site.' '.
104
                'AND gmr_id_valeur = 1 '.
104
                'AND gmr_id_valeur = 1 '.
105
                'ORDER BY gmr_ordre ASC';
105
                'ORDER BY gmr_ordre ASC';
106
 
106
 
107
    $resultat = $db->query($requete);
107
    $resultat = $db->query($requete);
108
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
108
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
109
 
109
 
110
    if ($resultat->numRows() != 0) {
110
    if ($resultat->numRows() != 0) {
111
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
111
	    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
112
	        $prof = GEN_donnerProfondeur($id_site, $ligne->gmr_id_menu_02, ++$prof);
112
	        $prof = GEN_donnerProfondeur($id_site, $ligne->gmr_id_menu_02, ++$prof);
113
	    }
113
	    }
114
    }
114
    }
115
    return $prof;
115
    return $prof;
116
}
116
}
117
 
117
 
118
/** Fonction GEN_donnerDernierFreres() - Renvoie l'id du dernier menu frère.
118
/** Fonction GEN_donnerDernierFreres() - Renvoie l'id du dernier menu frère.
119
*
119
*
120
* Cette fonction regarde si un menu donné possède au moins un frère dans l'arbre
120
* Cette fonction regarde si un menu donné possède au moins un frère dans l'arbre
121
* des menus. Elle retourne l'id du dernier menu frére en utilisant gmr_ordre.
121
* des menus. Elle retourne l'id du dernier menu frére en utilisant gmr_ordre.
122
* Cette fonction fait appel à la fonction : GEN_lireIdentifiantMenuPere().
122
* Cette fonction fait appel à la fonction : GEN_lireIdentifiantMenuPere().
123
*
123
*
124
* @param integer identifiant du menu.
124
* @param integer identifiant du menu.
125
* @return boolean renvoi l'id du dernier menu frère sinon faux.
125
* @return boolean renvoi l'id du dernier menu frère sinon faux.
126
*/
126
*/
127
function GEN_donnerDernierFreres($id_menu)
127
function GEN_donnerDernierFreres($id_menu)
128
{
128
{
129
    // Initialisation des variables.
129
    // Initialisation des variables.
130
    global $db;
130
    global $db;
131
 
131
 
132
    $requete =  'SELECT gmr_id_menu_01 '.
132
    $requete =  'SELECT gmr_id_menu_01 '.
133
                'FROM gen_menu_relation '.
133
                'FROM gen_menu_relation '.
134
                'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
134
                'WHERE gmr_id_menu_02 = '.GEN_lireIdentifiantMenuPere($id_menu).' '.
135
                'AND gmr_id_valeur = 1 '.
135
                'AND gmr_id_valeur = 1 '.
136
                'AND gmr_id_menu_01 <> '.$id_menu.' '.
136
                'AND gmr_id_menu_01 <> '.$id_menu.' '.
137
                'ORDER BY gmr_ordre DESC';
137
                'ORDER BY gmr_ordre DESC';
138
 
138
 
139
    $resultat = $db->query($requete);
139
    $resultat = $db->query($requete);
140
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
140
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
141
 
141
 
142
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
142
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
143
    if ($resultat->numRows() > 0) {
143
    if ($resultat->numRows() > 0) {
144
        return $ligne->gmr_id_menu_01;
144
        return $ligne->gmr_id_menu_01;
145
    } else {
145
    } else {
146
        return false;
146
        return false;
147
    }
147
    }
148
}
148
}
149
 
149
 
150
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
150
/** Fonction GEN_etreFreres() - Renvoie vrai si les menus ont le même père.
151
*
151
*
152
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
152
* Cette fonction regarde si deux menus donnés sont frères dans l'arbre
153
* des menus. Nous regardons si les menus ont le même identifiant comme père.
153
* des menus. Nous regardons si les menus ont le même identifiant comme père.
154
*
154
*
155
* @param integer identifiant du premier menu.
155
* @param integer identifiant du premier menu.
156
* @param integer identifiant du seconde menu.
156
* @param integer identifiant du seconde menu.
157
* @return boolean renvoi vrai si les deux menus sont frères sinon faux.
157
* @return boolean renvoi vrai si les deux menus sont frères sinon faux.
158
*/
158
*/
159
function GEN_etreFreres($id_menu_1, $id_menu_2)
159
function GEN_etreFreres($id_menu_1, $id_menu_2)
160
{
160
{
161
    // Initialisation des variables.
161
    // Initialisation des variables.
162
    global $db;
162
    global $db;
163
 
163
 
164
    $requete =  'SELECT gmr_id_menu_02 '.
164
    $requete =  'SELECT gmr_id_menu_02 '.
165
                'FROM gen_menu_relation '.
165
                'FROM gen_menu_relation '.
166
                'WHERE gmr_id_menu_01 = '.$id_menu_1.' '.
166
                'WHERE gmr_id_menu_01 = '.$id_menu_1.' '.
167
                'AND gmr_id_valeur = 1 ';
167
                'AND gmr_id_valeur = 1 ';
168
 
168
 
169
    $resultat = $db->query($requete);
169
    $resultat = $db->query($requete);
170
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
170
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
171
 
171
 
172
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
172
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
173
    $id_pere_1 = $ligne->gmr_id_menu_02;
173
    $id_pere_1 = $ligne->gmr_id_menu_02;
174
    $resultat->free();
174
    $resultat->free();
175
 
175
 
176
    $requete =  'SELECT gmr_id_menu_02 '.
176
    $requete =  'SELECT gmr_id_menu_02 '.
177
                'FROM gen_menu_relation '.
177
                'FROM gen_menu_relation '.
178
                'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
178
                'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
179
                'AND gmr_id_valeur = 1 ';
179
                'AND gmr_id_valeur = 1 ';
180
 
180
 
181
    $resultat = $db->query($requete);
181
    $resultat = $db->query($requete);
182
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
182
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
183
 
183
 
184
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
184
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
185
    $id_pere_2 = $ligne->gmr_id_menu_02;
185
    $id_pere_2 = $ligne->gmr_id_menu_02;
186
    $resultat->free();
186
    $resultat->free();
187
 
187
 
188
    return ($id_pere_1 == $id_pere_2);
188
    return ($id_pere_1 == $id_pere_2);
189
}
189
}
190
 
190
 
191
/** Fonction GEN_etreAncetre() - Renvoie vrai si le premier argument (identifiant de menu) est un ancètre du second.
191
/** Fonction GEN_etreAncetre() - Renvoie vrai si le premier argument (identifiant de menu) est un ancètre du second.
192
*
192
*
193
* Nous récupérons l'identifiant du père du menu passé en argument numéro 2. Puis,
193
* Nous récupérons l'identifiant du père du menu passé en argument numéro 2. Puis,
194
* nous le comparons à l'argument 1. Si c'est les même on retourne faux. Sinon on rapelle
194
* nous le comparons à l'argument 1. Si c'est les même on retourne faux. Sinon on rapelle
195
* la fonction avec l'identifiant du père trouvé pour l'argument 2. Ainsi de suite jusqu'a
195
* la fonction avec l'identifiant du père trouvé pour l'argument 2. Ainsi de suite jusqu'a
196
* renvoyé vrai où tomber sur un menu racine (idetifiant du père = 0).
196
* renvoyé vrai où tomber sur un menu racine (idetifiant du père = 0).
197
* Si les variable sont null nous retournons false.
197
* Si les variable sont null nous retournons false.
198
* C'est une fonction récursive.
198
* C'est une fonction récursive.
199
*
199
*
200
* @param integer identifiant d'un menu numéro 1.
200
* @param integer identifiant d'un menu numéro 1.
201
* @param integer identifiant d'un menu numéro 2.
201
* @param integer identifiant d'un menu numéro 2.
202
* @return boolean vrai si le menu numéro 1 est ancètre du second.
202
* @return boolean vrai si le menu numéro 1 est ancètre du second.
203
*/
203
*/
204
function GEN_etreAncetre($id_menu_1, $id_menu_2)
204
function GEN_etreAncetre($id_menu_1, $id_menu_2)
205
{
205
{
206
    //Test erreur
206
    //Test erreur
207
    if (is_null($id_menu_1) || is_null($id_menu_2)) {
207
    if (is_null($id_menu_1) || is_null($id_menu_2)) {
208
        return false;
208
        return false;
209
    }
209
    }
210
 
210
 
211
    // Initialisation des variables.
211
    // Initialisation des variables.
212
    global $db;
212
    global $db;
213
 
213
 
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_2.' '.
216
                'WHERE gmr_id_menu_01 = '.$id_menu_2.' '.
217
                'AND gmr_id_valeur = 1 ';
217
                'AND gmr_id_valeur = 1 ';
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
    if (isset($ligne)) {
224
    if (isset($ligne)) {
225
	    if  ($ligne->gmr_id_menu_02 == 0) {
225
	    if  ($ligne->gmr_id_menu_02 == 0) {
226
	        return false;
226
	        return false;
227
	    } else if ($ligne->gmr_id_menu_02 == $id_menu_1) {
227
	    } else if ($ligne->gmr_id_menu_02 == $id_menu_1) {
228
	        return true;
228
	        return true;
229
	    } else {
229
	    } else {
230
	        return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
230
	        return GEN_etreAncetre($id_menu_1, $ligne->gmr_id_menu_02);
231
	    }
231
	    }
232
    }
232
    }
233
}
233
}
234
 
234
 
235
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
235
/** Fonction GEN_lireIdentifiantMenuAncetre() - Renvoie l'identifiant du menu ancètre du menu passé en paramètre.
236
*
236
*
237
*   Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
237
*   Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
238
*   menu dont le père est le menu racine (identifiant = 0) pour le menu passé en paramètre.
238
*   menu dont le père est le menu racine (identifiant = 0) pour le menu passé en paramètre.
239
*
239
*
240
*   @global mixed   objet Pear DB de connexion à la base de données..
240
*   @global mixed   objet Pear DB de connexion à la base de données..
241
*   @param  int     identifiant du menu dont il faut rechercher le père.
241
*   @param  int     identifiant du menu dont il faut rechercher le père.
242
*   @return int     identifiant du menu ancètre du menu passé en paramètre.
242
*   @return int     identifiant du menu ancètre du menu passé en paramètre.
243
*/
243
*/
244
function GEN_lireIdentifiantMenuAncetre($id_menu)
244
function GEN_lireIdentifiantMenuAncetre($id_menu)
245
{
245
{
246
    global $db;
246
    global $db;
247
    // On teste si on est au niveau d'un menu racine i.e GM_ID_PERE=0
247
    // On teste si on est au niveau d'un menu racine i.e GM_ID_PERE=0
248
    $requete =  'SELECT gmr_id_menu_02 '.
248
    $requete =  'SELECT gmr_id_menu_02 '.
249
                'FROM gen_menu_relation '.
249
                'FROM gen_menu_relation '.
250
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
250
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
251
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
251
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
252
 
252
 
253
    $resultat = $db->query($requete);
253
    $resultat = $db->query($requete);
254
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
254
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
255
 
255
 
256
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
256
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
257
    $resultat->free();
257
    $resultat->free();
258
 
258
 
259
    // Dans le cas où le menu en paramètre est un menu racine
259
    // Dans le cas où le menu en paramètre est un menu racine
260
    if ($ligne->gmr_id_menu_02 == 0) {
260
    if ($ligne->gmr_id_menu_02 == 0) {
261
        return $id_menu;
261
        return $id_menu;
262
    }
262
    }
263
 
263
 
264
    return GEN_lireIdentifiantMenuAncetre($ligne->gmr_id_menu_02);
264
    return GEN_lireIdentifiantMenuAncetre($ligne->gmr_id_menu_02);
265
}
265
}
266
 
266
 
267
/** Fonction GEN_lireIdentifiantMenuPere() - Renvoie l'identifiant du père du menu passé en paramètre.
267
/** Fonction GEN_lireIdentifiantMenuPere() - Renvoie l'identifiant du père du menu passé en paramètre.
268
*
268
*
269
* Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
269
* Cette fonction parcours la table gen_menu_relation et retourne l'identifiant du
270
* menu père du menu passé en paramètre.
270
* menu père du menu passé en paramètre.
271
*
271
*
272
* @global mixed   objet Pear DB de connexion à la base de données..
272
* @global mixed   objet Pear DB de connexion à la base de données..
273
* @param  int     l'identifiant du fils
273
* @param  int     l'identifiant du fils
274
* @param  mixed     une instance de la classse Pear DB.
274
* @param  mixed     une instance de la classse Pear DB.
275
* @return mixed   l'identifiant du père,ou false en cas d'erreur.
275
* @return mixed   l'identifiant du père,ou false en cas d'erreur.
276
*/
276
*/
277
function GEN_lireIdentifiantMenuPere($id_menu, $db = null)
277
function GEN_lireIdentifiantMenuPere($id_menu, $db = null)
278
{
278
{
279
    if (is_null($db)) {
279
    if (is_null($db)) {
280
        $db =& $GLOBALS['_GEN_commun']['pear_db'];
280
        $db =& $GLOBALS['_GEN_commun']['pear_db'];
281
    }
281
    }
282
 
282
 
283
    $requete =  'SELECT gmr_id_menu_02 '.
283
    $requete =  'SELECT gmr_id_menu_02 '.
284
                'FROM gen_menu_relation '.
284
                'FROM gen_menu_relation '.
285
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
285
                'WHERE gmr_id_menu_01 = '.$id_menu.' '.
286
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
286
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
287
 
287
 
288
    $resultat = $db->getOne($requete) ;
288
    $resultat = $db->getOne($requete) ;
289
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
289
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
290
 
290
 
291
    return $resultat;
291
    return $resultat;
292
}
292
}
293
 
293
 
294
/** Fonction GEN_lireInfoMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu
294
/** Fonction GEN_lireInfoMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu
295
*
295
*
296
* Retourne la ligne de la table gen_menu concernant le menu ayant pour identifiant la valeur
296
* Retourne la ligne de la table gen_menu concernant le menu ayant pour identifiant la valeur
297
* passée en paramètre.
297
* passée en paramètre.
298
* Ancien nom : getLevel()
298
* Ancien nom : getLevel()
299
*
299
*
300
* @param  mixed     une instance de la classse Pear DB.
300
* @param  mixed     une instance de la classse Pear DB.
301
* @param  int       l'identifiant d'un menu.
301
* @param  int       l'identifiant d'un menu.
302
* @param  string    le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
302
* @param  string    le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
303
* @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.
303
* @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.
304
*/
304
*/
305
function GEN_lireInfoMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
305
function GEN_lireInfoMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
306
{
306
{
307
 
307
 
308
    //----------------------------------------------------------------------------
308
    //----------------------------------------------------------------------------
309
    // Recherche des informations sur le menu
309
    // Recherche des informations sur le menu
310
    $requete =  'SELECT * '.
310
    $requete =  'SELECT * '.
311
                'FROM gen_menu '.
311
                'FROM gen_menu '.
312
                'WHERE gm_id_menu = '.$id_menu;
312
                'WHERE gm_id_menu = '.$id_menu;
313
 
313
 
314
    $resultat = $db->query($requete);
314
    $resultat = $db->query($requete);
315
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
315
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
316
 
316
 
317
    if ($resultat->numRows() != 1) {
317
    if ($resultat->numRows() != 1) {
318
        return false;
318
        return false;
319
    }
319
    }
320
 
320
 
321
    //----------------------------------------------------------------------------
321
    //----------------------------------------------------------------------------
322
    // Récupération des infos
322
    // Récupération des infos
323
    $info_menu = $resultat->fetchRow($mode);
323
    $info_menu = $resultat->fetchRow($mode);
324
    $resultat->free();
324
    $resultat->free();
325
 
325
 
326
    return $info_menu;
326
    return $info_menu;
327
}
327
}
328
/** Fonction GEN_retournerMenuCodeNum() - Renvoie le code num d'un menu en fonction du code Alphanumérique
328
/** Fonction GEN_retournerMenuCodeNum() - Renvoie le code num d'un menu en fonction du code Alphanumérique
329
*
329
*
330
* Retourne le code numérique d'un menu en fonction du code alphanumérique.
330
* Retourne le code numérique d'un menu en fonction du code alphanumérique.
331
*
331
*
332
* @param  mixed  une instance de la classse Pear DB.
332
* @param  mixed  une instance de la classse Pear DB.
333
* @param  string le code alphanumérique d'un menu.
333
* @param  string le code alphanumérique d'un menu.
334
* @return mixed le code numérique du menu sinon false.
334
* @return mixed le code numérique du menu sinon false.
335
*/
335
*/
336
function GEN_retournerMenuCodeNum(&$db, $code_alphanum)
336
function GEN_retournerMenuCodeNum($db, $code_alphanum)
337
{
337
{
338
    //----------------------------------------------------------------------------
338
    //----------------------------------------------------------------------------
339
    // Recherche des informations sur le menu
339
    // Recherche des informations sur le menu
340
    $requete =  'SELECT gm_code_num '.
340
    $requete =  'SELECT gm_code_num '.
341
                'FROM gen_menu '.
341
                'FROM gen_menu '.
342
                'WHERE gm_code_alpha = "'.$code_alphanum.'"';
342
                'WHERE gm_code_alpha = "'.$code_alphanum.'"';
343
 
343
 
344
    $resultat = $db->query($requete);
344
    $resultat = $db->query($requete);
345
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
345
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
346
 
346
 
347
    if ($resultat->numRows() != 1) {
347
    if ($resultat->numRows() != 1) {
348
        return false;
348
        return false;
349
    }
349
    }
350
 
350
 
351
    //----------------------------------------------------------------------------
351
    //----------------------------------------------------------------------------
352
    // Récupération des infos
352
    // Récupération des infos
353
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
353
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
354
    $code_num = $info_menu->gm_code_num;
354
    $code_num = $info_menu->gm_code_num;
355
    $resultat->free();
355
    $resultat->free();
356
 
356
 
357
    return $code_num;
357
    return $code_num;
358
}
358
}
359
 
359
 
360
/** Fonction GEN_retournerMenuCodeAlpha() - Renvoie le code alphanumérique d'un menu en fonction du code numérique
360
/** Fonction GEN_retournerMenuCodeAlpha() - Renvoie le code alphanumérique d'un menu en fonction du code numérique
361
*
361
*
362
* Retourne le code alphanumérique d'un menu en fonction du code numérique.
362
* Retourne le code alphanumérique d'un menu en fonction du code numérique.
363
*
363
*
364
* @param  mixed  une instance de la classse Pear DB.
364
* @param  mixed  une instance de la classse Pear DB.
365
* @param  string le code numérique d'un menu.
365
* @param  string le code numérique d'un menu.
366
* @return mixed le code alphanumérique du menu sinon false.
366
* @return mixed le code alphanumérique du menu sinon false.
367
*/
367
*/
368
function GEN_retournerMenuCodeAlpha(&$db, $code_num)
368
function GEN_retournerMenuCodeAlpha($db, $code_num)
369
{
369
{
370
    //----------------------------------------------------------------------------
370
    //----------------------------------------------------------------------------
371
    // Recherche des informations sur le menu
371
    // Recherche des informations sur le menu
372
    $requete =  'SELECT gm_code_alpha '.
372
    $requete =  'SELECT gm_code_alpha '.
373
                'FROM gen_menu '.
373
                'FROM gen_menu '.
374
                'WHERE gm_code_num = '.$code_num;
374
                'WHERE gm_code_num = '.$code_num;
375
 
375
 
376
    $resultat = $db->query($requete);
376
    $resultat = $db->query($requete);
377
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
377
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
378
 
378
 
379
    if ($resultat->numRows() != 1) {
379
    if ($resultat->numRows() != 1) {
380
        return false;
380
        return false;
381
    }
381
    }
382
 
382
 
383
    //----------------------------------------------------------------------------
383
    //----------------------------------------------------------------------------
384
    // Récupération des infos
384
    // Récupération des infos
385
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
385
    $info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
386
    $code_alphanum = $info_menu->gm_code_alpha;
386
    $code_alphanum = $info_menu->gm_code_alpha;
387
    $resultat->free();
387
    $resultat->free();
388
 
388
 
389
    return $code_alphanum;
389
    return $code_alphanum;
390
}
390
}
391
 
391
 
392
/** Fonction GEN_lireContenuMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_contenu
392
/** Fonction GEN_lireContenuMenu() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_contenu
393
*
393
*
394
* Retourne la ligne de la table gen_menu_contenu concernant le menu ayant pour identifiant la valeur
394
* Retourne la ligne de la table gen_menu_contenu concernant le menu ayant pour identifiant la valeur
395
* passée en paramètre. Seul la dernière version du contenu du menu est retourné.
395
* passée en paramètre. Seul la dernière version du contenu du menu est retourné.
396
*
396
*
397
* @param  mixed     une instance de la classse Pear DB.
397
* @param  mixed     une instance de la classse Pear DB.
398
* @param  int       l'identifiant d'un menu.
398
* @param  int       l'identifiant d'un menu.
399
* @param  string    le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
399
* @param  string    le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
400
* @return  mixed    un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu_contenu, ou false en cas d'erreur.
400
* @return  mixed    un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu_contenu, ou false en cas d'erreur.
401
*/
401
*/
402
function GEN_lireContenuMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
402
function GEN_lireContenuMenu(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
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 * '.
409
    $requete =  'SELECT * '.
410
                'FROM gen_menu_contenu '.
410
                'FROM gen_menu_contenu '.
411
                'WHERE gmc_ce_menu = '.$id_menu.' '.
411
                'WHERE gmc_ce_menu = '.$id_menu.' '.
412
                'AND gmc_bool_dernier = 1';
412
                'AND gmc_bool_dernier = 1';
413
 
413
 
414
    $resultat = $db->query($requete);
414
    $resultat = $db->query($requete);
415
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
415
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
416
 
416
 
417
    if ($resultat->numRows() != 1) {
417
    if ($resultat->numRows() != 1) {
418
        return false;
418
        return false;
419
    }
419
    }
420
 
420
 
421
    //----------------------------------------------------------------------------
421
    //----------------------------------------------------------------------------
422
    // Récupération des infos
422
    // Récupération des infos
423
    $info_menu = $resultat->fetchRow($mode);
423
    $info_menu = $resultat->fetchRow($mode);
424
    $resultat->free();
424
    $resultat->free();
425
 
425
 
426
    return $info_menu;
426
    return $info_menu;
427
}
427
}
428
 
428
 
429
/** Fonction GEN_lireContenuMenuHistorique() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_contenu
429
/** Fonction GEN_lireContenuMenuHistorique() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_contenu
430
*
430
*
431
* Retourne la ligne de la table gen_menu_contenu concernant le menu ayant pour identifiant la valeur
431
* Retourne la ligne de la table gen_menu_contenu concernant le menu ayant pour identifiant la valeur
432
* passée en paramètre. Toutes les versions archivées du contenu du menu sont retournées.
432
* passée en paramètre. Toutes les versions archivées du contenu du menu sont retournées.
433
*
433
*
434
* @param  mixed     une instance de la classse Pear DB.
434
* @param  mixed     une instance de la classse Pear DB.
435
* @param  int       l'identifiant d'un menu.
435
* @param  int       l'identifiant d'un menu.
436
* @param  string    le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
436
* @param  string    le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
437
* @return  mixed    un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu_contenu, ou false en cas d'erreur.
437
* @return  mixed    un objet ou tableau résultat de Pear DB contenant une ligne de la table gen_menu_contenu, ou false en cas d'erreur.
438
*/
438
*/
439
function GEN_lireContenuMenuHistorique(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
439
function GEN_lireContenuMenuHistorique(&$db, $id_menu, $mode = DB_FETCHMODE_OBJECT)
440
{
440
{
441
    //----------------------------------------------------------------------------
441
    //----------------------------------------------------------------------------
442
    // Gestion des erreurs
442
    // Gestion des erreurs
443
 
443
 
444
    //----------------------------------------------------------------------------
444
    //----------------------------------------------------------------------------
445
    // Recherche des informations sur le menu
445
    // Recherche des informations sur le menu
446
    $requete =  'SELECT * '.
446
    $requete =  'SELECT * '.
447
                'FROM gen_menu_contenu '.
447
                'FROM gen_menu_contenu '.
448
                'WHERE gmc_ce_menu = '.$id_menu;
448
                'WHERE gmc_ce_menu = '.$id_menu;
449
 
449
 
450
    $resultat = $db->query($requete);
450
    $resultat = $db->query($requete);
451
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
451
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
452
 
452
 
453
    if ($resultat->numRows() < 1) {
453
    if ($resultat->numRows() < 1) {
454
        return false;
454
        return false;
455
    }
455
    }
456
	
456
	
457
	$resultat =& $db->query($requete);
457
	$resultat =& $db->query($requete);
458
    (PEAR::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
458
    (PEAR::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
459
	while ($menu_contenu = $resultat->fetchRow($mode)) {
459
	while ($menu_contenu = $resultat->fetchRow($mode)) {
460
		$aso_info[] = $menu_contenu;
460
		$aso_info[] = $menu_contenu;
461
	}
461
	}
462
    return $aso_info;
462
    return $aso_info;
463
}
463
}
464
 
464
 
465
/** Fonction GEN_retournerMenus() - Renvoie un tableau contenant les id de l'ensemble des menus
465
/** Fonction GEN_retournerMenus() - Renvoie un tableau contenant les id de l'ensemble des menus
466
*
466
*
467
* Retourne un tableau contenant les id de l'ensemble des menus des différents sites de Papyrus.
467
* Retourne un tableau contenant les id de l'ensemble des menus des différents sites de Papyrus.
468
*
468
*
469
* @param  mixed     une instance de la classse Pear DB.
469
* @param  mixed     une instance de la classse Pear DB.
470
* @return array    tableau contenant les id de chaque menu.
470
* @return array    tableau contenant les id de chaque menu.
471
*/
471
*/
472
function GEN_retournerMenus(&$db)
472
function GEN_retournerMenus(&$db)
473
{
473
{
474
    //----------------------------------------------------------------------------
474
    //----------------------------------------------------------------------------
475
    // Gestion des erreurs
475
    // Gestion des erreurs
476
 
476
 
477
    //----------------------------------------------------------------------------
477
    //----------------------------------------------------------------------------
478
    // Recherche des informations sur le menu
478
    // Recherche des informations sur le menu
479
    $requete =  'SELECT gm_id_menu '.
479
    $requete =  'SELECT gm_id_menu '.
480
                'FROM gen_menu ';
480
                'FROM gen_menu ';
481
 
481
 
482
    $resultat = $db->query($requete);
482
    $resultat = $db->query($requete);
483
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
483
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
484
 
484
 
485
    //----------------------------------------------------------------------------
485
    //----------------------------------------------------------------------------
486
    // Récupération des infos
486
    // Récupération des infos
487
    $tab_retour = array();
487
    $tab_retour = array();
488
    while ($info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
488
    while ($info_menu = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
489
        array_push($tab_retour, $info_menu->gm_id_menu);
489
        array_push($tab_retour, $info_menu->gm_id_menu);
490
    }
490
    }
491
    $resultat->free();
491
    $resultat->free();
492
 
492
 
493
    return $tab_retour;
493
    return $tab_retour;
494
}
494
}
495
 
495
 
496
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
496
/** Fonction GEN_lireInfoMenuRelation() - Renvoie un objet ou un tableau contenant une ligne de la table gen_menu_relation
497
*
497
*
498
* Par défaut recherche une relation de type père.
498
* Par défaut recherche une relation de type père.
499
* Ancien nom : getMenuRelation().
499
* Ancien nom : getMenuRelation().
500
*
500
*
501
* @param  mixed   Une instance de la classse PEAR_DB
501
* @param  mixed   Une instance de la classse PEAR_DB
502
* @param  int  l'identifiant d'un menu.
502
* @param  int  l'identifiant d'un menu.
503
* @param  int  l'identifiant d'une valeur de relation.
503
* @param  int  l'identifiant d'une valeur de relation.
504
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
504
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
505
* @return  mixed  un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
505
* @return  mixed  un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
506
*/
506
*/
507
function GEN_lireInfoMenuRelation(&$db, $menuid, $id_valeur = 1, $mode = DB_FETCHMODE_OBJECT)
507
function GEN_lireInfoMenuRelation(&$db, $menuid, $id_valeur = 1, $mode = DB_FETCHMODE_OBJECT)
508
{
508
{
509
    //----------------------------------------------------------------------------
509
    //----------------------------------------------------------------------------
510
    // Recherche des informations sur la relation de menu
510
    // Recherche des informations sur la relation de menu
511
    $requete =  'SELECT * '.
511
    $requete =  'SELECT * '.
512
                'FROM gen_menu_relation '.
512
                'FROM gen_menu_relation '.
513
                'WHERE gmr_id_menu_01 = '.$menuid.' '.
513
                'WHERE gmr_id_menu_01 = '.$menuid.' '.
514
                'AND gmr_id_valeur = '.$id_valeur;
514
                'AND gmr_id_valeur = '.$id_valeur;
515
 
515
 
516
    $result = $db->query($requete);
516
    $result = $db->query($requete);
517
    (DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
517
    (DB::isError($result)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $result->getMessage(), $requete)) : '';
518
 
518
 
519
    if ($result->numRows() != 1) {
519
    if ($result->numRows() != 1) {
520
        return false;
520
        return false;
521
    }
521
    }
522
 
522
 
523
    //----------------------------------------------------------------------------
523
    //----------------------------------------------------------------------------
524
    // Récupération des infos
524
    // Récupération des infos
525
    $info_menu_relation = $result->fetchRow($mode);
525
    $info_menu_relation = $result->fetchRow($mode);
526
    $result->free();
526
    $result->free();
527
 
527
 
528
    return $info_menu_relation;
528
    return $info_menu_relation;
529
}
529
}
530
 
530
 
531
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
531
/** Fonction GEN_verifierPresenceCodeMenu() - Vérifie l'existence d'un code de menu
532
*
532
*
533
* Permet de vérifier dans la base de données si le code fournie (alphanumérique ou numérique) a déjà
533
* Permet de vérifier dans la base de données si le code fournie (alphanumérique ou numérique) a déjà
534
* été attribué à un menu ou pas!
534
* été attribué à un menu ou pas!
535
*
535
*
536
* @param  mixed   Une instance de la classse PEAR_DB
536
* @param  mixed   Une instance de la classse PEAR_DB
537
* @param  string  le type du code (int ou string).
537
* @param  string  le type du code (int ou string).
538
* @param  integer l'identifiant du menu courant.
538
* @param  integer l'identifiant du menu courant.
539
* @param  mixed   le code numérique ou alphanumérique.
539
* @param  mixed   le code numérique ou alphanumérique.
540
* @return mixed   retourne l'identifiant du menu possédant le code sinon false.
540
* @return mixed   retourne l'identifiant du menu possédant le code sinon false.
541
*/
541
*/
542
function GEN_verifierPresenceCodeMenu(&$db, $type, $id_menu, $code)
542
function GEN_verifierPresenceCodeMenu(&$db, $type, $id_menu, $code)
543
{
543
{
544
    // Gestion des erreurs
544
    // Gestion des erreurs
545
    if ($code == '') {
545
    if ($code == '') {
546
        return true;
546
        return true;
547
    }
547
    }
548
 
548
 
549
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
549
    // Requete pour vérifier l'abscence du code numérique et alphanumérique de la table gen_menu
550
    $requete =  'SELECT gm_id_menu '.
550
    $requete =  'SELECT gm_id_menu '.
551
                'FROM gen_menu '.
551
                'FROM gen_menu '.
552
                'WHERE gm_id_menu <> '.$id_menu.' ';
552
                'WHERE gm_id_menu <> '.$id_menu.' ';
553
 
553
 
554
    // Complément de requête en fonction du type de code
554
    // Complément de requête en fonction du type de code
555
    if ($type == 'int') {
555
    if ($type == 'int') {
556
        $requete .= 'AND gm_code_num = '.$code;
556
        $requete .= 'AND gm_code_num = '.$code;
557
    } else {
557
    } else {
558
        $requete .= 'AND gm_code_alpha = "'.$code.'"';
558
        $requete .= 'AND gm_code_alpha = "'.$code.'"';
559
    }
559
    }
560
    $resultat = $db->query($requete);
560
    $resultat = $db->query($requete);
561
    if (DB::isError($resultat)) {
561
    if (DB::isError($resultat)) {
562
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
562
            die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
563
    }
563
    }
564
    $nombre_reponse = $resultat->numRows();
564
    $nombre_reponse = $resultat->numRows();
565
    if ($nombre_reponse >= 1) {
565
    if ($nombre_reponse >= 1) {
566
        return true;
566
        return true;
567
    } else {
567
    } else {
568
        return false;
568
        return false;
569
    }
569
    }
570
}
570
}
571
/** Fonction GEN_lireInfoMenuMotsCles() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
571
/** Fonction GEN_lireInfoMenuMotsCles() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
572
*
572
*
573
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés présents dans
573
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés présents dans
574
* la table gen_menu.
574
* la table gen_menu.
575
*
575
*
576
* @param  mixed   Une instance de la classse PEAR_DB
576
* @param  mixed   Une instance de la classse PEAR_DB
577
* @param  array  un tableau de mots clés.
577
* @param  array  un tableau de mots clés.
578
* @param  string  la condition séparant chaque rechercher de mots-clés (AND ou OR).
578
* @param  string  la condition séparant chaque rechercher de mots-clés (AND ou OR).
579
* @param  string  l'ordre d'affichage des Menus (ASC ou DESC).
579
* @param  string  l'ordre d'affichage des Menus (ASC ou DESC).
580
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
580
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
581
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
581
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
582
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
582
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
583
*/
583
*/
584
function GEN_lireInfoMenuMotsCles(&$db, $tab_mots, $condition = 'OR', $ordre = 'ASC', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
584
function GEN_lireInfoMenuMotsCles(&$db, $tab_mots, $condition = 'OR', $ordre = 'ASC', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
585
{
585
{
586
    //----------------------------------------------------------------------------
586
    //----------------------------------------------------------------------------
587
    // Recherche des informations sur les menus en fonctions des mots clés
587
    // Recherche des informations sur les menus en fonctions des mots clés
588
    $requete =  'SELECT DISTINCT * '.
588
    $requete =  'SELECT DISTINCT * '.
589
                'FROM gen_menu '.
589
                'FROM gen_menu '.
590
                'WHERE ';
590
                'WHERE ';
591
    for ($i = 0; $i < count($tab_mots); $i++) {
591
    for ($i = 0; $i < count($tab_mots); $i++) {
592
        if ($i == 0) {
592
        if ($i == 0) {
593
            $requete .= 'gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
593
            $requete .= 'gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
594
        } else {
594
        } else {
595
            $requete .= $condition.' gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
595
            $requete .= $condition.' gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
596
        }
596
        }
597
    }
597
    }
598
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
598
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
599
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
599
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
600
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
600
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
601
 
601
 
602
    return $aso_info;
602
    return $aso_info;
603
}
603
}
604
 
604
 
605
/** Fonction GEN_lireInfoMenuMeta() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
605
/** Fonction GEN_lireInfoMenuMeta() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
606
*
606
*
607
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés,
607
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des mots clés,
608
* catégories, id_menu,
608
* catégories, id_menu,
609
* la table gen_menu.
609
* la table gen_menu.
610
*
610
*
611
* @param  mixed   Une instance de la classse PEAR_DB
611
* @param  mixed   Une instance de la classse PEAR_DB
612
* @param  array  un tableau de mots clés.
612
* @param  array  un tableau de mots clés.
613
* @param  string  la condition séparant chaque rechercher de mots-clés (AND ou OR).
613
* @param  string  la condition séparant chaque rechercher de mots-clés (AND ou OR).
614
* @param  string  l'ordre d'affichage des Menus (ASC ou DESC).
614
* @param  string  l'ordre d'affichage des Menus (ASC ou DESC).
615
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
615
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
616
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
616
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
617
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
617
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
618
*/
618
*/
619
function GEN_lireInfoMenuMeta(&$db, $tab_mots, $tab_cat, $condition = 'OR', $condition2 = 'OR', $ordre = 'ASC', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
619
function GEN_lireInfoMenuMeta(&$db, $tab_mots, $tab_cat, $condition = 'OR', $condition2 = 'OR', $ordre = 'ASC', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
620
{
620
{
621
    //----------------------------------------------------------------------------
621
    //----------------------------------------------------------------------------
622
    // Recherche des informations sur les menus en fonctions des mots clés
622
    // Recherche des informations sur les menus en fonctions des mots clés
623
    $requete =  'SELECT DISTINCT * '.
623
    $requete =  'SELECT DISTINCT * '.
624
                'FROM gen_menu '.
624
                'FROM gen_menu '.
625
                'WHERE ';
625
                'WHERE ';
626
    for ($i = 0; $i < count($tab_mots); $i++) {
626
    for ($i = 0; $i < count($tab_mots); $i++) {
627
        if ($tab_mots[$i] != '') {
627
        if ($tab_mots[$i] != '') {
628
	        if ($i == 0) {
628
	        if ($i == 0) {
629
	            $requete .= 'gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
629
	            $requete .= 'gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
630
	        } else {
630
	        } else {
631
	            $requete .= $condition.' gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
631
	            $requete .= $condition.' gm_mots_cles LIKE "%'.$tab_mots[$i].'%" ';
632
	        }
632
	        }
633
        }
633
        }
634
    }
634
    }
635
    if (count($tab_mots) != 0 && $tab_cat[0] != '') {
635
    if (count($tab_mots) != 0 && $tab_cat[0] != '') {
636
    	$requete .= 'AND ' ;
636
    	$requete .= 'AND ' ;
637
    }
637
    }
638
    for ($i = 0; $i < count($tab_cat); $i++) {
638
    for ($i = 0; $i < count($tab_cat); $i++) {
639
        if ($tab_cat[$i] != '') {
639
        if ($tab_cat[$i] != '') {
640
	        if ($i == 0) {
640
	        if ($i == 0) {
641
	            $requete .= 'gm_categorie LIKE "%'.$tab_cat[$i].'%" ';
641
	            $requete .= 'gm_categorie LIKE "%'.$tab_cat[$i].'%" ';
642
	        } else {
642
	        } else {
643
	            $requete .= $condition2.' gm_categorie LIKE "%'.$tab_cat[$i].'%" ';
643
	            $requete .= $condition2.' gm_categorie LIKE "%'.$tab_cat[$i].'%" ';
644
	        }
644
	        }
645
        }
645
        }
646
    }
646
    }
647
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
647
    $requete .= 'ORDER BY gm_date_creation '.$ordre;
648
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
648
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
649
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
649
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
650
 
650
 
651
    return $aso_info;
651
    return $aso_info;
652
}
652
}
653
/** Fonction GEN_lireInfoMenuCategorie() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
653
/** Fonction GEN_lireInfoMenuCategorie() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
654
*
654
*
655
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
655
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
656
* la table gen_menu.
656
* la table gen_menu.
657
*
657
*
658
* @param  mixed   Une instance de la classse PEAR_DB
658
* @param  mixed   Une instance de la classse PEAR_DB
659
* @param  array  un tableau de catégorie(s).
659
* @param  array  un tableau de catégorie(s).
660
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
660
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
661
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
661
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
662
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
662
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
663
*/
663
*/
664
function GEN_lireInfoMenuCategorie(&$db, $tab_categories, $mode = DB_FETCHMODE_OBJECT, $groupe = false)
664
function GEN_lireInfoMenuCategorie(&$db, $tab_categories, $mode = DB_FETCHMODE_OBJECT, $groupe = false)
665
{
665
{
666
    //----------------------------------------------------------------------------
666
    //----------------------------------------------------------------------------
667
    // Recherche des informations sur les menus en fonctions des mots clés
667
    // Recherche des informations sur les menus en fonctions des mots clés
668
    $requete =  'SELECT DISTINCT * '.
668
    $requete =  'SELECT DISTINCT * '.
669
                'FROM gen_menu '.
669
                'FROM gen_menu '.
670
                'WHERE ';
670
                'WHERE ';
671
    for ($i = 0; $i < count($tab_categories); $i++) {
671
    for ($i = 0; $i < count($tab_categories); $i++) {
672
        if ($i == 0) {
672
        if ($i == 0) {
673
            $requete .= 'gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
673
            $requete .= 'gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
674
        } else {
674
        } else {
675
            $requete .= 'OR gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
675
            $requete .= 'OR gm_categorie LIKE "%'.$tab_categories[$i].'%" ';
676
        }
676
        }
677
    }
677
    }
678
    $requete .= 'ORDER BY gm_date_creation DESC';
678
    $requete .= 'ORDER BY gm_date_creation DESC';
679
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
679
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
680
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
680
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
681
 
681
 
682
    return $aso_info;
682
    return $aso_info;
683
}
683
}
684
/** Fonction GEN_lireInfoMenuContenuDate() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
684
/** Fonction GEN_lireInfoMenuContenuDate() - Renvoie un objet ou un tableau contenant des lignes de la table gen_menu
685
*
685
*
686
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
686
* Renvoie un objet ou un tableau contenant une ligne de la table gen_menu en fonction des catégories présentes dans
687
* la table gen_menu.
687
* la table gen_menu.
688
*
688
*
689
* @param  mixed   Une instance de la classse PEAR_DB
689
* @param  mixed   Une instance de la classse PEAR_DB
690
* @param  array  le type de modification.
690
* @param  array  le type de modification.
691
* @param  array  le code alphanumérique du site ou de plusieurs sites séparés par des virgules.
691
* @param  array  le code alphanumérique du site ou de plusieurs sites séparés par des virgules.
692
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
692
* @param  string  le mode dans Pear DB dans lequel on veut recevoir les infos du menu.
693
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
693
* @param  boolean  true pour grouper les résultats (voir Pear DB : getAssoc() ) sinon false.
694
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
694
* @return  mixed   un objet ou tableau résultat Pear DB, ou false en cas d'erreur.
695
*/
695
*/
696
function GEN_lireInfoMenuContenuDate(&$db, $type_modif = '', $site = '', $categorie='', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
696
function GEN_lireInfoMenuContenuDate(&$db, $type_modif = '', $site = '', $categorie='', $mode = DB_FETCHMODE_OBJECT, $groupe = false)
697
{
697
{
698
    $type_modif_sql = 'AND gmc_ce_type_modification IN (%s) ';
698
    $type_modif_sql = 'AND gmc_ce_type_modification IN (%s) ';
699
    if (!empty($type_modif)) {
699
    if (!empty($type_modif)) {
700
        $type_modif = sprintf($type_modif_sql, $type_modif);
700
        $type_modif = sprintf($type_modif_sql, $type_modif);
701
    } else {
701
    } else {
702
        $type_modif = sprintf($type_modif_sql, '1, 2');
702
        $type_modif = sprintf($type_modif_sql, '1, 2');
703
    }
703
    }
704
    $site_sql = 'AND gs_code_alpha IN (%s) ';
704
    $site_sql = 'AND gs_code_alpha IN (%s) ';
705
    if (!empty($site)) {
705
    if (!empty($site)) {
706
        $site = sprintf($site_sql, '"'.implode('", "', array_map('trim', explode(',', $site))).'"');
706
        $site = sprintf($site_sql, '"'.implode('", "', array_map('trim', explode(',', $site))).'"');
707
    } else {
707
    } else {
708
        $site = '';
708
        $site = '';
709
    }
709
    }
710
 
710
 
711
    if (!empty($categorie)) {
711
    if (!empty($categorie)) {
712
        $categorie = 'AND gm_categorie like "%'.$categorie.'%"' ;
712
        $categorie = 'AND gm_categorie like "%'.$categorie.'%"' ;
713
    } else {
713
    } else {
714
        $categorie = '';
714
        $categorie = '';
715
    }
715
    }
716
    // Recherche des informations sur les menus en fonctions des mots clés
716
    // Recherche des informations sur les menus en fonctions des mots clés
717
    $requete =  'SELECT DISTINCT gen_menu.*, gs_code_alpha, gmc_date_modification, gmc_resume_modification, gmc_ce_type_modification '.
717
    $requete =  'SELECT DISTINCT gen_menu.*, gs_code_alpha, gmc_date_modification, gmc_resume_modification, gmc_ce_type_modification '.
718
                'FROM gen_site, gen_menu, gen_menu_contenu '.
718
                'FROM gen_site, gen_menu, gen_menu_contenu '.
719
                'WHERE gmc_date_modification <= "'.date('Y-m-d H:i:s', time()).'" '.
719
                'WHERE gmc_date_modification <= "'.date('Y-m-d H:i:s', time()).'" '.
720
                'AND (gm_ce_site = gs_id_site OR gm_ce_site = 0) '.
720
                'AND (gm_ce_site = gs_id_site OR gm_ce_site = 0) '.
721
                'AND gm_id_menu = gmc_ce_menu '.
721
                'AND gm_id_menu = gmc_ce_menu '.
722
                'AND gmc_bool_dernier = 1 '.
722
                'AND gmc_bool_dernier = 1 '.
723
                $site.
723
                $site.
724
                $type_modif.
724
                $type_modif.
725
                $categorie.
725
                $categorie.
726
                'ORDER BY gmc_date_modification DESC';
726
                'ORDER BY gmc_date_modification DESC';
727
	
727
	
728
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
728
    $aso_info =& $db->getAssoc($requete, false, array(), $mode, $groupe);
729
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
729
    (PEAR::isError($aso_info)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $aso_info->getMessage(), $requete)) : '';
730
 
730
 
731
    return $aso_info;
731
    return $aso_info;
732
}
732
}
733
/** Fonction GEN_retournerTableauMenusSiteCodeAlpha() - Renvoie un tableau de tableau contenant des lignes de la table gen_menu
733
/** Fonction GEN_retournerTableauMenusSiteCodeAlpha() - Renvoie un tableau de tableau contenant des lignes de la table gen_menu
734
*
734
*
735
* Renvoie un tableau de tableau contenant les lignes de la table gen_menu pour un site donné. Les tableaux sont imbriquées
735
* Renvoie un tableau de tableau contenant les lignes de la table gen_menu pour un site donné. Les tableaux sont imbriquées
736
* pour reproduire l'arborescence des menus.
736
* pour reproduire l'arborescence des menus.
737
*
737
*
738
* @param  mixed  Une instance de la classse PEAR_DB
738
* @param  mixed  Une instance de la classse PEAR_DB
739
* @param  string le code alphanumérique du site.
739
* @param  string le code alphanumérique du site.
740
* @return  array   un tableau de tableau contenant des lignes de la table gen_menu.
740
* @return  array   un tableau de tableau contenant des lignes de la table gen_menu.
741
*/
741
*/
742
function GEN_retournerTableauMenusSiteCodeAlpha(&$db, $site, $id_pere = 0, $aso_site_menus = array())
742
function GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $id_pere = 0, $aso_site_menus = array())
743
{
743
{
744
	
744
	
745
	global $_GEN_commun;
745
	global $_GEN_commun;
746
 
746
 
747
    $id_langue = $_GEN_commun['i18n'];//identifiant de la langue choisie
747
    $id_langue = $_GEN_commun['i18n'];//identifiant de la langue choisie
748
    
748
    
749
    if ($id_langue != GEN_I18N_ID_DEFAUT) {
749
    if ($id_langue != GEN_I18N_ID_DEFAUT) {
750
    	$i18n_url=$id_langue;
750
    	$i18n_url=$id_langue;
751
    } 
751
    } 
752
    
752
    
753
    
753
    
754
	if (isset($id_langue) && ($id_langue!='')) {
754
	if (isset($id_langue) && ($id_langue!='')) {
755
		$langue_test=$id_langue;
755
		$langue_test=$id_langue;
756
	} else {
756
	} else {
757
		$langue_test=GEN_I18N_ID_DEFAUT;
757
		$langue_test=GEN_I18N_ID_DEFAUT;
758
	}
758
	}
759
    
759
    
760
 
760
 
761
    $requete =  'SELECT gen_menu.* '.
761
    $requete =  'SELECT gen_menu.* '.
762
                'FROM gen_site, gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
762
                'FROM gen_site, gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
763
                'WHERE GMR01.gmr_id_menu_02 = '.$id_pere.' '.
763
                'WHERE GMR01.gmr_id_menu_02 = '.$id_pere.' '.
764
                'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
764
                'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
765
                'AND gs_code_alpha = "'.$site.'" '.
765
                'AND gs_code_alpha = "'.$site.'" '.
766
                'AND gm_ce_site = gs_id_site '.
766
                'AND gm_ce_site = gs_id_site '.
767
                'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
767
                'AND GMR01.gmr_id_valeur = 1 '.// 1 = avoir "père"
768
                'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
768
                'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
769
                'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
769
                'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
770
                'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
770
                'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
771
                'ORDER BY GMR01.gmr_ordre ASC';
771
                'ORDER BY GMR01.gmr_ordre ASC';
772
    $resultat = $db->query($requete);
772
    $resultat = $db->query($requete);
773
    if (DB::isError($resultat)) {
773
    if (DB::isError($resultat)) {
774
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
774
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
775
    }
775
    }
776
 
776
 
777
    if ($resultat->numRows() > 0) {
777
    if ($resultat->numRows() > 0) {
778
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
778
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
779
        	
779
        	
780
       		$requete_restriction =    'SELECT gmr_id_menu_02 '.
780
       		$requete_restriction =    'SELECT gmr_id_menu_02 '.
781
	                                  'FROM  gen_menu_relation '.
781
	                                  'FROM  gen_menu_relation '.
782
	                                   'WHERE '.$ligne['gm_id_menu'].' = gmr_id_menu_01 ' .
782
	                                   'WHERE '.$ligne['gm_id_menu'].' = gmr_id_menu_01 ' .
783
	                                   'AND  gmr_id_valeur  = 106 ';// 106 restriction de menu
783
	                                   'AND  gmr_id_valeur  = 106 ';// 106 restriction de menu
784
			$resultat_restriction = $db->query($requete_restriction);
784
			$resultat_restriction = $db->query($requete_restriction);
785
			(DB::isError($resultat_restriction))             ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_restriction->getMessage(), $requete_restriction))
785
			(DB::isError($resultat_restriction))             ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_restriction->getMessage(), $requete_restriction))
786
				: '';
786
				: '';
787
					       
787
					       
788
		    if ($resultat_restriction->numRows()>0 && $langue_test!=$ligne['gm_ce_i18n']) {
788
		    if ($resultat_restriction->numRows()>0 && $langue_test!=$ligne['gm_ce_i18n']) {
789
		    	$select_menu=0;
789
		    	$select_menu=0;
790
		    }
790
		    }
791
		    else {
791
		    else {
792
		    	$select_menu=1;
792
		    	$select_menu=1;
793
		    }
793
		    }
794
        	
794
        	
795
//        	if ($select_menu) {
795
//        	if ($select_menu) {
796
	            $aso_site_menus[$ligne['gm_id_menu']] = $ligne;
796
	            $aso_site_menus[$ligne['gm_id_menu']] = $ligne;
797
    	        $aso_site_menus[$ligne['gm_id_menu']]['sous_menus'] = GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $ligne['gm_id_menu']);
797
    	        $aso_site_menus[$ligne['gm_id_menu']]['sous_menus'] = GEN_retournerTableauMenusSiteCodeAlpha($db, $site, $ligne['gm_id_menu']);
798
  //      	}
798
  //      	}
799
        }
799
        }
800
    }
800
    }
801
    return $aso_site_menus;
801
    return $aso_site_menus;
802
}
802
}
803
 
803
 
804
 
804
 
805
// Code menu --> Identifiant
805
// Code menu --> Identifiant
806
// Identifiant menu --> Identifiant version originale
806
// Identifiant menu --> Identifiant version originale
807
// Identifiant menu --> Identifiant version par défaut
807
// Identifiant menu --> Identifiant version par défaut
808
// Identifiant menu --> Contenu 
808
// Identifiant menu --> Contenu 
809
// Identifiant menu --> Contenu version originale
809
// Identifiant menu --> Contenu version originale
810
// Identifiant menu --> Contenu version par défaut
810
// Identifiant menu --> Contenu version par défaut
811
 
811
 
812
// Identifiant menu --> Identifiant version originale
812
// Identifiant menu --> Identifiant version originale
813
 
813
 
814
/** Fonction GEN_rechercheMenuIdentifiant() - Recherche code menu à partir de l'identifiant d'un site
814
/** Fonction GEN_rechercheMenuIdentifiant() - Recherche code menu à partir de l'identifiant d'un site
815
*
815
*
816
*
816
*
817
* @param  object objet Pear de connection à la base de données.
817
* @param  object objet Pear de connection à la base de données.
818
*/
818
*/
819
 
819
 
820
function GEN_rechercheMenuIdentifiant($db, $id_menu)
820
function GEN_rechercheMenuIdentifiant($db, $id_menu)
821
{
821
{
822
		$requete =  'SELECT  gm_code_num   '.
822
		$requete =  'SELECT  gm_code_num   '.
823
        	        'FROM gen_menu  '.
823
        	        'FROM gen_menu  '.
824
            	    'WHERE gm_id_menu =  '.$id_menu.' ';
824
            	    'WHERE gm_id_menu =  '.$id_menu.' ';
825
		$resultat = $db->query($requete);
825
		$resultat = $db->query($requete);
826
		
826
		
827
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
827
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
828
 
828
 
829
 
829
 
830
		$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
830
		$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
831
		
831
		
832
		return $ligne->gm_code_num;
832
		return $ligne->gm_code_num;
833
		
833
		
834
}
834
}
835
 
835
 
836
/** Fonction GEN_retournerIdMenuParCodeNum()
836
/** Fonction GEN_retournerIdMenuParCodeNum()
837
* 
837
* 
838
* Recherche les info d'une menu à partir du code numérique du menu d'un site et en fonction de la langue.
838
* Recherche les info d'une menu à partir du code numérique du menu d'un site et en fonction de la langue.
839
*
839
*
840
* @param  object objet Pear de connection à la base de données.
840
* @param  object objet Pear de connection à la base de données.
841
* @param  integer code numérique du menu
841
* @param  integer code numérique du menu
842
* @return identifiant menu
842
* @return identifiant menu
843
*/
843
*/
844
function GEN_retournerIdMenuParCodeNum($db, $code_menu)
844
function GEN_retournerIdMenuParCodeNum($db, $code_menu)
845
{
845
{
846
	// Si identifiant existe pour la langue choisie : retour identifiant
846
	// Si identifiant existe pour la langue choisie : retour identifiant
847
	// Si identifiant n'existe pas : retour identifiant de la langue par defaut :
847
	// Si identifiant n'existe pas : retour identifiant de la langue par defaut :
848
	// Recherche de l'identifiant par defaut 
848
	// Recherche de l'identifiant par defaut 
849
	// Recherche de l'identifiant de la langue du site
849
	// Recherche de l'identifiant de la langue du site
850
	// Recherche de l'identifiant par defaut 
850
	// Recherche de l'identifiant par defaut 
851
	$id_langue = $GLOBALS['_GEN_commun']['i18n'];
851
	$id_langue = $GLOBALS['_GEN_commun']['i18n'];
852
	if (isset($id_langue) && ($id_langue!='')) {
852
	if (isset($id_langue) && ($id_langue!='')) {
853
		$langue_test=$id_langue;
853
		$langue_test=$id_langue;
854
	} else {
854
	} else {
855
		$langue_test=GEN_I18N_ID_DEFAUT;
855
		$langue_test=GEN_I18N_ID_DEFAUT;
856
	}
856
	}
857
 
857
 
858
	$requete =  'SELECT gm_id_menu, gm_code_num   '.
858
	$requete =  'SELECT gm_id_menu, gm_code_num   '.
859
				'FROM gen_menu  '.
859
				'FROM gen_menu  '.
860
				'WHERE gm_code_num =  '.$code_menu.' '.
860
				'WHERE gm_code_num =  '.$code_menu.' '.
861
				'AND gm_ce_i18n = "'.$langue_test.'" ';
861
				'AND gm_ce_i18n = "'.$langue_test.'" ';
862
	$resultat = $db->query($requete);
862
	$resultat = $db->query($requete);
863
 
863
 
864
	(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
864
	(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
865
	
865
	
866
	if ( $resultat->numRows() > 0 ) {
866
	if ( $resultat->numRows() > 0 ) {
867
		$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
867
		$ligne = $resultat->fetchrow(DB_FETCHMODE_OBJECT);
868
		return $ligne->gm_id_menu;
868
		return $ligne->gm_id_menu;
869
	} else {
869
	} else {
870
		// Recherche defaut :
870
		// Recherche defaut :
871
		$requete =  'SELECT gm_id_menu, gm_code_num   '.
871
		$requete =  'SELECT gm_id_menu, gm_code_num   '.
872
           'FROM gen_menu  '.
872
           'FROM gen_menu  '.
873
           'WHERE gm_code_num =  '.$code_menu.' ';
873
           'WHERE gm_code_num =  '.$code_menu.' ';
874
           'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" ';
874
           'AND gm_ce_i18n = "'.GEN_I18N_ID_DEFAUT.'" ';
875
 
875
 
876
		$resultat = $db->query($requete);
876
		$resultat = $db->query($requete);
877
 
877
 
878
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
878
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
879
		
879
		
880
		if ( $resultat->numRows() > 0 ) {
880
		if ( $resultat->numRows() > 0 ) {
881
			$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
881
			$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
882
			if ($langue_test!=GEN_I18N_ID_DEFAUT) {
882
			if ($langue_test!=GEN_I18N_ID_DEFAUT) {
883
				return GEN_rechercheMenuIdentifiantVersionParDefaut($db,$ligne->gm_id_menu);
883
				return GEN_rechercheMenuIdentifiantVersionParDefaut($db,$ligne->gm_id_menu);
884
				
884
				
885
			} else {
885
			} else {
886
				return $ligne->gm_id_menu;
886
				return $ligne->gm_id_menu;
887
			}
887
			}
888
		}
888
		}
889
	}
889
	}
890
}
890
}
891
 
891
 
892
/** Fonction GEN_rechercheMenuCode()
892
/** Fonction GEN_rechercheMenuCode()
893
* 
893
* 
894
* Allias de GEN_retournerIdMenuAvecCodeNum().
894
* Allias de GEN_retournerIdMenuAvecCodeNum().
895
*
895
*
896
* @param  object objet Pear de connection à la base de données.
896
* @param  object objet Pear de connection à la base de données.
897
* @param  integer code numérique du menu
897
* @param  integer code numérique du menu
898
* @return identifiant menu
898
* @return identifiant menu
899
*/
899
*/
900
function GEN_rechercheMenuCode($db, $code_menu) {
900
function GEN_rechercheMenuCode($db, $code_menu) {
901
	return GEN_retournerIdMenuParCodeNum($db, $code_menu);
901
	return GEN_retournerIdMenuParCodeNum($db, $code_menu);
902
}
902
}
903
 
903
 
904
/* Fonction GEN_rechercheContenu
904
/* Fonction GEN_rechercheContenu
905
*
905
*
906
*/
906
*/
907
function GEN_rechercheContenu($db, $id_menu, $type_fetch = DB_FETCHMODE_OBJECT) {
907
function GEN_rechercheContenu($db, $id_menu, $type_fetch = DB_FETCHMODE_OBJECT) {
908
 	
908
 	
909
	$requete  =	'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
909
	$requete  =	'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
910
				'FROM gen_menu_contenu  '.
910
				'FROM gen_menu_contenu  '.
911
				'WHERE gmc_ce_menu = '.$id_menu.' '.
911
				'WHERE gmc_ce_menu = '.$id_menu.' '.
912
				'AND gmc_ce_type_contenu in (1,2) '.
912
				'AND gmc_ce_type_contenu in (1,2) '.
913
				'AND gmc_bool_dernier = 1';
913
				'AND gmc_bool_dernier = 1';
914
	
914
	
915
	$resultat = $db->query($requete);
915
	$resultat = $db->query($requete);
916
	(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
916
	(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
917
 
917
 
918
	// Rien trouvé ? : Pas encore de contenu 
918
	// Rien trouvé ? : Pas encore de contenu 
919
	// Recherche identifiant par défaut 
919
	// Recherche identifiant par défaut 
920
	if ( $resultat->numRows() == 0 ) {
920
	if ( $resultat->numRows() == 0 ) {
921
		$id_menu_defaut = GEN_rechercheMenuIdentifiantVersionParDefaut($db,$id_menu);
921
		$id_menu_defaut = GEN_rechercheMenuIdentifiantVersionParDefaut($db,$id_menu);
922
		$requete  =	'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
922
		$requete  =	'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
923
					'FROM gen_menu_contenu  '.
923
					'FROM gen_menu_contenu  '.
924
					'WHERE gmc_ce_menu = '.$id_menu_defaut.' '.
924
					'WHERE gmc_ce_menu = '.$id_menu_defaut.' '.
925
					'AND gmc_ce_type_contenu in (1,2) '.
925
					'AND gmc_ce_type_contenu in (1,2) '.
926
					'AND gmc_bool_dernier = 1';
926
					'AND gmc_bool_dernier = 1';
927
		
927
		
928
		$resultat = $db->query($requete);
928
		$resultat = $db->query($requete);
929
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
929
		(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
930
 
930
 
931
		if ( $resultat->numRows() == 0 ) {
931
		if ( $resultat->numRows() == 0 ) {
932
			// Toujours rien ? 
932
			// Toujours rien ? 
933
			// Tentative recherche dans la langue du site par defaut 
933
			// Tentative recherche dans la langue du site par defaut 
934
			$id_menu_origine = GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu);
934
			$id_menu_origine = GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu);
935
		
935
		
936
			$requete  =  'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
936
			$requete  =  'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu '.
937
	               			'FROM gen_menu_contenu  '.
937
	               			'FROM gen_menu_contenu  '.
938
			                'WHERE gmc_ce_menu = '.$id_menu_origine.' '.
938
			                'WHERE gmc_ce_menu = '.$id_menu_origine.' '.
939
	    		            'AND gmc_ce_type_contenu in (1,2) '.
939
	    		            'AND gmc_ce_type_contenu in (1,2) '.
940
	            		    'AND gmc_bool_dernier = 1';
940
	            		    'AND gmc_bool_dernier = 1';
941
		
941
		
942
			$resultat = $db->query($requete);
942
			$resultat = $db->query($requete);
943
			(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
943
			(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
944
		
944
		
945
		}
945
		}
946
	}
946
	}
947
	
947
	
948
	$ligne_contenu = $resultat->fetchRow($type_fetch);
948
	$ligne_contenu = $resultat->fetchRow($type_fetch);
949
	return $ligne_contenu;
949
	return $ligne_contenu;
950
}
950
}
951
 
951
 
952
function GEN_rechercheContenuIdentifiant($db, $id_contenu, $mode = DB_FETCHMODE_OBJECT) {
952
function GEN_rechercheContenuIdentifiant($db, $id_contenu, $mode = DB_FETCHMODE_OBJECT) {
953
 	
953
 	
954
	$requete  =	'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu, gmc_date_modification '.
954
	$requete  =	'SELECT gmc_contenu , gmc_ce_type_contenu, gmc_ce_menu, gmc_date_modification '.
955
				'FROM gen_menu_contenu  '.
955
				'FROM gen_menu_contenu  '.
956
				'WHERE gmc_id_contenu = '.$id_contenu.' ';
956
				'WHERE gmc_id_contenu = '.$id_contenu.' ';
957
	
957
	
958
	$resultat = $db->query($requete);
958
	$resultat = $db->query($requete);
959
	(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
959
	(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
960
 
960
 
961
	if ($resultat->numRows() != 1) {
961
	if ($resultat->numRows() != 1) {
962
		return false;
962
		return false;
963
	}
963
	}
964
 
964
 
965
	$ligne_contenu = $resultat->fetchRow($mode);
965
	$ligne_contenu = $resultat->fetchRow($mode);
966
	return $ligne_contenu;
966
	return $ligne_contenu;
967
}
967
}
968
 
968
 
969
/** Fonction GEN_rechercheMenuIdentifiantVersionOriginale() - Recherche identifiant de la version orginale d'un menu
969
/** Fonction GEN_rechercheMenuIdentifiantVersionOriginale() - Recherche identifiant de la version orginale d'un menu
970
*
970
*
971
*
971
*
972
* @param  object objet Pear de connection à la base de données.
972
* @param  object objet Pear de connection à la base de données.
973
* @param  identifiant menu
973
* @param  identifiant menu
974
* @return identifiant menu
974
* @return identifiant menu
975
*/
975
*/
976
function GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu) {
976
function GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu) {
977
	
977
	
978
	$requete  = 'SELECT gmr_id_menu_01 '.
978
	$requete  = 'SELECT gmr_id_menu_01 '.
979
				'FROM gen_menu_relation '.
979
				'FROM gen_menu_relation '.
980
				'WHERE gmr_id_menu_02  = ' . $id_menu .' '.
980
				'WHERE gmr_id_menu_02  = ' . $id_menu .' '.
981
				'AND gmr_id_valeur = 2  '; // 2 = "avoir traduction"
981
				'AND gmr_id_valeur = 2  '; // 2 = "avoir traduction"
982
				
982
				
983
	
983
	
984
	$resultat = $db->query($requete) ;
984
	$resultat = $db->query($requete) ;
985
	  	
985
	  	
986
	if (DB::isError($resultat)) {
986
	if (DB::isError($resultat)) {
987
	    die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
987
	    die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
988
	}
988
	}
989
	
989
	
990
		
990
		
991
	if ($resultat->numRows() > 0) {
991
	if ($resultat->numRows() > 0) {
992
		$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
992
		$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
993
		return $ligne->gmr_id_menu_01;
993
		return $ligne->gmr_id_menu_01;
994
	}
994
	}
995
	else {
995
	else {
996
		return $id_menu;
996
		return $id_menu;
997
	}
997
	}
998
	
998
	
999
}
999
}
1000
		
1000
		
1001
 
1001
 
1002
/** Fonction GEN_rechercheMenuIdentifiantVersionParDefaut() - Recherche identifiant par defaut d'un menu
1002
/** Fonction GEN_rechercheMenuIdentifiantVersionParDefaut() - Recherche identifiant par defaut d'un menu
1003
*
1003
*
1004
*
1004
*
1005
* @param  object objet Pear de connection à la base de données.
1005
* @param  object objet Pear de connection à la base de données.
1006
* @param  identifiant menu
1006
* @param  identifiant menu
1007
* @return identifiant menu
1007
* @return identifiant menu
1008
*/
1008
*/
1009
function GEN_rechercheMenuIdentifiantVersionParDefaut($db, $id_menu) {
1009
function GEN_rechercheMenuIdentifiantVersionParDefaut($db, $id_menu) {
1010
 
1010
 
1011
	$identifiantVersionOrginale=GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu);
1011
	$identifiantVersionOrginale=GEN_rechercheMenuIdentifiantVersionOriginale($db, $id_menu);
1012
 
1012
 
1013
	$requete  = 'SELECT gmr_id_menu_02 '.
1013
	$requete  = 'SELECT gmr_id_menu_02 '.
1014
				'FROM gen_menu_relation '.
1014
				'FROM gen_menu_relation '.
1015
				'WHERE gmr_id_menu_01  = ' . $identifiantVersionOrginale .' '.
1015
				'WHERE gmr_id_menu_01  = ' . $identifiantVersionOrginale .' '.
1016
				'AND gmr_id_valeur = 105  '; // 105
1016
				'AND gmr_id_valeur = 105  '; // 105
1017
	
1017
	
1018
	$resultat = $db->query($requete) ;
1018
	$resultat = $db->query($requete) ;
1019
	  	
1019
	  	
1020
	if (DB::isError($resultat)) {
1020
	if (DB::isError($resultat)) {
1021
	    die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1021
	    die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
1022
	}
1022
	}
1023
		
1023
		
1024
	if ($resultat->numRows() > 0) {
1024
	if ($resultat->numRows() > 0) {
1025
		$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1025
		$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
1026
		return $ligne->gmr_id_menu_02;
1026
		return $ligne->gmr_id_menu_02;
1027
	}
1027
	}
1028
	else {
1028
	else {
1029
		return $identifiantVersionOrginale;
1029
		return $identifiantVersionOrginale;
1030
	}
1030
	}
1031
}
1031
}
1032
 
1032
 
1033
 
1033
 
1034
 
1034
 
1035
 
1035
 
1036
/* +--Fin du code ---------------------------------------------------------------------------------------+
1036
/* +--Fin du code ---------------------------------------------------------------------------------------+
1037
* $Log: not supported by cvs2svn $
1037
* $Log: not supported by cvs2svn $
1038
* Revision 1.33  2007-11-22 17:24:09  jp_milcent
1038
* Revision 1.33  2007-11-22 17:24:09  jp_milcent
1039
* Fusion avec la livraison AHA : 22 novembre 2007
1039
* Fusion avec la livraison AHA : 22 novembre 2007
1040
*
1040
*
1041
* Revision 1.32  2007-11-19 09:54:49  ddelon
1041
* Revision 1.32  2007-11-19 09:54:49  ddelon
1042
* Gestion des menus reservés à une langue
1042
* Gestion des menus reservés à une langue
1043
*
1043
*
1044
* Revision 1.31  2007-06-26 15:39:46  jp_milcent
1044
* Revision 1.31  2007-06-26 15:39:46  jp_milcent
1045
* Ajout de fonctions utiles pour la gestion du contenu des menus.
1045
* Ajout de fonctions utiles pour la gestion du contenu des menus.
1046
*
1046
*
1047
* Revision 1.30  2006-12-12 17:19:58  jp_milcent
1047
* Revision 1.30  2006-12-12 17:19:58  jp_milcent
1048
* Ajout de test supplémentaire pour éviter les erreurs.
1048
* Ajout de test supplémentaire pour éviter les erreurs.
1049
*
1049
*
1050
* Revision 1.29  2006/12/12 13:32:58  jp_milcent
1050
* Revision 1.29  2006/12/12 13:32:58  jp_milcent
1051
* Mise en forme.
1051
* Mise en forme.
1052
*
1052
*
1053
* Revision 1.28  2006/12/08 20:13:57  jp_milcent
1053
* Revision 1.28  2006/12/08 20:13:57  jp_milcent
1054
* Mise en allias de GEN_rechercherMenuCode(), remplacée par GEN_retournerIdMenuParCodeNum().
1054
* Mise en allias de GEN_rechercherMenuCode(), remplacée par GEN_retournerIdMenuParCodeNum().
1055
*
1055
*
1056
* Revision 1.27  2006/10/16 15:50:10  ddelon
1056
* Revision 1.27  2006/10/16 15:50:10  ddelon
1057
* Refactorisation code mulitlinguisme et gestion menu invisibles
1057
* Refactorisation code mulitlinguisme et gestion menu invisibles
1058
*
1058
*
1059
* Revision 1.26  2006/03/02 10:49:49  ddelon
1059
* Revision 1.26  2006/03/02 10:49:49  ddelon
1060
* Fusion branche multilinguisme dans branche principale
1060
* Fusion branche multilinguisme dans branche principale
1061
*
1061
*
1062
* Revision 1.25.2.1  2005/12/20 14:40:24  ddelon
1062
* Revision 1.25.2.1  2005/12/20 14:40:24  ddelon
1063
* Fusion Head vers Livraison
1063
* Fusion Head vers Livraison
1064
*
1064
*
1065
* Revision 1.25  2005/11/08 17:43:46  ddelon
1065
* Revision 1.25  2005/11/08 17:43:46  ddelon
1066
* Bug Nouveaute ne s'affichant pas pour les menu communs
1066
* Bug Nouveaute ne s'affichant pas pour les menu communs
1067
*
1067
*
1068
* Revision 1.24  2005/09/20 17:01:22  ddelon
1068
* Revision 1.24  2005/09/20 17:01:22  ddelon
1069
* php5 et bugs divers
1069
* php5 et bugs divers
1070
*
1070
*
1071
* Revision 1.23  2005/08/29 09:05:12  ddelon
1071
* Revision 1.23  2005/08/29 09:05:12  ddelon
1072
* Suppression message debug
1072
* Suppression message debug
1073
*
1073
*
1074
* Revision 1.22  2005/07/08 15:16:37  alexandre_tb
1074
* Revision 1.22  2005/07/08 15:16:37  alexandre_tb
1075
* ajout de la fonction GEN_lireInfoMenuMeta() qui permet de sélectionner des menus en fonction de leur mot clé et leur catégorie
1075
* ajout de la fonction GEN_lireInfoMenuMeta() qui permet de sélectionner des menus en fonction de leur mot clé et leur catégorie
1076
*
1076
*
1077
* Revision 1.21  2005/06/08 19:11:43  jpm
1077
* Revision 1.21  2005/06/08 19:11:43  jpm
1078
* Ajout de ordre et condition pour la fonction de lecture des infos sur les menus.
1078
* Ajout de ordre et condition pour la fonction de lecture des infos sur les menus.
1079
*
1079
*
1080
* Revision 1.20  2005/05/26 08:00:51  jpm
1080
* Revision 1.20  2005/05/26 08:00:51  jpm
1081
* Correction dans la fonction GEN_retournerTableauMenusSiteCodeAlpha().
1081
* Correction dans la fonction GEN_retournerTableauMenusSiteCodeAlpha().
1082
*
1082
*
1083
* Revision 1.19  2005/05/25 13:46:58  jpm
1083
* Revision 1.19  2005/05/25 13:46:58  jpm
1084
* Changement du sql de la fonction GEN_lireContenuMenu().
1084
* Changement du sql de la fonction GEN_lireContenuMenu().
1085
*
1085
*
1086
* Revision 1.18  2005/04/19 17:21:19  jpm
1086
* Revision 1.18  2005/04/19 17:21:19  jpm
1087
* Utilisation des références d'objets.
1087
* Utilisation des références d'objets.
1088
*
1088
*
1089
* Revision 1.17  2005/04/18 16:41:25  jpm
1089
* Revision 1.17  2005/04/18 16:41:25  jpm
1090
* Ajout d'une fonction pour récupérer tous les menus d'un site avec son code alphanumérique.
1090
* Ajout d'une fonction pour récupérer tous les menus d'un site avec son code alphanumérique.
1091
*
1091
*
1092
* Revision 1.16  2005/04/14 17:40:31  jpm
1092
* Revision 1.16  2005/04/14 17:40:31  jpm
1093
* Modification fonction pour les actions.
1093
* Modification fonction pour les actions.
1094
*
1094
*
1095
* Revision 1.15  2005/04/14 13:56:53  jpm
1095
* Revision 1.15  2005/04/14 13:56:53  jpm
1096
* Modification d'une ancienne fonction.
1096
* Modification d'une ancienne fonction.
1097
*
1097
*
1098
* Revision 1.14  2005/04/12 16:13:50  jpm
1098
* Revision 1.14  2005/04/12 16:13:50  jpm
1099
* Ajout de fonction renvoyant des infos sur un menu en fonction des mots clés, catégories ou date de modification du contenu.
1099
* Ajout de fonction renvoyant des infos sur un menu en fonction des mots clés, catégories ou date de modification du contenu.
1100
*
1100
*
1101
* Revision 1.13  2005/03/30 08:53:59  jpm
1101
* Revision 1.13  2005/03/30 08:53:59  jpm
1102
* Ajout de fonctions permettant de récupérer les codes alphanumériques ou numériques en fonction de l'un ou de l'autre.
1102
* Ajout de fonctions permettant de récupérer les codes alphanumériques ou numériques en fonction de l'un ou de l'autre.
1103
*
1103
*
1104
* Revision 1.12  2005/02/28 11:12:03  jpm
1104
* Revision 1.12  2005/02/28 11:12:03  jpm
1105
* Modification des auteurs.
1105
* Modification des auteurs.
1106
*
1106
*
1107
* Revision 1.11  2004/12/06 19:49:35  jpm
1107
* Revision 1.11  2004/12/06 19:49:35  jpm
1108
* Ajout d'une fonction permettant de récupérer le contenu d'un menu.
1108
* Ajout d'une fonction permettant de récupérer le contenu d'un menu.
1109
*
1109
*
1110
* Revision 1.10  2004/12/06 17:53:55  jpm
1110
* Revision 1.10  2004/12/06 17:53:55  jpm
1111
* Ajout fonction GEN_retournerMenus().
1111
* Ajout fonction GEN_retournerMenus().
1112
*
1112
*
1113
* Revision 1.9  2004/11/29 18:34:42  jpm
1113
* Revision 1.9  2004/11/29 18:34:42  jpm
1114
* Correction bogue.
1114
* Correction bogue.
1115
*
1115
*
1116
* Revision 1.8  2004/11/10 17:25:51  jpm
1116
* Revision 1.8  2004/11/10 17:25:51  jpm
1117
* Modification de fonction suite à des bogues.
1117
* Modification de fonction suite à des bogues.
1118
*
1118
*
1119
* Revision 1.7  2004/11/09 17:55:26  jpm
1119
* Revision 1.7  2004/11/09 17:55:26  jpm
1120
* Suppresion de fonctions inutiles et mise en conformité.
1120
* Suppresion de fonctions inutiles et mise en conformité.
1121
*
1121
*
1122
* Revision 1.6  2004/11/08 17:39:32  jpm
1122
* Revision 1.6  2004/11/08 17:39:32  jpm
1123
* Suppression d'une fonction inutile.
1123
* Suppression d'une fonction inutile.
1124
* GEN_etreFils() n'est pas utile. On peut utiliser GEN_etreAncetre() à la place.
1124
* GEN_etreFils() n'est pas utile. On peut utiliser GEN_etreAncetre() à la place.
1125
*
1125
*
1126
* Revision 1.5  2004/11/04 12:51:45  jpm
1126
* Revision 1.5  2004/11/04 12:51:45  jpm
1127
* Suppression de message de débogage.
1127
* Suppression de message de débogage.
1128
*
1128
*
1129
* Revision 1.4  2004/11/04 12:23:50  jpm
1129
* Revision 1.4  2004/11/04 12:23:50  jpm
1130
* Nouvelles fonctions sur les menus frères.
1130
* Nouvelles fonctions sur les menus frères.
1131
*
1131
*
1132
* Revision 1.3  2004/10/25 14:16:21  jpm
1132
* Revision 1.3  2004/10/25 14:16:21  jpm
1133
* Suppression de code commenté.
1133
* Suppression de code commenté.
1134
*
1134
*
1135
* Revision 1.2  2004/10/21 18:15:21  jpm
1135
* Revision 1.2  2004/10/21 18:15:21  jpm
1136
* Ajout de gestion d'erreur aux fonctions.
1136
* Ajout de gestion d'erreur aux fonctions.
1137
*
1137
*
1138
* Revision 1.1  2004/06/15 15:11:37  jpm
1138
* Revision 1.1  2004/06/15 15:11:37  jpm
1139
* Changement de nom et d'arborescence de Genesia en Papyrus.
1139
* Changement de nom et d'arborescence de Genesia en Papyrus.
1140
*
1140
*
1141
* Revision 1.43  2004/05/05 06:13:27  jpm
1141
* Revision 1.43  2004/05/05 06:13:27  jpm
1142
* Extraction de la fonction générant le "vous êtes ici", transformée en applette.
1142
* Extraction de la fonction générant le "vous êtes ici", transformée en applette.
1143
*
1143
*
1144
* Revision 1.42  2004/05/04 16:24:06  jpm
1144
* Revision 1.42  2004/05/04 16:24:06  jpm
1145
* Amélioration de la fonction générant le "vous êtes ici".
1145
* Amélioration de la fonction générant le "vous êtes ici".
1146
*
1146
*
1147
* Revision 1.41  2004/05/04 16:17:31  jpm
1147
* Revision 1.41  2004/05/04 16:17:31  jpm
1148
* Ajout de la fonction générant le "vous êtes ici".
1148
* Ajout de la fonction générant le "vous êtes ici".
1149
*
1149
*
1150
* Revision 1.40  2004/05/03 11:18:17  jpm
1150
* Revision 1.40  2004/05/03 11:18:17  jpm
1151
* Normalisation de deux fonctions issues du fichier fontctions.php.
1151
* Normalisation de deux fonctions issues du fichier fontctions.php.
1152
*
1152
*
1153
* Revision 1.39  2004/05/01 16:17:11  jpm
1153
* Revision 1.39  2004/05/01 16:17:11  jpm
1154
* Suppression des fonctions liées à la création des listes de menu. Elles ont été transformées en applette.
1154
* Suppression des fonctions liées à la création des listes de menu. Elles ont été transformées en applette.
1155
*
1155
*
1156
* Revision 1.38  2004/05/01 11:43:16  jpm
1156
* Revision 1.38  2004/05/01 11:43:16  jpm
1157
* Suppression des fonction GEN_afficherMenuCommun() et GEN_afficherSelecteurSites() transformées en applette.
1157
* Suppression des fonction GEN_afficherMenuCommun() et GEN_afficherSelecteurSites() transformées en applette.
1158
*
1158
*
1159
* Revision 1.37  2004/04/30 16:18:41  jpm
1159
* Revision 1.37  2004/04/30 16:18:41  jpm
1160
* Correction d'un bogue dans les fonctions de gestion des scripts.
1160
* Correction d'un bogue dans les fonctions de gestion des scripts.
1161
*
1161
*
1162
* Revision 1.36  2004/04/28 12:04:40  jpm
1162
* Revision 1.36  2004/04/28 12:04:40  jpm
1163
* Changement du modèle de la base de données.
1163
* Changement du modèle de la base de données.
1164
*
1164
*
1165
* Revision 1.35  2004/04/09 16:23:41  jpm
1165
* Revision 1.35  2004/04/09 16:23:41  jpm
1166
* Prise en compte des tables i18n.
1166
* Prise en compte des tables i18n.
1167
*
1167
*
1168
* Revision 1.34  2004/04/02 16:34:44  jpm
1168
* Revision 1.34  2004/04/02 16:34:44  jpm
1169
* Extraction de variable globale des fonction, remplacé par un passage en paramètre.
1169
* Extraction de variable globale des fonction, remplacé par un passage en paramètre.
1170
*
1170
*
1171
* Revision 1.33  2004/04/01 11:24:51  jpm
1171
* Revision 1.33  2004/04/01 11:24:51  jpm
1172
* Ajout et modification de commentaires pour PhpDocumentor.
1172
* Ajout et modification de commentaires pour PhpDocumentor.
1173
*
1173
*
1174
* Revision 1.32  2004/03/31 16:52:30  jpm
1174
* Revision 1.32  2004/03/31 16:52:30  jpm
1175
* Modification du code vis à vis du modèle revision 1.9 de Génésia.
1175
* Modification du code vis à vis du modèle revision 1.9 de Génésia.
1176
*
1176
*
1177
* Revision 1.31  2004/03/29 17:13:05  jpm
1177
* Revision 1.31  2004/03/29 17:13:05  jpm
1178
* Suppression de fonction, passer en code classique.
1178
* Suppression de fonction, passer en code classique.
1179
*
1179
*
1180
* Revision 1.30  2004/03/27 11:11:58  jpm
1180
* Revision 1.30  2004/03/27 11:11:58  jpm
1181
* Début changement nom de variable dans fonction creerInfoPageEtApplication().
1181
* Début changement nom de variable dans fonction creerInfoPageEtApplication().
1182
*
1182
*
1183
* Revision 1.29  2004/03/26 12:52:25  jpm
1183
* Revision 1.29  2004/03/26 12:52:25  jpm
1184
* Ajout des fonctions creerInfoPageEtApplication() et donnerIdPremiereApplicationLiee().
1184
* Ajout des fonctions creerInfoPageEtApplication() et donnerIdPremiereApplicationLiee().
1185
*
1185
*
1186
* +-- Fin du code ----------------------------------------------------------------------------------------+
1186
* +-- Fin du code ----------------------------------------------------------------------------------------+
1187
*/
1187
*/
1188
?>
1188
?>