Subversion Repositories Applications.papyrus

Rev

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

Rev 832 Rev 1090
Line 1... Line 1...
1
<?php
1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */ 
3
// +------------------------------------------------------------------------------------------------------+
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
7
// +------------------------------------------------------------------------------------------------------+
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: vous_etes_ici.php,v 1.10 2006-04-28 12:41:49 florian Exp $
22
// CVS : $Id: vous_etes_ici.php,v 1.11 2006-12-01 16:33:40 florian Exp $
23
/**
23
/**
24
* Applette : Vous Etes Ici
24
* Applette : Vous Etes Ici
25
*
25
*
26
* Affiche les liens contenant la suite des menus visités pour arriver
26
* Affiche les liens contenant la suite des menus visités pour arriver
27
* au menu courant visioné par l'utilisateur.
27
* au menu courant visioné par l'utilisateur.
28
* Nécessite :
28
* Nécessite :
29
* - Constantes et variable de Papyrus.
29
* - Constantes et variable de Papyrus.
30
* - Base de données de Papyrus
30
* - Base de données de Papyrus
31
* - Pear Net_URL
31
* - Pear Net_URL
32
* - Pear DB
32
* - Pear DB
33
* - API Débogage 1.0
33
* - API Débogage 1.0
34
*
34
*
35
*@package Applette
35
*@package Applette
36
*@subpackage Vous_Etes_Ici
36
*@subpackage Vous_Etes_Ici
37
//Auteur original :
37
//Auteur original :
38
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
38
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
39
//Autres auteurs :
39
//Autres auteurs :
40
*@author        Aucun
40
*@author        Aucun
41
*@copyright     Tela-Botanica 2000-2004
41
*@copyright     Tela-Botanica 2000-2004
42
*@version       $Revision: 1.10 $ $Date: 2006-04-28 12:41:49 $
42
*@version       $Revision: 1.11 $ $Date: 2006-12-01 16:33:40 $
43
// +------------------------------------------------------------------------------------------------------+
43
// +------------------------------------------------------------------------------------------------------+
44
*/
44
*/
45
 
45
 
46
// +------------------------------------------------------------------------------------------------------+
46
// +------------------------------------------------------------------------------------------------------+
47
// |                                            ENTÊTE du PROGRAMME                                       |
47
// |                                            ENTÊTE du PROGRAMME                                       |
48
// +------------------------------------------------------------------------------------------------------+
48
// +------------------------------------------------------------------------------------------------------+
49
// Inclusion de la bibliothèque defonction sur les menu : inutile car inclue par Papyrus
49
// Inclusion de la bibliothèque defonction sur les menu : inutile car inclue par Papyrus
50
// require_once GEN_CHEMIN_BIBLIO.'pap_menu.fonct.php';
50
// require_once GEN_CHEMIN_BIBLIO.'pap_menu.fonct.php';
Line 51... Line 51...
51
 
51
 
52
$GLOBALS['_VEI_']['nom_fonction'] = 'afficherVousEtesIci';
52
$GLOBALS['_VEI_']['nom_fonction'] = 'afficherVousEtesIci';
53
$_GEN_commun['info_applette_nom_fonction'] = $GLOBALS['_VEI_']['nom_fonction'];
53
$GLOBALS['_GEN_commun']['info_applette_nom_fonction'] = $GLOBALS['_VEI_']['nom_fonction'];
54
$_GEN_commun['info_applette_balise'] = 'VOUS_ETES_ICI';
54
$GLOBALS['_GEN_commun']['info_applette_balise'] = '<!-- '.$GLOBALS['_GEN_commun']['balise_prefixe'].'(VOUS_ETES_ICI) -->';
55
 
55
 
56
// +------------------------------------------------------------------------------------------------------+
56
// +------------------------------------------------------------------------------------------------------+
57
// |                                            CORPS du PROGRAMME                                        |
57
// |                                            CORPS du PROGRAMME                                        |
58
// +------------------------------------------------------------------------------------------------------+
58
// +------------------------------------------------------------------------------------------------------+
59
 
59
 
60
 
60
 
61
 
61
 
