Subversion Repositories Applications.papyrus

Rev

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

Rev 151 Rev 154
Line 17... Line 17...
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: menu.php,v 1.8 2004-11-10 18:59:21 jpm Exp $
22
// CVS : $Id: menu.php,v 1.9 2004-11-15 16:17:40 jpm Exp $
23
/**
23
/**
24
* Applette : menu
24
* Applette : menu
25
*
25
*
26
* Génère une liste de listes comportant tous les niveaux des menus "classiques" d'un site.
26
* Génère une liste de listes comportant tous les niveaux des menus "classiques" d'un site.
27
* Nécessite :
27
* Nécessite :
Line 36... Line 36...
36
//Auteur original :
36
//Auteur original :
37
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
37
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
38
//Autres auteurs :
38
//Autres auteurs :
39
*@author        Aucun
39
*@author        Aucun
40
*@copyright     Tela-Botanica 2000-2004
40
*@copyright     Tela-Botanica 2000-2004
41
*@version       $Revision: 1.8 $ $Date: 2004-11-10 18:59:21 $
41
*@version       $Revision: 1.9 $ $Date: 2004-11-15 16:17:40 $
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
*/
43
*/
Line 44... Line 44...
44
 
44
 
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
46
// |                                            ENTÊTE du PROGRAMME                                       |
46
// |                                            ENTÊTE du PROGRAMME                                       |
Line 47... Line 47...
47
// +------------------------------------------------------------------------------------------------------+
47
// +------------------------------------------------------------------------------------------------------+
Line 48... Line 48...
48
 
48
 
49
require_once 'papyrus/bibliotheque/fonctions/pap_menu.fonct.php';
49
require_once 'papyrus/bibliotheque/fonctions/pap_menu.fonct.php';
Line 50... Line 50...
50
 
50
 
51
$_GEN_commun['info_applette_nom_fonction'] = 'afficherMenuNiveauMultiple';
51
$_GEN_commun['info_applette_nom_fonction'] = 'afficherMenuNiveauMultiple';
52
$_GEN_commun['info_applette_balise'] = 'PAPYRUS_MENU_?(?:(|CLASSIQUE|COMMUN)_([0-9])_([0-9])|(UNIQUE)_([0-9]))';
52
$_GEN_commun['info_applette_balise'] = 'PAPYRUS_MENU_?(?:(|CLASSIQUE|COMMUN)_([0-9]+)_([0-9]+)(|_ID_([0-9]+))|(UNIQUE)_([0-9]+))';
Line 81... Line 81...
81
        // L'écriture de l'i18n dans les urls des menus est demandée.
81
        // L'écriture de l'i18n dans les urls des menus est demandée.
82
        $i18n_url = $_GEN_commun['url_i18n'];
82
        $i18n_url = $_GEN_commun['url_i18n'];
83
    }
83
    }
84
    $indent_origine = 12;// Indentation de départ en nombre d'espace
84
    $indent_origine = 12;// Indentation de départ en nombre d'espace
85
    $indent_pas     = 4;// Pas d'indentation en nombre d'espace
85
    $indent_pas     = 4;// Pas d'indentation en nombre d'espace
-
 
86
    $niveau_depart    = 1;
Line 86... Line 87...
86
    
87
    
87
    // Récupérations des arguments passés dans la balise.
88
    // Récupérations des arguments passés dans la balise.
88
    // Pour les menus CLASSIQUE et COMMUN
89
    // Pour les menus CLASSIQUE et COMMUN
89
    $balise           = $tab_applette_arguments[1];
90
    $balise           = $tab_applette_arguments[1];
90
    $menu_type        = $tab_applette_arguments[2];
91
    $menu_type        = $tab_applette_arguments[2];
91
    $niveau_depart    = $tab_applette_arguments[3];
92
    $niveau_depart    = $tab_applette_arguments[3];
-
 
93
    $profondeur       = $tab_applette_arguments[4];
-
 
94
    if (isset($tab_applette_arguments[5]) && !empty($tab_applette_arguments[5])) {
-
 
95
        $menu_depart = $tab_applette_arguments[6];
-
 
96
    } else {
-
 
97
        $menu_depart = 0;
92
    $profondeur       = $tab_applette_arguments[4];
98
    }
93
    // Pour les menus UNIQUE
99
    // Pour les menus UNIQUE
94
    if (isset($tab_applette_arguments[5])) {
100
    if (isset($tab_applette_arguments[7])) {
95
        $menu_type = $tab_applette_arguments[5];
101
        $menu_type = $tab_applette_arguments[7];
96
    }
102
    }
