Subversion Repositories Applications.papyrus

Rev

Rev 754 | Rev 1131 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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