62
// +------------------------------------------------------------------------------------------------------+
62
// +------------------------------------------------------------------------------------------------------+
63
// |                                           LISTE de FONCTIONS                                         |
63
// |                                           LISTE de FONCTIONS                                         |
64
// +------------------------------------------------------------------------------------------------------+
64
// +------------------------------------------------------------------------------------------------------+
65
 
65
 
66
/** Fonction afficherVousEtesIci() - Déploie le "vous êtes ici" d'un menu.
66
/** Fonction afficherVousEtesIci() - Déploie le "vous êtes ici" d'un menu.
67
*
67
*
68
* Affiche la suite des menus visité, sous forme de lien, pour arriver
68
* Affiche la suite des menus visité, sous forme de lien, pour arriver
69
* au menu courant visioné par l'utilisateur.
69
* au menu courant visioné par l'utilisateur.
70
* Necessite :
70
* Necessite :
71
* - Constantes et variable de Papyrus.
71
* - Constantes et variable de Papyrus.
72
* - Pear Net_URL
72
* - Pear Net_URL
73
* - Pear DB
73
* - Pear DB
74
*
74
*
75
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction. 
75
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction. 
76
* @param  array  tableau global de Papyrus.
76
* @param  array  tableau global de Papyrus.
77
* @param int identifiant du menu courant qui représentent la fin du "vous êtes ici".
77
* @param int identifiant du menu courant qui représentent la fin du "vous êtes ici".
78
* @param boolean indique que nous avons à faire au premier appel de cette fonction récursive.
78
* @param boolean indique que nous avons à faire au premier appel de cette fonction récursive.
79
* @return  string  une liste de listes XHTML représentant le plan du site.
79
* @return  string  une liste de listes XHTML représentant le plan du site.
80
*/
80
*/
81
function afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_courant_id = '', $premier_appel = true)
81
function afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_courant_id = '', $premier_appel = true)
82
{
82
{
83
    // Initialisation de variable.
83
    // Initialisation de variable.
84
    $objet_pear_db =& $GLOBALS['_GEN_commun']['pear_db'];
84
    $objet_pear_db =& $_GEN_commun['pear_db'];
85
    $vei_numero = $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_VEI_']['nom_fonction']];
85
    $vei_numero = $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_VEI_']['nom_fonction']];
86
    if (isset( $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu)) {
86
    if (isset($_GEN_commun['info_menu']->gm_id_menu)) {
87
    	(empty($menu_courant_id)) ? $menu_courant_id = $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu : '';
87
    	(empty($menu_courant_id)) ? $menu_courant_id = $_GEN_commun['info_menu']->gm_id_menu : '';
88
    }
88
    }
Line 89... Line 89...
89
    $vei = '';
89
    $vei = '';
90
    
90
    
91
    // Gestion des erreurs
91
    // Gestion des erreurs
Line 96... Line 96...
96
        return $vei;
96
        return $vei;
97
    }
97
    }
Line 98... Line 98...
98
    
98
    
99
    // Début contruction du vei
99
    // Début contruction du vei
100
    $menu_pere_id = GEN_lireIdentifiantMenuPere($menu_courant_id, $objet_pear_db);
100
    $menu_pere_id = GEN_lireIdentifiantMenuPere($menu_courant_id, $objet_pear_db);
101
    // Récupération des infos sur sur l'entrée du menu à afficher
101
    // Récupération des infos sur sur l'entrée du menu à afficher
102
    
102
    
103
    // GEN_I18N_ID_DEFAUT;
103
    // GEN_I18N_ID_DEFAUT;
104
	
104
	
105
	
105
	
106
	$id_langue = $GLOBALS['_GEN_commun']['i18n'];
106
	$id_langue = $_GEN_commun['i18n'];
107
    
107
    
108
	if (isset($id_langue) && ($id_langue!='')) {
108
	if (isset($id_langue) && ($id_langue!='')) {
109
		$langue_test=$id_langue;
109
		$langue_test=$id_langue;
110
	} else {
110
	} else {
111
		$langue_test=GEN_I18N_ID_DEFAUT;
111
		$langue_test = GEN_I18N_ID_DEFAUT;
112
	}
112
	}
113
    
113
    
114
    $requete_traduction =   'SELECT gmr_id_menu_02,  gm_ce_i18n '.
