Subversion Repositories Applications.papyrus

Rev

Rev 459 | Rev 754 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 jpm 1
<?php
2
/*vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +------------------------------------------------------------------------------------------------------+
4
// | PHP version 4.1                                                                                      |
5
// +------------------------------------------------------------------------------------------------------+
6
// | Copyright (C) 2004 Tela Botanica (accueil@tela-botanica.org)                                         |
7
// +------------------------------------------------------------------------------------------------------+
8
// | This library is free software; you can redistribute it and/or                                        |
9
// | modify it under the terms of the GNU Lesser General Public                                           |
10
// | License as published by the Free Software Foundation; either                                         |
11
// | version 2.1 of the License, or (at your option) any later version.                                   |
12
// |                                                                                                      |
13
// | This library is distributed in the hope that it will be useful,                                      |
14
// | but WITHOUT ANY WARRANTY; without even the implied warranty of                                       |
15
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU                                    |
16
// | Lesser General Public License for more details.                                                      |
17
// |                                                                                                      |
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                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
465 ddelon 22
// CVS : $Id: vous_etes_ici.php,v 1.8 2005-09-26 20:18:27 ddelon Exp $
4 jpm 23
/**
24
* Applette : Vous Etes Ici
25
*
26
* Affiche les liens contenant la suite des menus visités pour arriver
27
* au menu courant visioné par l'utilisateur.
28
* Nécessite :
29
* - Constantes et variable de Papyrus.
30
* - Base de données de Papyrus
31
* - Pear Net_URL
32
* - Pear DB
33
* - API Débogage 1.0
34
*
35
*@package Applette
25 jpm 36
*@subpackage Vous_Etes_Ici
4 jpm 37
//Auteur original :
38
*@author        Jean-Pascal MILCENT <jpm@tela-botanica.org>
39
//Autres auteurs :
40
*@author        Aucun
41
*@copyright     Tela-Botanica 2000-2004
465 ddelon 42
*@version       $Revision: 1.8 $ $Date: 2005-09-26 20:18:27 $
4 jpm 43
// +------------------------------------------------------------------------------------------------------+
44
*/
45
 
46
// +------------------------------------------------------------------------------------------------------+
47
// |                                            ENTÊTE du PROGRAMME                                       |
48
// +------------------------------------------------------------------------------------------------------+
338 jpm 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';
51
 
52
$GLOBALS['_VEI_']['nom_fonction'] = 'afficherVousEtesIci';
53
$_GEN_commun['info_applette_nom_fonction'] = $GLOBALS['_VEI_']['nom_fonction'];
4 jpm 54
$_GEN_commun['info_applette_balise'] = 'VOUS_ETES_ICI';
55
 
56
// +------------------------------------------------------------------------------------------------------+
57
// |                                            CORPS du PROGRAMME                                        |
58
// +------------------------------------------------------------------------------------------------------+
59
 
60
 
61
 
62
// +------------------------------------------------------------------------------------------------------+
63
// |                                           LISTE de FONCTIONS                                         |
64
// +------------------------------------------------------------------------------------------------------+
65
 