97
    if (isset($tab_applette_arguments[6])) {
103
    if (isset($tab_applette_arguments[8])) {
98
        $niveau_depart   = $tab_applette_arguments[6];
104
        $menu_depart = $tab_applette_arguments[8];
Line 99... Line 105...
99
    }
105
    }
100
    
106
    
101
    // Gestion du type de menu
107
    // Gestion du type de menu
Line 115... Line 121...
115
        default:
121
        default:
116
            $menu_type = 'classique';
122
            $menu_type = 'classique';
117
    }
123
    }
Line 118... Line 124...
118
    
124
    
119
    //Construction du menu
125
    //Construction du menu
Line 120... Line 126...
120
    $xhtml_menu = afficherListeNiveauMultiple($objet_pear_db, $id_site, $id_langue, $i18n_url ,$niveau_depart, $profondeur, 0, 1, $menu_type, $indent_origine, $indent_pas, $_GEN_commun);
126
    $xhtml_menu = afficherListeNiveauMultiple($objet_pear_db, $id_site, $id_langue, $i18n_url ,$niveau_depart, $profondeur, $menu_depart, 1, $menu_type, $indent_origine, $indent_pas, $_GEN_commun);
121
    
127
    
122
    //Si nous avons un 
128
    //Si nous avons un 