114
    $requete_traduction =   'SELECT gmr_id_menu_02,  gm_ce_i18n '.
115
                            'FROM  gen_menu_relation, gen_menu '.
115
                            'FROM  gen_menu_relation, gen_menu '.
116
                            'WHERE '.$menu_courant_id.' = gmr_id_menu_01 ' .
116
                            'WHERE '.$menu_courant_id.' = gmr_id_menu_01 ' .
117
                            'AND  gmr_id_menu_02  = gm_id_menu   '.
117
                            'AND  gmr_id_menu_02  = gm_id_menu   '.
118
                            'AND  gmr_id_valeur  = 2 '.// 2 = "avoir traduction"
118
                            'AND  gmr_id_valeur  = 2 '.// 2 = "avoir traduction"
119
                            'AND gm_ce_i18n = "'.$langue_test.'" ';
119
                            'AND gm_ce_i18n = "'.$langue_test.'" ';
120
	$resultat_traduction = 	$objet_pear_db->query($requete_traduction);
120
	$resultat_traduction = 	$objet_pear_db->query($requete_traduction);
121
			        (DB::isError($resultat_traduction))             ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
121
			        (DB::isError($resultat_traduction))             ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_traduction->getMessage(), $requete_traduction))
122
			                : '';
122
			                : '';
123
 
123
 
124
	if ($resultat_traduction->numRows() > 0) {
124
	if ($resultat_traduction->numRows() > 0) {
125
		$ligne_resultat_traduction=$resultat_traduction->fetchRow(DB_FETCHMODE_ASSOC);
125
		$ligne_resultat_traduction=$resultat_traduction->fetchRow(DB_FETCHMODE_ASSOC);
126
		$menu_courant_id=$ligne_resultat_traduction['gmr_id_menu_02'];
126
		$menu_courant_id=$ligne_resultat_traduction['gmr_id_menu_02'];
Line 127... Line 127...
127
	}          
127
	}          
128
    
128
    
129
    $menu_info = GEN_lireInfoMenu($objet_pear_db, $menu_courant_id, DB_FETCHMODE_ASSOC);
129
    $menu_info = GEN_lireInfoMenu($objet_pear_db, $menu_courant_id, DB_FETCHMODE_ASSOC);
130
    // Préparation d'une entrée dans la liste du menu
130
    // Préparation d'une entrée dans la liste du menu
Line 138... Line 138...
138
    }
138
    }
139
    $menu_texte_title = '';
139
    $menu_texte_title = '';
140
    if (($menu_texte_title = htmlentities($menu_info['gm_description_resume'])) != '') {
140
    if (($menu_texte_title = htmlentities($menu_info['gm_description_resume'])) != '') {
141
        $menu_texte_title = 'title="'.$raccourci_txt.$menu_texte_title.'" ';;
141
        $menu_texte_title = 'title="'.$raccourci_txt.$menu_texte_title.'" ';;
142
    }
142
    }
143
    
143
    
144
    // Création de l'url du menu courant
144
    // Création de l'url du menu courant
145
    $une_url =& new Pap_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
145
    $une_url =& new Pap_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
146
    $une_url->setId($menu_courant_id);
146
    $une_url->setId($menu_courant_id);
147
    $menu_url = $une_url->getURL();
147
    $menu_url = $une_url->getURL();
148
    
148
    
149
    if ($menu_pere_id != 0) {
149
    if ($menu_pere_id != 0) {
150
        // Ce n'est pas le menu racine : nous continuons
150
        // Ce n'est pas le menu racine : nous continuons
151
        $vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
151
        $vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
152
        $vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a> >>> '."\n";
152
        $vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a> >>> '."\n";
153
        $vei .= afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_pere_id, false);
153
        $vei .= afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_pere_id, false);
154
    } else {
154
    } else {
155
        // C'est le menu racine : nous nous arrêtons
155
        // C'est le menu racine : nous nous arrêtons
156
        $vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
156
        $vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
157
        $vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a>'."\n";
157
        $vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a>'."\n";
158
    }
158
    }
Line 159... Line 159...
159
    
159
    
160
    // Retour du VEI après la recherche récursive des liens
160
    // Retour du VEI après la recherche récursive des liens
