Subversion Repositories Applications.papyrus

Rev

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

Rev 4 Rev 25
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.1 2004-06-15 15:06:25 jpm Exp $
22
// CVS : $Id: vous_etes_ici.php,v 1.2 2004-07-06 17:07:21 jpm 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.1 $ $Date: 2004-06-15 15:06:25 $
42
*@version       $Revision: 1.2 $ $Date: 2004-07-06 17:07:21 $
43
// +------------------------------------------------------------------------------------------------------+
43
// +------------------------------------------------------------------------------------------------------+
44
*/
44
*/
45
 
45
 
46
// +------------------------------------------------------------------------------------------------------+
46
// +------------------------------------------------------------------------------------------------------+
47
// |                                            ENTÊTE du PROGRAMME                                       |
47
// |                                            ENTÊTE du PROGRAMME                                       |
48
// +------------------------------------------------------------------------------------------------------+
48
// +------------------------------------------------------------------------------------------------------+
49
$_GEN_commun['info_applette_nom_fonction'] = 'VEI_afficherVousEtesIci';
49
$_GEN_commun['info_applette_nom_fonction'] = 'VEI_afficherVousEtesIci';
50
$_GEN_commun['info_applette_balise'] = 'VOUS_ETES_ICI';
50
$_GEN_commun['info_applette_balise'] = 'VOUS_ETES_ICI';
51
 
51
 
52
// +------------------------------------------------------------------------------------------------------+
52
// +------------------------------------------------------------------------------------------------------+
53
// |                                            CORPS du PROGRAMME                                        |
53
// |                                            CORPS du PROGRAMME                                        |
54
// +------------------------------------------------------------------------------------------------------+
54
// +------------------------------------------------------------------------------------------------------+
55
 
55
 
56
 
56
 
57
 
57
 
58
// +------------------------------------------------------------------------------------------------------+
58
// +------------------------------------------------------------------------------------------------------+
59
// |                                           LISTE de FONCTIONS                                         |
59
// |                                           LISTE de FONCTIONS                                         |
60
// +------------------------------------------------------------------------------------------------------+
60
// +------------------------------------------------------------------------------------------------------+
61
 
61
 
62
/** Fonction VEI_afficherVousEtesIci() - Déploie le "vous êtes ici" d'un menu.
62
/** Fonction VEI_afficherVousEtesIci() - Déploie le "vous êtes ici" d'un menu.
63
*
63
*
64
* Affiche la suite des menus visité, sous forme de lien, pour arriver
64
* Affiche la suite des menus visité, sous forme de lien, pour arriver
65
* au menu courant visioné par l'utilisateur.
65
* au menu courant visioné par l'utilisateur.
66
* Necessite :
66
* Necessite :
67
* - Constantes et variable de Papyrus.
67
* - Constantes et variable de Papyrus.
68
* - Pear Net_URL
68
* - Pear Net_URL
69
* - Pear DB
69
* - Pear DB
70
*
70
*
71
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction. 
71
* @param  array  tableau d'éventuel arguments présent dans la balise transmis à la fonction. 
72
* @param  array  tableau global de Papyrus.
72
* @param  array  tableau global de Papyrus.
73
* @param int identifiant du menu courant qui représentent la fin du "vous êtes ici".
73
* @param int identifiant du menu courant qui représentent la fin du "vous êtes ici".
74
* @param boolean indique que nous avons à faire au premier appel de cette fonction récursive.
74
* @param boolean indique que nous avons à faire au premier appel de cette fonction récursive.
75
* @return  string  une liste de listes XHTML représentant le plan du site.
75
* @return  string  une liste de listes XHTML représentant le plan du site.
76
*/
76
*/
77
function VEI_afficherVousEtesIci($tab_arguments, $_GEN_commun, $id_menu_courant = '', $premier_appel = true)
77
function VEI_afficherVousEtesIci($tab_arguments, $_GEN_commun, $id_menu_courant = '', $premier_appel = true)
78
{
78
{
79
    // Initialisation de variable.
79
    // Initialisation de variable.
80
    $objet_pear_db = $_GEN_commun['pear_db'];
80
    $objet_pear_db = $_GEN_commun['pear_db'];
81
    (empty($id_menu_courant)) ? $id_menu_courant = $_GEN_commun['info_menu']->gm_id_menu : '';
81
    (empty($id_menu_courant)) ? $id_menu_courant = $_GEN_commun['info_menu']->gm_id_menu : '';
82
    $url_id_type_site = GEN_URL_ID_TYPE_SITE;
82
    $url_id_type_site = GEN_URL_ID_TYPE_SITE;
83
    $url_id_type_menu = GEN_URL_ID_TYPE_MENU;
83
    $url_id_type_menu = GEN_URL_ID_TYPE_MENU;
84
    $url_cle_site = GEN_URL_CLE_SITE;
84
    $url_cle_site = GEN_URL_CLE_SITE;
85
    $url_cle_menu = GEN_URL_CLE_MENU;
85
    $url_cle_menu = GEN_URL_CLE_MENU;
86
    $i18n_url = '';// Evite d'écrire l'i18n dans l'url demandée.
86
    $i18n_url = '';// Evite d'écrire l'i18n dans l'url demandée.
87
    if (!empty($_GEN_commun['url_i18n'])) {
87
    if (!empty($_GEN_commun['url_i18n'])) {
88
        // L'écriture de l'i18n dans les urls des menus est demandée.
88
        // L'écriture de l'i18n dans les urls des menus est demandée.
89
        $i18n_url = $_GEN_commun['url_i18n'];
89
        $i18n_url = $_GEN_commun['url_i18n'];
90
        $url_cle_i18n = GEN_URL_CLE_I18N;
90
        $url_cle_i18n = GEN_URL_CLE_I18N;
91
    }
91
    }
92
    
92
    
93
    
93
    
94
    $vei = '';
94
    $vei = '';
95
    
95
    
96
    $requete =  'SELECT gm_id_menu, gm_ce_i18n, gm_code_num, gm_code_alpha, gm_nom, gmr_id_menu_02 '.
96
    $requete =  'SELECT gm_id_menu, gm_ce_i18n, gm_code_num, gm_code_alpha, gm_nom, gmr_id_menu_02 '.
97
                'FROM gen_menu, gen_menu_relation '.
97
                'FROM gen_menu, gen_menu_relation '.
98
                'WHERE gm_id_menu = '.$id_menu_courant.' '.
98
                'WHERE gm_id_menu = '.$id_menu_courant.' '.
99
                'AND gmr_id_menu_01 = gm_id_menu '.
99
                'AND gmr_id_menu_01 = gm_id_menu '.
100
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
100
                'AND gmr_id_valeur = 1 ';// 1 = avoir "père"
101
    
101
    
102
    $resultat = $objet_pear_db->query($requete);
102
    $resultat = $objet_pear_db->query($requete);
103
    if (DB::isError($resultat)) {
103
    if (DB::isError($resultat)) {
104
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
104
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete));
105
    }
105
    }