123
    if (! empty($xhtml_menu)) {
129
    if (! empty($xhtml_menu)) {
Line 144... Line 150...
144
*/
150
*/
145
function afficherListeNiveauMultiple($objet_pear_db, $id_site, $id_langue, $i18n_url, $niveau_depart, $profondeur, $id_pere_menu_a_deployer, $position, $menu_type, $indent_origine = 12, $indent_pas = 4, $_GEN_commun)
151
function afficherListeNiveauMultiple($objet_pear_db, $id_site, $id_langue, $i18n_url, $niveau_depart, $profondeur, $id_pere_menu_a_deployer, $position, $menu_type, $indent_origine = 12, $indent_pas = 4, $_GEN_commun)
146
{
152
{
147
    // Initialisation des variables
153
    // Initialisation des variables
148
    static $niveau_actuel = 1;
154
    static $niveau_actuel = 1;
149
    $retour = '';
155
    $retour = '';
-
 
156
    // Gestion des menus uniques
150
    if ($menu_type == 'unique') {
157
    if ($menu_type == 'unique') {
151
        $retour .= afficherEntreeListeMenu( $objet_pear_db, $niveau_depart, $i18n_url,
158
        $retour .= afficherEntreeListeMenu( $objet_pear_db, $id_pere_menu_a_deployer, $i18n_url,
152
                                            $niveau_actuel, 1, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun);
159
                                            $niveau_actuel, 1, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun);
-
 
160
        // Dans le cas, d'un menu unique, on retourne directement le résultat ici.
-
 
161
        return $retour;
153
    } else {
162
    } 
154
        // On affiche un menu que si $profondeur <= $niveau_actuel <= $depart
163
    // On affiche un menu que si $profondeur <= $niveau_actuel <= $depart
155
        if ($niveau_actuel > $profondeur) {
164
    if ($niveau_actuel > $profondeur) {
156
            return null;
165
        return null;
-
 
166
    }
-
 
167
    
-
 
168
    // Nous regardons si nous devons afficher un menu racine
-
 
169
    if ($id_pere_menu_a_deployer != 0 && $niveau_actuel == 1) {
-
 
170
        $retour .=   str_repeat(' ', $indent_origine + ($indent_pas * $position)).
-
 
171
                    '<ul class="menu_commun_n'.($niveau_actuel - 1).'">'."\n";
-
 
172
        $id_menu_selectionne = $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu;
-
 
173
        if (!empty($id_menu_selectionne) && (GEN_etreAncetre($id_pere_menu_a_deployer, $id_menu_selectionne) || $id_pere_menu_a_deployer == $id_menu_selectionne) ) {
-
 
174
            $classe = 'menu_actif';
-
 
175
        } else {
-
 
176
            $classe = 'menu_inactif';
157
        }
177
        }
-
 
178
        // Pour un menu dont on spécifie l'identifiant du menu départ, on affiche ce menu. 
-
 
179
        $retour .=  str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).
-
 
180
                    '<li id="menu_'.$menu_type.'_'.$id_pere_menu_a_deployer.'" class="'.$classe.'">'."\n";
-
 
181
        $retour .= afficherEntreeListeMenu( $objet_pear_db, $id_pere_menu_a_deployer, $i18n_url,
-
 
182
                                            $niveau_actuel, 1, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun);
-
 
183
    }
-
 
184
    
-
 
185
    if ($niveau_actuel >= $niveau_depart && $niveau_actuel <= $profondeur) {
-
 
186
        $retour .=   str_repeat(' ', $indent_origine + ($indent_pas * $position)).
-
 
187
                    '<ul id="groupe_menu_'.$menu_type.'_'.$id_pere_menu_a_deployer.'" class="menu_'.$menu_type.'_'.'n'.$niveau_actuel.'">'."\n";
-
 
188
    }
-
 
189
    
-
 
190
    $requete =  'SELECT gm_id_menu, GMR01.gmr_ordre '.
-
 
191
                'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
192
                'WHERE GMR01.gmr_id_menu_01 = gm_id_menu '.
-
 
193
                'AND GMR01.gmr_id_valeur = 1 '.// 1 = "avoir père"
-
 
194
                'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
-
 
195
                'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 ';
-
 
196
    $requete .= 'AND GMR01.gmr_id_menu_02 = '.$id_pere_menu_a_deployer.' ';
-
 
197
    
-
 
198
    if ($menu_type == 'classique') {
-
 
199
        $requete .= 'AND gm_ce_site = '.$id_site.' '.
-
 
200
                    'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
-
 
201
                    'ORDER BY GMR01.gmr_ordre ASC';
-
 
202
    } else if ($menu_type == 'commun') {
-
 
203
        $requete .= 'AND gm_ce_site = 0 '.
-
 
204
                    'AND GMR02.gmr_id_valeur = 102 '.// 102 = type "menu commun"
-
 
205
                    'ORDER BY GMR01.gmr_ordre ASC';
-
 
206
    }
-
 
207
    //$GLOBALS['_GEN_commun']['debogage_info'] .= $requete;
-
 
208
    $resultat = $objet_pear_db->query($requete);
-
 
209
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
210
    
-
 
211
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
212
        // On commence par regarder si le menu existe dans la langue demandée
158
        if ($niveau_actuel >= $niveau_depart && $niveau_actuel <= $profondeur) {
213
        if ($niveau_actuel >= $niveau_depart && $niveau_actuel <= $profondeur) {
-
 
214
            $requete_i18n = 'SELECT gm_id_menu '.
-
 
215
                            'FROM gen_menu, gen_menu_relation '.
-
 
216
                            'WHERE gmr_id_menu_01 = '.$ligne->gm_id_menu.' '.
-
 
217
                            'AND gmr_id_menu_02 = gm_id_menu '.
-
 
218
                            'AND gmr_id_valeur = 2 '.// 2 = "avoir traduction"
-
 
219
                            'AND gm_ce_i18n = "'.$id_langue.'"';
-
 
220
            
-
 
221
            $resultat_i18n = $objet_pear_db->query($requete_i18n);
-
 
222
            (DB::isError($resultat_i18n)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_i18n->getMessage(), $requete_i18n)) : '';
-
 
223
            
-
 
224
            // Récupération de l'id du menu à afficher
-
 
225
            if ($resultat_i18n->numRows() != 0) {
-
 
226
                $id_menu_i18n = $resultat_i18n->fetchRow(DB_FETCHMODE_OBJECT);
-
 
227
                $id_menu_inf = $id_menu_i18n->gm_id_menu;
-
 
228
                $resultat_i18n->free();
-
 
229
            } else {
-
 
230
                $id_menu_inf = $ligne->gm_id_menu;
-
 
231
            }
-
 
232
            $id_menu_selectionne = '';
-
 
233
            if (isset($GLOBALS['_GEN_commun']['info_menu']->gm_id_menu)) {
-
 
234
                $id_menu_selectionne = $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu;
-
 
235
            }
-
 
236
            // On vérifie si le menu est le menu sélectionné
-
 
237
            if (!empty($id_menu_selectionne) && (GEN_etreAncetre($id_menu_inf, $id_menu_selectionne) || $id_menu_inf == $id_menu_selectionne) ) {
-
 
238
                $classe = 'menu_actif';
-
 
239
            } else {
-
 
240
                $classe = 'menu_inactif';
-
 
241
            }
-
 
242
            
-
 
243
            // Affichage du menu
159
            $retour .=   str_repeat(' ', $indent_origine + ($indent_pas * $position)).
244
            $retour .=   str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).
160
                        '<ul id="groupe_menu_'.$menu_type.'_'.$id_pere_menu_a_deployer.'" class="menu_'.$menu_type.'_'.'n'.$niveau_actuel.'">'."\n";
245
                        '<li id="menu_'.$menu_type.'_'.$id_menu_inf.'" class="'.$classe.'">'."\n";
-
 
246
            $retour .= afficherEntreeListeMenu( $objet_pear_db, $id_menu_inf, $i18n_url, $niveau_actuel, 
-
 
247
                                                $ligne->gmr_ordre, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun);
161
        }
248
        }
-
 
249
        // Pour chaque menu on regarde s'il y a des fils. Si oui, on les déploie.
-
 
250
        $requete_fils = 'SELECT gm_id_menu '.
-
 
251
                        'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
252
                        'WHERE GMR01.gmr_id_menu_02 = '.$ligne->gm_id_menu.' '.
-
 
253
                        'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
-
 
254
                        'AND GMR01.gmr_id_valeur = 1 '.// 1 = "avoir père"
-
 
255
                        'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
-
 
256
                        'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
-
 
257
                        'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
-
 
258
                        'ORDER BY GMR01.gmr_ordre ASC '.
-
 
259
                        'LIMIT 0,1';
Line 162... Line 260...
162
        
260
        
163
        $requete =  'SELECT gm_id_menu, GMR01.gmr_ordre '.
-
 
164
                    'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
165
                    'WHERE GMR01.gmr_id_menu_02 = '.$id_pere_menu_a_deployer.' '.
-
 
166
                    'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
-
 
167
                    'AND GMR01.gmr_id_valeur = 1 '.// 1 = "avoir père"
-
 
168
                    'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
-
 
169
                    'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 ';
-
 
170
                    
261
        $resultat_fils = $objet_pear_db->query($requete_fils);
171
        if ($menu_type == 'classique') {
-
 
172
            $requete .= 'AND gm_ce_site = '.$id_site.' '.
262
        (DB::isError($resultat_fils))
173
                        'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
-
 
174
                        'ORDER BY GMR01.gmr_ordre ASC';
-
 
175
        } else if ($menu_type == 'commun') {
-
 
176
            $requete .= 'AND gm_ce_site = 0 '.
-
 
177
                        'AND GMR02.gmr_id_valeur = 102 '.// 102 = type "menu commun"
-
 
178
                        'ORDER BY GMR01.gmr_ordre ASC';
263
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_fils->getMessage(), $requete_fils))
179
        }