338 jpm 66
/** Fonction afficherVousEtesIci() - Déploie le "vous êtes ici" d'un menu.
4 jpm 67
*
68
* Affiche la suite des menus visité, sous forme de lien, pour arriver
69
* au menu courant visioné par l'utilisateur.
70
* Necessite :
71
* - Constantes et variable de Papyrus.
72
* - Pear Net_URL
73
* - Pear DB
74
*
75
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction.
76
* @param  array  tableau global de Papyrus.
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.
79
* @return  string  une liste de listes XHTML représentant le plan du site.
80
*/
338 jpm 81
function afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_courant_id = '', $premier_appel = true)
4 jpm 82
{
83
    // Initialisation de variable.
338 jpm 84
    $objet_pear_db =& $GLOBALS['_GEN_commun']['pear_db'];
85
    $vei_numero = $GLOBALS['_PAPYRUS_']['applette']['comptage'][$GLOBALS['_VEI_']['nom_fonction']];
465 ddelon 86
    if (isset( $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu)) {
87
    	(empty($menu_courant_id)) ? $menu_courant_id = $GLOBALS['_GEN_commun']['info_menu']->gm_id_menu : '';
88
    }
153 jpm 89
    $vei = '';
90
 
91
    // Gestion des erreurs
338 jpm 92
    if (empty($menu_courant_id)) {
214 jpm 93
        if (isset($GLOBALS['_VEI_']['usurpation'])) {
94
            $vei = $GLOBALS['_VEI_']['usurpation'];
95
        }
153 jpm 96
        return $vei;
97
    }
98
 
338 jpm 99
    // Début contruction du vei
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
102
    $menu_info = GEN_lireInfoMenu($objet_pear_db, $menu_courant_id, DB_FETCHMODE_ASSOC);
103
    // Préparation d'une entrée dans la liste du menu
104
    $menu_nom = htmlentities($menu_info['gm_nom']);
105
    $menu_hreflang = htmlentities($menu_info['gm_ce_i18n']);
106
    $menu_accesskey = '';
107
    $raccourci_txt = '';
108
    if (($menu_accesskey = htmlentities($menu_info['gm_raccourci_clavier'])) != '') {
109
        $raccourci_txt = '(Raccourci : '.$menu_accesskey.' ).';
110
        $menu_accesskey = 'accesskey="'.$menu_accesskey.'" ';
111
    }
112
    $menu_texte_title = '';
113
    if (($menu_texte_title = htmlentities($menu_info['gm_description_resume'])) != '') {
114
        $menu_texte_title = 'title="'.$raccourci_txt.$menu_texte_title.'" ';;
115
    }
4 jpm 116
 
117
    // Création de l'url du menu courant
338 jpm 118
    $une_url =& new Pap_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
119
    $une_url->setId($menu_courant_id);
120
    $menu_url = $une_url->getURL();
4 jpm 121
 
338 jpm 122
    if ($menu_pere_id != 0) {
123
        // Ce n'est pas le menu racine : nous continuons
459 florian 124
        $vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
338 jpm 125
        $vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a> >>> '."\n";
126
        $vei .= afficherVousEtesIci($tab_arguments, $_GEN_commun, $menu_pere_id, false);
127
    } else {
128
        // C'est le menu racine : nous nous arrêtons
459 florian 129
        $vei .= '<a id="vei_menu_'.$vei_numero.'_'.$menu_courant_id.'" href="'.$menu_url.'" ';
338 jpm 130
        $vei .= 'hreflang="'.$menu_hreflang.'" '.$menu_texte_title.$menu_accesskey.'>'.$menu_nom.'</a>'."\n";
4 jpm 131
    }
57 jpm 132
 
133
    // Retour du VEI après la recherche récursive des liens
4 jpm 134
    if ($premier_appel) {
135
        $tab_vei = explode(' >>> ', $vei);
57 jpm 136
        // Récupération des liens pour les inverser et créer le VEI
4 jpm 137
        $retour = '';
57 jpm 138
        for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) {
139
            if ($i == 0) {
140
                // Supprime le lien pour le nom du menu courant
141
                preg_match("/>(.*)<\/a>/", $tab_vei[$i], $tab_txt_capture);
142
                $retour .= $tab_txt_capture[1];
143
            } else {
144
                $retour .= $tab_vei[$i];
145
            }
146
            // Ajout du séparateur
4 jpm 147
            $retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ;
57 jpm 148
        }
149
        // Retour de la chaine de liens et de textes du VEI
4 jpm 150
        return $retour;
151
    }
152
 
153
    return $vei;
154
}
155
 
156
// +------------------------------------------------------------------------------------------------------+
157
// |                                            PIED du PROGRAMME                                         |
158
// +------------------------------------------------------------------------------------------------------+
159
 
160
 
161
 
162
/* +--Fin du code ----------------------------------------------------------------------------------------+
163
*
164
* $Log: not supported by cvs2svn $
465 ddelon 165
* Revision 1.7  2005/09/23 14:21:18  florian
166
* compatibilité XHTML
167
*
459 florian 168
* Revision 1.6  2005/04/14 16:38:02  jpm
169
* Ajout de la gestion des URL avec la classe Pap_URL de Papyrus.
170
*
338 jpm 171
* Revision 1.5  2004/12/06 19:39:57  jpm
172
* Gestion de l'usurpation de VEI.
173
*
214 jpm 174
* Revision 1.4  2004/11/10 19:41:27  jpm
175
* Correction bogue quand pas de menu par défaut.
176
*
153 jpm 177
* Revision 1.3  2004/09/23 17:57:19  jpm
178
* La page active n'est pas afficher sous forme de lien mais sous forme de texte.
179
*
57 jpm 180
* Revision 1.2  2004/07/06 17:07:21  jpm
181
* Modification de la documentation pour une mailleur analyse par PhpDocumentor.
182
*
25 jpm 183
* Revision 1.1  2004/06/15 15:06:25  jpm
184
* Changement de nom et d'arborescence de Genesia en Papyrus.
185
*
4 jpm 186
* Revision 1.4  2004/05/05 14:33:19  jpm
187
* Gestion de l'indication de langue dans l'url.
188
* Utile que si on veut forcer la langue.
189
*
190
* Revision 1.2  2004/05/05 06:44:33  jpm
191
* Complément des commentaires indiquant les paquetages nécessaire à l'applette.
192
*
193
* Revision 1.1  2004/05/05 06:39:18  jpm
194
* Transformation en applette de la fonction générant le "vous êtes ici".
195
*
196
*
197
* +-- Fin du code ----------------------------------------------------------------------------------------+
198
*/
459 florian 199
?>