106
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
106
    $ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
107
    $resultat->free();
107
    $resultat->free();
108
    
108
    
109
    // Création de l'url du menu courant
109
    // Création de l'url du menu courant
110
    $objet_pear_url = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
110
    $objet_pear_url = & new Net_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
111
    $requete_site_code =    'SELECT gs_code_num, gs_code_alpha '.
111
    $requete_site_code =    'SELECT gs_code_num, gs_code_alpha '.
112
                            'FROM gen_menu, gen_site '.
112
                            'FROM gen_menu, gen_site '.
113
                            'WHERE gm_id_menu = '.$ligne->gm_id_menu.' '.
113
                            'WHERE gm_id_menu = '.$ligne->gm_id_menu.' '.
114
                            'AND gm_ce_site = gs_id_site';
114
                            'AND gm_ce_site = gs_id_site';
115
    
115
    
116
    $resultat_site_code = $objet_pear_db->query($requete_site_code);
116
    $resultat_site_code = $objet_pear_db->query($requete_site_code);
117
    if (DB::isError($resultat_site_code)) {
117
    if (DB::isError($resultat_site_code)) {
118
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_site_code->getMessage(), $requete_site_code));
118
        die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_site_code->getMessage(), $requete_site_code));
119
    }
119
    }
120
    $ligne_site_code = $resultat_site_code->fetchRow(DB_FETCHMODE_OBJECT);
120
    $ligne_site_code = $resultat_site_code->fetchRow(DB_FETCHMODE_OBJECT);
121
    if ($url_id_type_site == 'int') {
121
    if ($url_id_type_site == 'int') {
122
        $objet_pear_url->addQueryString($url_cle_site, $ligne_site_code->gs_code_num);
122
        $objet_pear_url->addQueryString($url_cle_site, $ligne_site_code->gs_code_num);
123
    } else {
123
    } else {
124
        $objet_pear_url->addQueryString($url_cle_site, $ligne_site_code->gs_code_alpha);
124
        $objet_pear_url->addQueryString($url_cle_site, $ligne_site_code->gs_code_alpha);
125
    }
125
    }