161
    if ($premier_appel) {
161
    if ($premier_appel) {
162
        $tab_vei = explode(' >>> ', $vei);
162
        $tab_vei = explode(' >>> ', $vei);
163
        // Récupération des liens pour les inverser et créer le VEI
163
        // Récupération des liens pour les inverser et créer le VEI
164
        $retour = '';
164
        $retour = '';
165
        for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) {
165
        for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) {
166
            if ($i == 0) {
166
            if ($i == 0) {
167
                // Supprime le lien pour le nom du menu courant
167
                // Supprime le lien pour le nom du menu courant
168
                $tab_txt_capture='';
168
                $tab_txt_capture='';
169
                preg_match("/>(.*)<\/a>/", $tab_vei[$i], $tab_txt_capture);
169
                preg_match("/>(.*)<\/a>/", $tab_vei[$i], $tab_txt_capture);
170
                $retour .= $tab_txt_capture[1];
170
                $retour .= $tab_txt_capture[1];
171
            } else {
171
            } else {
172
                $retour .= $tab_vei[$i];
172
                $retour .= $tab_vei[$i];
173
            }
173
            }
174
            // Ajout du séparateur
174
            // Ajout du séparateur
175
            $retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ;
175
            $retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ;
176
        }
176
        }
177
        // Retour de la chaine de liens et de textes du VEI
177
        // Retour de la chaine de liens et de textes du VEI
178
        return $retour;
178
        return $retour;
179
    }
179
    }
180
    
180
    
181
    return $vei;
181
    return $vei;
182
}
182
}
183
 
183
 
184
// +------------------------------------------------------------------------------------------------------+
184
// +------------------------------------------------------------------------------------------------------+
185
// |                                            PIED du PROGRAMME                                         |
185
// |                                            PIED du PROGRAMME                                         |
186
// +------------------------------------------------------------------------------------------------------+
186
// +------------------------------------------------------------------------------------------------------+
187
 
187
 
188
 
188
 
189
 
189
 
190
/* +--Fin du code ----------------------------------------------------------------------------------------+
190
/* +--Fin du code ----------------------------------------------------------------------------------------+
191
*
191
*
-
 
192
* $Log: not supported by cvs2svn $
-
 
193
* Revision 1.10  2006/04/28 12:41:49  florian
-
 
194
* corrections erreurs chemin
192
* $Log: not supported by cvs2svn $
195
*
193
* Revision 1.9  2006/03/02 10:49:49  ddelon
196
* Revision 1.9  2006/03/02 10:49:49  ddelon
194
* Fusion branche multilinguisme dans branche principale
197
* Fusion branche multilinguisme dans branche principale
195
*
198
*
196
* Revision 1.8.2.1  2006/02/28 14:02:10  ddelon
199
* Revision 1.8.2.1  2006/02/28 14:02:10  ddelon
Line 221... Line 224...
221
* Changement de nom et d'arborescence de Genesia en Papyrus.
224
* Changement de nom et d'arborescence de Genesia en Papyrus.
222
*
225
*
223
* Revision 1.4  2004/05/05 14:33:19  jpm
226
* Revision 1.4  2004/05/05 14:33:19  jpm
224
* Gestion de l'indication de langue dans l'url.
227
* Gestion de l'indication de langue dans l'url.
225
* Utile que si on veut forcer la langue.
228
* Utile que si on veut forcer la langue.
226
*
229
*
227
* Revision 1.2  2004/05/05 06:44:33  jpm
230
* Revision 1.2  2004/05/05 06:44:33  jpm
228
* Complément des commentaires indiquant les paquetages nécessaire à l'applette.
231
* Complément des commentaires indiquant les paquetages nécessaire à l'applette.
229
*
232
*
230
* Revision 1.1  2004/05/05 06:39:18  jpm
233
* Revision 1.1  2004/05/05 06:39:18  jpm
231
* Transformation en applette de la fonction générant le "vous êtes ici".
234
* Transformation en applette de la fonction générant le "vous êtes ici".
232
*
235
*
233
*
236
*
234
* +-- Fin du code ----------------------------------------------------------------------------------------+
237
* +-- Fin du code ----------------------------------------------------------------------------------------+
235
*/
238
*/
236
?>
239
?>