-
 
180
        //$GLOBALS['_GEN_commun']['debogage_info'] .=$requete;
-
 
181
        $resultat = $objet_pear_db->query($requete);
-
 
Line 182... Line -...
182
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
183
        
-
 
184
        while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
185
            // On commence par regarder si le menu existe dans la langue demandée
-
 
186
            if ($niveau_actuel >= $niveau_depart && $niveau_actuel <= $profondeur) {
-
 
187
                $requete_i18n = 'SELECT gm_id_menu '.
-
 
188
                                'FROM gen_menu, gen_menu_relation '.
-
 
189
                                'WHERE gmr_id_menu_01 = '.$ligne->gm_id_menu.' '.
-
 
190
                                'AND gmr_id_menu_02 = gm_id_menu '.
-
 
191
                                'AND gmr_id_valeur = 2 '.// 2 = "avoir traduction"
-
 
192
                                'AND gm_ce_i18n = "'.$id_langue.'"';
-
 
193
                
-
 
194
                $resultat_i18n = $objet_pear_db->query($requete_i18n);
-
 
195
                (DB::isError($resultat_i18n)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_i18n->getMessage(), $requete_i18n)) : '';
-
 
196
                
-
 
197
                // Récupération de l'id du menu à afficher
-
 
198
                if ($resultat_i18n->numRows() != 0) {
-
 
199
                    $id_menu_i18n = $resultat_i18n->fetchRow(DB_FETCHMODE_OBJECT);
-
 
200
                    $id_menu_inf = $id_menu_i18n->gm_id_menu;
-
 
201
                    $resultat_i18n->free();
-
 
202
                } else {
-
 
203
                    $id_menu_inf = $ligne->gm_id_menu;
-
 
204
                }
-
 
205
                $id_menu_selectionne = '';
-
 
206
                if (isset($GLOBALS['_GEN_commun']['info_menu']->gm_id_menu)) {
-
 
207
                    $id_menu_selectionne = $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu;
-
 
208
                }
-
 
209
                // On vérifie si le menu est le menu sélectionné
