Subversion Repositories Applications.papyrus

Rev

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

Rev 1673 Rev 1848
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.32 2007-10-24 14:43:02 ddelon Exp $
22
// CVS : $Id: menu.php,v 1.33 2008-08-08 14:56:46 jp_milcent 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.32 $ $Date: 2007-10-24 14:43:02 $
41
*@version       $Revision: 1.33 $ $Date: 2008-08-08 14:56:46 $
42
// +------------------------------------------------------------------------------------------------------+
42
// +------------------------------------------------------------------------------------------------------+
43
*/
43
*/
Line 44... Line 44...
44
 
44
 
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
Line 70... Line 70...
70
* @param  array  tableau global de Papyrus.
70
* @param  array  tableau global de Papyrus.
71
* @return string HTML la liste des listes de menus.
71
* @return string HTML la liste des listes de menus.
72
*/
72
*/
73
function afficherMenuNiveauMultiple($tab_applette_arguments, $_GEN_commun)
73
function afficherMenuNiveauMultiple($tab_applette_arguments, $_GEN_commun)
74
{
74
{
75
    // Initialisation de variable.
75
    // Initialisation de variable et gestion des globales
76
    $objet_pear_db = $_GEN_commun['pear_db'];
76
    $objet_pear_db = $_GEN_commun['pear_db'];
77
    $id_site = $_GEN_commun['info_site']->gs_id_site;
77
    $id_site = $_GEN_commun['info_site']->gs_id_site;
78
    if (isset($_GEN_commun['info_menu'])) {
78
    if (isset($_GEN_commun['info_menu'])) {
79
    	$id_menu = $_GEN_commun['info_menu']->gm_id_menu;
79
    	$id_menu = $_GEN_commun['info_menu']->gm_id_menu;
80
    }
80
    }
81
    $num_menu = $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_MENU_']['nom_fonction']];
81
    $num_menu = $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_MENU_']['nom_fonction']];
Line -... Line 82...
-
 
82
    
82
    
83
    // Indentation du html
83
    $indent_origine = 12;// Indentation de départ en nombre d'espace
84
    $indent_origine = 12;// Indentation de départ en nombre d'espace
84
    $indent_pas     = 4;// Pas d'indentation en nombre d'espace
-
 
Line 85... Line 85...
85
    $niveau_depart    = 1;
85
    $indent_pas     = 4;// Pas d'indentation en nombre d'espace
86
    
86
    
87
    // Récupérations des arguments passés dans la balise.
87
    // Récupérations des arguments passés dans la balise.
88
    // Pour les menus CLASSIQUE et COMMUN
88
    // Pour les menus CLASSIQUE et COMMUN
89
    $balise           = $tab_applette_arguments[1];
89
    $balise           = $tab_applette_arguments[1];
90
    $menu_type        = $tab_applette_arguments[2];
90
    $menu_type        = $tab_applette_arguments[2];
-
 
91
    $niveau_depart    = (isset($tab_applette_arguments[3])) ? $tab_applette_arguments[3] : 1;
-
 
92
    $profondeur       = $tab_applette_arguments[4];
91
    $niveau_depart    = $tab_applette_arguments[3];
93
	$menu_depart = 0;
92
    $profondeur       = $tab_applette_arguments[4];
94
    // Si on indique un ID de menu de départ
93
    if (isset($tab_applette_arguments[5]) && !empty($tab_applette_arguments[5])) {
-
 
94
        $menu_depart = $tab_applette_arguments[6];
-
 
95
    } else {
95
    if (isset($tab_applette_arguments[5]) && !empty($tab_applette_arguments[5])) {
96
        $menu_depart = 0;
96
        $menu_depart = $tab_applette_arguments[6];
97
    }
97
    }
98
    // Pour les menus UNIQUE
98
    // Pour les menus UNIQUE
99
    if (isset($tab_applette_arguments[7])) {
99
    if (isset($tab_applette_arguments[7])) {
100
        $menu_type = $tab_applette_arguments[7];
100
        $menu_type = $tab_applette_arguments[7]; // Type de menu : UNIQUE
101
    }
101
    }
102
    if (isset($tab_applette_arguments[8])) {
102
    if (isset($tab_applette_arguments[8])) {
-
 
103
        $menu_depart = $tab_applette_arguments[8]; // ID du menu de type UNIQUE
103
        $menu_depart = $tab_applette_arguments[8];
104
    }
104
    }
105
    // Pour les balises menus avec NUMID en dur    
105
    // Gestion du numéro unique pour l'attribut id des li des menus
106
    // Gestion du numéro unique pour l'attribut id des li des menus
106
    if (isset($tab_applette_arguments[9])) {
107
    if (isset($tab_applette_arguments[9])) {
-
 
108
        $num_menu = $tab_applette_arguments[9];
107
        $num_menu = $tab_applette_arguments[9];
109
    }
108
    }
110
    
109
    // Gestion du type de menu
-
 
110
    switch ($menu_type) {
-
 
111
        case '' :
-
 
112
            $menu_type = 'classique';
-
 
113
        break;
-
 
114
        case 'CLASSIQUE' :
-
 
115
            $menu_type = 'classique';
111
    // Gestion du type de menu
116
        break;
112
    switch ($menu_type) {
117
        case 'COMMUN' :
113
        case 'COMMUN' :
118
            $menu_type = 'commun';
114
            $menu_type = 'commun';
119
        break;
115
        break;
120
        case 'UNIQUE' :
116
        case 'UNIQUE' :
121
            $menu_type = 'unique';
117
            $menu_type = 'unique';
122
        break;
118
        break;
123
        case 'DEROULANT' :
119
        case 'DEROULANT' :
-
 
120
            $menu_type = 'deroulant';
124
            $menu_type = 'deroulant';
121
        break;
125
        break;
122
        case 'CLASSIQUE' :
126
        default:
123
        default:
-
 
124
            $menu_type = 'classique';
-
 
125
    }
-
 
126
	// Si le niveau de départ est supérieur à 1 et qu'aucun id de menu n'a été indiqué
-
 
127
	$niveau_actuel = 1;
-
 
128
	if (1 < $niveau_depart && 0 == $menu_depart) {
-
 
129
		$menu_depart = GEN_lireIdentifiantMenuPere($id_menu);
-
 
130
		$niveau_actuel = GEN_donnerProfondeur($id_site, $id_menu);
127
            $menu_type = 'classique';
131
		//trigger_error("Niveau actuel du menu si$id_site:me$id_menu pour la balise {$tab_applette_arguments[0]} : $niveau_actuel", E_USER_NOTICE);
128
    }
132
	}
129
 
133
	
130
    //Construction du menu
134
    //Construction du menu
131
    $xhtml_menu = afficherListeNiveauMultiple(   $objet_pear_db, $id_site,$niveau_depart, 
135
    $xhtml_menu = afficherListeNiveauMultiple(   $objet_pear_db, $id_site,$niveau_depart, 
Line 132... Line 136...
132
                                                    $profondeur, $menu_depart, 1, $menu_type, $indent_origine, 
136
                                                    $profondeur, $menu_depart, 1, $menu_type, $indent_origine, 
133
                                                    $indent_pas, $_GEN_commun, $num_menu);
137
                                                    $indent_pas, $_GEN_commun, $num_menu, $niveau_actuel);
134
    
138
    
135
    // Si le menu est déroulant il faut stocker un peu de javascript pour IE
139
    // Si le menu est déroulant il faut stocker un peu de javascript pour IE
Line 170... Line 174...
170
* @param  integer identifiant d'un menu pére.
174
* @param  integer identifiant d'un menu pére.
171
* @return  string  les listes de menus au format XHTML.
175
* @return  string  les listes de menus au format XHTML.
172
*/
176
*/
173
function afficherListeNiveauMultiple( &$objet_pear_db, $id_site,  $niveau_depart, $profondeur, 
177
function afficherListeNiveauMultiple( &$objet_pear_db, $id_site,  $niveau_depart, $profondeur, 
174
                                        $id_pere_menu_a_deployer, $position, $menu_type, $indent_origine = 12, 
178
                                        $id_pere_menu_a_deployer, $position, $menu_type, $indent_origine = 12, 
175
                                        $indent_pas = 4, $_GEN_commun, $num_menu)
179
                                        $indent_pas = 4, $_GEN_commun, $num_menu, $niveau_actuel = 1)
176
{
180
{
177
    // Initialisation des variables
181
    // Initialisation des variables
178
    static $niveau_actuel = 1;
-
 
179
    $retour = '';
182
    $retour = '';
180
    $tete = '';
183
    $tete = '';
181
    $corps = '';
184
    $corps = '';
182
    $pied = '';
185
    $pied = '';
183
    $i18n_url = '' ;
186
    $i18n_url = '' ;
Line 376... Line 379...
376
	            if ($resultat_fils->numRows() != 0 && $ligne->gm_id_menu == $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu 
379
	            if ($resultat_fils->numRows() != 0 && $ligne->gm_id_menu == $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu 
377
	                || GEN_etreAncetre($ligne->gm_id_menu, $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu) || $menu_type == 'deroulant') {
380
	                || GEN_etreAncetre($ligne->gm_id_menu, $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu) || $menu_type == 'deroulant') {
378
	                $niveau_actuel++;
381
	                $niveau_actuel++;
379
	                $corps .= afficherListeNiveauMultiple( $objet_pear_db, $id_site, $niveau_depart, 
382
	                $corps .= afficherListeNiveauMultiple( $objet_pear_db, $id_site, $niveau_depart, 
380
	                                                            $profondeur, $ligne->gm_id_menu, ($position + 3), $menu_type, 
383
	                                                            $profondeur, $ligne->gm_id_menu, ($position + 3), $menu_type, 
381
	                                                            null, null, $_GEN_commun, $num_menu);
384
	                                                            null, null, $_GEN_commun, $num_menu, $niveau_actuel);
382
	                // On ramène $niveau_actuel un cran plus bas
385
	                // On ramène $niveau_actuel un cran plus bas
383
	                $niveau_actuel--;
386
	                $niveau_actuel--;
384
	            }
387
	            }
385
           	}
388
           	}
Line 519... Line 522...
519
 
522
 
520
 
523
 
521
/* +--Fin du code ----------------------------------------------------------------------------------------+
524
/* +--Fin du code ----------------------------------------------------------------------------------------+
-
 
525
*
-
 
526
* $Log: not supported by cvs2svn $
-
 
527
* Revision 1.32  2007-10-24 14:43:02  ddelon
522
*
528
* Gestion des menus reservés à une langue
523
* $Log: not supported by cvs2svn $
529
*
524
* Revision 1.31  2006-12-01 16:33:40  florian
530
* Revision 1.31  2006-12-01 16:33:40  florian
525
* Amélioration de la gestion des applettes et compatibilité avec le nouveau mode de gestion de l'inclusion des applettes.
531
* Amélioration de la gestion des applettes et compatibilité avec le nouveau mode de gestion de l'inclusion des applettes.
526
*
532
*