126
    if ($url_id_type_menu == 'int') {
126
    if ($url_id_type_menu == 'int') {
127
        $objet_pear_url->addQueryString($url_cle_menu, $ligne->gm_code_num);
127
        $objet_pear_url->addQueryString($url_cle_menu, $ligne->gm_code_num);
128
    } else {
128
    } else {
129
        $objet_pear_url->addQueryString($url_cle_menu, $ligne->gm_code_alpha);
129
        $objet_pear_url->addQueryString($url_cle_menu, $ligne->gm_code_alpha);
130
    }
130
    }
131
    if (!empty($i18n_url)) {
131
    if (!empty($i18n_url)) {
132
        $objet_pear_url->addQueryString($url_cle_i18n, $i18n_url);
132
        $objet_pear_url->addQueryString($url_cle_i18n, $i18n_url);
133
    }
133
    }
134
    $url = $objet_pear_url->getURL();
134
    $url = $objet_pear_url->getURL();
135
    
135
    
136
    if ($ligne->gmr_id_menu_02 != 0) {// C'est le menu racine!
136
    if ($ligne->gmr_id_menu_02 != 0) {// C'est le menu racine!
137
        $vei .= '<a href="'.$url.'">'.$ligne->gm_nom.'</a> >>> ';
137
        $vei .= '<a href="'.$url.'">'.$ligne->gm_nom.'</a> >>> ';
138
        $vei .= VEI_afficherVousEtesIci($tab_arguments, $_GEN_commun, $ligne->gmr_id_menu_02, false);
138
        $vei .= VEI_afficherVousEtesIci($tab_arguments, $_GEN_commun, $ligne->gmr_id_menu_02, false);
139
    } else {
139
    } else {
140
        $vei .= '<a href="'.$url.'">'.$ligne->gm_nom.'</a>';
140
        $vei .= '<a href="'.$url.'">'.$ligne->gm_nom.'</a>';
141
    }
141
    }
142
    
142
    
143
    if ($premier_appel) {
143
    if ($premier_appel) {
144
        $tab_vei = explode(' >>> ', $vei);
144
        $tab_vei = explode(' >>> ', $vei);
145
        $retour = '';
145
        $retour = '';
146
        for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) {
146
        for ($i = (count($tab_vei) - 1); $i >= 0 ;$i--) {
147
            $retour .= $tab_vei[$i];
147
            $retour .= $tab_vei[$i];
148
            $retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ;
148
            $retour .= ($i != 0) ? "\n".'<span class="separateur_vei"> > </span>'."\n" : '' ;
149
        }
149
        }
150
        return $retour;
150
        return $retour;
151
    }
151
    }
152
    
152
    
153
    return $vei;
153
    return $vei;
154
}
154
}
155
 
155
 
156
// +------------------------------------------------------------------------------------------------------+
156
// +------------------------------------------------------------------------------------------------------+
157
// |                                            PIED du PROGRAMME                                         |
157
// |                                            PIED du PROGRAMME                                         |
158
// +------------------------------------------------------------------------------------------------------+
158
// +------------------------------------------------------------------------------------------------------+
159
 
159
 
160
 
160
 
161
 
161
 
162
/* +--Fin du code ----------------------------------------------------------------------------------------+
162
/* +--Fin du code ----------------------------------------------------------------------------------------+
163
*
163
*
164
* $Log: not supported by cvs2svn $
164
* $Log: not supported by cvs2svn $
-
 
165
* Revision 1.1  2004/06/15 15:06:25  jpm
-
 
166
* Changement de nom et d'arborescence de Genesia en Papyrus.
-
 
167
*
165
* Revision 1.4  2004/05/05 14:33:19  jpm
168
* Revision 1.4  2004/05/05 14:33:19  jpm
166
* Gestion de l'indication de langue dans l'url.
169
* Gestion de l'indication de langue dans l'url.
167
* Utile que si on veut forcer la langue.
170
* Utile que si on veut forcer la langue.
168
*
171
*
169
* Revision 1.2  2004/05/05 06:44:33  jpm
172
* Revision 1.2  2004/05/05 06:44:33  jpm
170
* Complément des commentaires indiquant les paquetages nécessaire à l'applette.
173
* Complément des commentaires indiquant les paquetages nécessaire à l'applette.
171
*
174
*
172
* Revision 1.1  2004/05/05 06:39:18  jpm
175
* Revision 1.1  2004/05/05 06:39:18  jpm
173
* Transformation en applette de la fonction générant le "vous êtes ici".
176
* Transformation en applette de la fonction générant le "vous êtes ici".
174
*
177
*
175
*
178
*
176
* +-- Fin du code ----------------------------------------------------------------------------------------+
179
* +-- Fin du code ----------------------------------------------------------------------------------------+
177
*/
180
*/
178
?>
181
?>