-
 
210
                if (!empty($id_menu_selectionne) && (GEN_etreAncetre($id_menu_inf, $id_menu_selectionne) || $id_menu_inf == $id_menu_selectionne) ) {
-
 
211
                    $classe = 'menu_actif';
-
 
212
                } else {
-
 
213
                    $classe = 'menu_inactif';
-
 
214
                }
-
 
215
                
-
 
216
                // Affichage du menu
-
 
217
                $retour .=   str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).
-
 
218
                            '<li id="menu_'.$menu_type.'_'.$id_menu_inf.'" class="'.$classe.'">'."\n";
-
 
219
                $retour .= afficherEntreeListeMenu( $objet_pear_db, $id_menu_inf, $i18n_url, $niveau_actuel, 
-
 
220
                                                    $ligne->gmr_ordre, $position, $menu_type, $indent_origine, $indent_pas, $_GEN_commun);
-
 
221
            }
-
 
222
            // Pour chaque menu on regarde s'il y a des fils. Si oui, on les déploie.
-
 
223
            $requete_fils = 'SELECT gm_id_menu '.
-
 
224
                            'FROM gen_menu, gen_menu_relation AS GMR01, gen_menu_relation AS GMR02 '.
-
 
225
                            'WHERE GMR01.gmr_id_menu_02 = '.$ligne->gm_id_menu.' '.
-
 
226
                            'AND GMR01.gmr_id_menu_01 = gm_id_menu '.
-
 
227
                            'AND GMR01.gmr_id_valeur = 1 '.// 1 = "avoir père"
-
 
228
                            'AND GMR02.gmr_id_menu_02 = gm_id_menu '.
-
 
229
                            'AND GMR02.gmr_id_menu_01 = GMR02.gmr_id_menu_02 '.
-
 
230
                            'AND GMR02.gmr_id_valeur = 100 '.// 100 = type "menu classique"
-
 
231
                            'ORDER BY GMR01.gmr_ordre ASC '.
-
 
232
                            'LIMIT 0,1';
-
 
233
            
-
 
234
            $resultat_fils = $objet_pear_db->query($requete_fils);
-
 
235
            (DB::isError($resultat_fils))
-
 
236
                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_fils->getMessage(), $requete_fils))
-
 
237
                : '';
264
            : '';
238
            
265
        
239
            if ($resultat_fils->numRows() != 0 && $ligne->gm_id_menu == $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu 
-
 
240
                || GEN_etreAncetre($ligne->gm_id_menu, $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu)) {
266
        if ($resultat_fils->numRows() != 0 && $ligne->gm_id_menu == $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu 
241
                
267
            || GEN_etreAncetre($ligne->gm_id_menu, $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu)) {
242
                $niveau_actuel++;
268
            $niveau_actuel++;
243
                $retour .= afficherListeNiveauMultiple($objet_pear_db, $id_site, $id_langue, $i18n_url, $niveau_depart, $profondeur, $ligne->gm_id_menu, ($position + 2), $menu_type, null, null, $_GEN_commun);
269
            $retour .= afficherListeNiveauMultiple($objet_pear_db, $id_site, $id_langue, $i18n_url, $niveau_depart, $profondeur, $ligne->gm_id_menu, ($position + 2), $menu_type, null, null, $_GEN_commun);
244
                // On ramène $niveau_actuel un cran plus bas
270
            // On ramène $niveau_actuel un cran plus bas
245
                $niveau_actuel--;
271
            $niveau_actuel--;
246
                $retour .= str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).'</li>'."\n";
272
            $retour .= str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).'</li>'."\n";
247
            } else {
-
 
248
                $retour .= str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).'</li>'."\n";
-
 
249
            }
-
 
250
            
273
        } else {
251
            $resultat_fils->free();
274
            $retour .= str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).'</li>'."\n";
252
        }
-
 
253
        $resultat->free();
-
 
254
        if ($niveau_actuel >= $niveau_depart && $niveau_actuel <= $profondeur) {
-
 
255
            $retour .= str_repeat(' ', $indent_origine + ($indent_pas * $position)).'</ul>'."\n";
275
        }
-
 
276
        $resultat_fils->free();
-
 
277
    }
-
 
278
    $resultat->free();
-
 
279
    
-
 
280
    if ($niveau_actuel >= $niveau_depart && $niveau_actuel <= $profondeur) {
-
 
281
        $retour .= str_repeat(' ', $indent_origine + ($indent_pas * $position)).'</ul>'."\n";
-
 
282
    }
-
 
283
    
-
 
284
    // Nous regardons si nous avons affiché le menu racine
-
 
285
    if ($id_pere_menu_a_deployer != 0 && $niveau_actuel == 1) {
-
 
286
        $retour .= str_repeat(' ', $indent_origine + ($indent_pas * ($position + 1))).'</li>'."\n";
-
 
287
        $retour .= str_repeat(' ', $indent_origine + ($indent_pas * $position)).'</ul>'."\n";
256
        }
288
    }
257
    }
289
    
Line 258... Line 290...
258
    return $retour;
290
    return $retour;
259
}
291
}
Line 287... Line 319...
287
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
319
    $ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
288
    $resultat->free();
320
    $resultat->free();
289
    // Nous vérifions si nous avons à faire à un menu commun ou pas
321
    // Nous vérifions si nous avons à faire à un menu commun ou pas
290
    if ($ligne['gm_ce_site'] != 0) {
322
    if ($ligne['gm_ce_site'] != 0) {
291
        // Récupération des infos sur le site
323
        // Récupération des infos sur le site
-
 
324
        $bln_url_site = false;
292
        $requete_site = 'SELECT '.$champs_code_site.' '.
325
        $requete_site = 'SELECT '.$champs_code_site.' '.
293
                        'FROM gen_site '.
326
                        'FROM gen_site '.
294
                        'WHERE gs_id_site = '.$ligne['gm_ce_site'].' ';
327
                        'WHERE gs_id_site = '.$ligne['gm_ce_site'].' ';
Line 295... Line 328...
295
        
328
        
Line 298... Line 331...
298
        
331
        
299
        $ligne_site = $resultat_site->fetchRow(DB_FETCHMODE_ASSOC);
332
        $ligne_site = $resultat_site->fetchRow(DB_FETCHMODE_ASSOC);
300
        $resultat_site->free();
333
        $resultat_site->free();
301
    } else {
334
    } else {
-
 
335
        // Menu commun
302
        // Menu commun
336
        $bln_url_site = true;
303
        $ligne_site[$champs_code_site] = $_GEN_commun['info_site']->$champs_code_site;
337
        $ligne_site[$champs_code_site] = $_GEN_commun['info_site']->$champs_code_site;
304
    }
338
    }
305
    // Préparation d'une entrée dans la liste du menu
339
    // Préparation d'une entrée dans la liste du menu
306
    $menu_nom = htmlentities($ligne['gm_nom']);
340
    $menu_nom = htmlentities($ligne['gm_nom']);
307
    $menu_texte_title = htmlentities($ligne['gm_description_resume']);
341
    $menu_texte_title = htmlentities($ligne['gm_description_resume']);
308
    // Préparation de l'url de l'entrée
342
    // Préparation de l'url de l'entrée
-
 
343
    $objet_pear_url = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
309
    $objet_pear_url = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
344
    if ($bln_url_site) {
-
 
345
        $objet_pear_url->addQueryString(GEN_URL_CLE_SITE, $ligne_site[$champs_code_site]);
310
    $objet_pear_url->addQueryString(GEN_URL_CLE_SITE, $ligne_site[$champs_code_site]);
346
    }
311
    $objet_pear_url->addQueryString(GEN_URL_CLE_MENU, $ligne[$champs_code_menu]);
347
    $objet_pear_url->addQueryString(GEN_URL_CLE_MENU, $ligne[$champs_code_menu]);
312
    if (!empty($i18n_url)) {
348
    if (!empty($i18n_url)) {
313
        $objet_pear_url->addQueryString(GEN_URL_CLE_I18N, $i18n_url);
349
        $objet_pear_url->addQueryString(GEN_URL_CLE_I18N, $i18n_url);
314
    }
350
    }
Line 326... Line 362...
326
 
362
 
327
 
363
 
328
/* +--Fin du code ----------------------------------------------------------------------------------------+
364
/* +--Fin du code ----------------------------------------------------------------------------------------+
-
 
365
*
-
 
366
* $Log: not supported by cvs2svn $
-
 
367
* Revision 1.8  2004/11/10 18:59:21  jpm
329
*
368
* Début de gestion de l'ensemble des types de menu dans l'applette menu.
330
* $Log: not supported by cvs2svn $
369
*
331
* Revision 1.7  2004/09/23 14:31:40  jpm
370
* Revision 1.7  2004/09/23 14:31:40  jpm
332
* Correction bogue sur le menu actif.
371
* Correction bogue sur le menu actif.
333
*
372
*