Subversion Repositories Applications.papyrus

Rev

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

Rev 448 Rev 754
Line 19... Line 19...
19
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | You should have received a copy of the GNU Lesser General Public                                     |
20
// | License along with this library; if not, write to the Free Software                                  |
20
// | License along with this library; if not, write to the Free Software                                  |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
22
// |                                                                                                      |
22
// |                                                                                                      |
23
// +------------------------------------------------------------------------------------------------------+
23
// +------------------------------------------------------------------------------------------------------+
24
// CVS : $Id: pap_initialise_info.inc.php,v 1.23 2005-09-22 14:02:49 ddelon Exp $
24
// CVS : $Id: pap_initialise_info.inc.php,v 1.24 2006-03-02 10:49:49 ddelon Exp $
25
/**
25
/**
26
*Initialisation de Papyrus : vérification et récupération de paramètres généraux.
26
*Initialisation de Papyrus : vérification et récupération de paramètres généraux.
27
*
27
*
28
* La page contient le code initialisant l'éxecution du rendu d'une page par Papyrus.
28
* La page contient le code initialisant l'éxecution du rendu d'une page par Papyrus.
29
* Nous y trouvons la recherche des informations disponibles sur :
29
* Nous y trouvons la recherche des informations disponibles sur :
Line 39... Line 39...
39
*@author            Jean-Pascal MILCENT <jpm@tela-botanica.org>
39
*@author            Jean-Pascal MILCENT <jpm@tela-botanica.org>
40
//Autres auteurs :
40
//Autres auteurs :
41
*@author            Alexandre GRANIER <alex@tela-botanica.org>
41
*@author            Alexandre GRANIER <alex@tela-botanica.org>
42
*@author            Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
42
*@author            Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
43
*@copyright         Tela-Botanica 2000-2004
43
*@copyright         Tela-Botanica 2000-2004
44
*@version           $Revision: 1.23 $ $Date: 2005-09-22 14:02:49 $
44
*@version           $Revision: 1.24 $ $Date: 2006-03-02 10:49:49 $
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
46
*/
46
*/
Line 47... Line 47...
47
 
47
 
48
// +------------------------------------------------------------------------------------------------------+
48
// +------------------------------------------------------------------------------------------------------+
Line 60... Line 60...
60
// +------------------------------------------------------------------------------------------------------+
60
// +------------------------------------------------------------------------------------------------------+
61
// |                                            CORPS du PROGRAMME                                        |
61
// |                                            CORPS du PROGRAMME                                        |
62
// +------------------------------------------------------------------------------------------------------+
62
// +------------------------------------------------------------------------------------------------------+
Line 63... Line 63...
63
 
63
 
64
// +------------------------------------------------------------------------------------------------------+
64
// +------------------------------------------------------------------------------------------------------+
65
// Gestion des sites : disponiblent sur le serveur courant.
65
// Gestion des sites : disponibles sur le serveur courant.
-
 
66
// Liste des catégories de site à prendre en compte :
66
// Liste des catégories de site à prendre en compte :
67
// Pas de site, ni de menu dans l'URL, recherche du site par défaut
67
$site_liste_id = '102, 103';// 102 = site "principal" et 103 = site "externe"
68
$site_liste_id = '102, 103';// 102 = site "principal" et 103 = site "externe"
68
if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (! isset($_GET[GEN_URL_CLE_MENU]) || empty($_GET[GEN_URL_CLE_MENU])) ) {
69
if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (! isset($_GET[GEN_URL_CLE_MENU]) || empty($_GET[GEN_URL_CLE_MENU])) ) {
69
    $requete =  'SELECT gen_site.*, GSR02.* '.
70
    $requete =  'SELECT gen_site.*, GSR02.* '.
70
                'FROM gen_site, gen_site_relation AS GSR01, gen_site_relation AS GSR02 '.
71
                'FROM gen_site, gen_site_relation AS GSR01, gen_site_relation AS GSR02 '.
71
                'WHERE GSR01.gsr_id_site_01 = GSR01.gsr_id_site_02 '.
72
                'WHERE GSR01.gsr_id_site_01 = GSR01.gsr_id_site_02 '.
72
                'AND GSR01.gsr_id_valeur = 101 '.// 101 = site défaut
73
                'AND GSR01.gsr_id_valeur = 101 '.// 101 = site défaut
73
                'AND GSR01.gsr_id_site_01 = gs_id_site '.
74
                'AND GSR01.gsr_id_site_01 = gs_id_site '.
74
                'AND GSR02.gsr_id_site_01 = GSR02.gsr_id_site_02 '.
75
                'AND GSR02.gsr_id_site_01 = GSR02.gsr_id_site_02 '.
75
                'AND GSR02.gsr_id_valeur IN ('.$site_liste_id.') '.
76
                'AND GSR02.gsr_id_valeur IN ('.$site_liste_id.') '.
76
                'AND GSR02.gsr_id_site_01 = gs_id_site';
77
                'AND GSR02.gsr_id_site_01 = gs_id_site';
77
    
78
 
78
    $resultat = $db->query($requete);
79
    $resultat = $db->query($requete);
79
    if (DB::isError($resultat)) {
80
    if (DB::isError($resultat)) {
80
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
81
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
81
    }
82
    }
82
    
83
 
83
    // Aucun site trouvé
84
    // Aucun site trouvé
84
    if ($resultat->numRows() == 0) {
85
    if ($resultat->numRows() == 0) {
85
        // Appel à l'application Installateur si nécessaire
86
        // Appel à l'application Installateur si nécessaire
86
        /** <br> Inclusion du programme Installateur de Papyrus.
87
        /** <br> Inclusion du programme Installateur de Papyrus.
Line 97... Line 98...
97
    if (GEN_URL_ID_TYPE_SITE == 'int') {
98
    if (GEN_URL_ID_TYPE_SITE == 'int') {
98
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_num;
99
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_num;
99
    } else {
100
    } else {
100
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_alpha;
101
        $_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_alpha;
101
    }
102
    }
-
 
103
 // Le code du menu est présent dans l'url mais pas celui du site
102
} else if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (isset($_GET[GEN_URL_CLE_MENU]) || !empty($_GET[GEN_URL_CLE_MENU])) ) {
104
} else if ( (! isset($_GET[GEN_URL_CLE_SITE]) || empty($_GET[GEN_URL_CLE_SITE])) && (isset($_GET[GEN_URL_CLE_MENU]) || !empty($_GET[GEN_URL_CLE_MENU])) ) {
103
    // Le code du menu est présent dans l'url mais pas celui du site
-
 
104
    // Nou$s récupérons les infos du menu et du sites dans la variable globale de Papyrus.
105
    // Nous récupérons les infos du menu et du sites dans la variable globale de Papyrus.
105
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
106
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
106
    // Récupération des informations sur le menu demandé
107
    // Récupération des informations sur le menu demandé
107
    $requete =  'SELECT * '.
108
    $requete =  'SELECT * '.
108
                'FROM gen_menu '.
109
                'FROM gen_menu '.
109
                'WHERE ';
110
                'WHERE ';
Line 113... Line 114...
113
 
114
 
114
    $resultat = $db->query($requete);
115
    $resultat = $db->query($requete);
115
    (DB::isError($resultat))
116
    (DB::isError($resultat))
116
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
117
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
117
       : '';
118
       : '';
118
    
119
 
119
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
120
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
120
    $resultat->free();
121
    $resultat->free();
121
    if ($_GEN_commun['info_menu']->gm_ce_site != 0) {
122
    if ($_GEN_commun['info_menu']->gm_ce_site != 0) {
122
        // Récupération des infos du site
123
        // Récupération des infos du site
123
        $requete =  'SELECT * '.
124
        $requete =  'SELECT * '.
124
                    'FROM gen_site, gen_site_relation '.
125
                    'FROM gen_site, gen_site_relation '.
125
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
126
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
126
                    'AND gsr_id_valeur IN ('.$site_liste_id.') '.
127
                    'AND gsr_id_valeur IN ('.$site_liste_id.') '.
127
                    'AND gsr_id_site_01 = gs_id_site '.
128
                    'AND gsr_id_site_01 = gs_id_site '.
128
                    'AND gs_id_site = '. $_GEN_commun['info_menu']->gm_ce_site;
129
                    'AND gs_id_site = '. $_GEN_commun['info_menu']->gm_ce_site;
129
        
130
 
130
        $resultat = $db->query($requete);
131
        $resultat = $db->query($requete);
131
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
132
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
132
        
133
 
133
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
134
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
134
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
135
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
135
            ? $_GEN_commun['info_site']->gs_code_num
136
            ? $_GEN_commun['info_site']->gs_code_num
136
            : $_GEN_commun['info_site']->gs_code_alpha;
137
            : $_GEN_commun['info_site']->gs_code_alpha;
Line 140... Line 141...
140
        $requete =  'SELECT * '.
141
        $requete =  'SELECT * '.
141
                    'FROM gen_site, gen_site_relation '.
142
                    'FROM gen_site, gen_site_relation '.
142
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
143
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
143
                    'AND gsr_id_valeur = 101 '.
144
                    'AND gsr_id_valeur = 101 '.
144
                    'AND gsr_id_site_01 = gs_id_site ';
145
                    'AND gsr_id_site_01 = gs_id_site ';
145
        
146
 
146
        $resultat = $db->query($requete);
147
        $resultat = $db->query($requete);
147
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
148
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
148
        
149
 
149
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
150
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
150
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
151
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
151
            ? $_GEN_commun['info_site']->gs_code_num
152
            ? $_GEN_commun['info_site']->gs_code_num
152
            : $_GEN_commun['info_site']->gs_code_alpha;
153
            : $_GEN_commun['info_site']->gs_code_alpha;
153
        $resultat->free();
154
        $resultat->free();
154
    }
155
    }
155
} else {
156
} else {
156
    // Récupération de la valeur identifiant le site depuis l'url
157
    // Récupération de la valeur identifiant le site depuis l'url
157
    $_GEN_commun['url_site'] = $_GET[GEN_URL_CLE_SITE];
158
    $_GEN_commun['url_site'] = $_GET[GEN_URL_CLE_SITE];
158
    
159
 
159
    // Récupération des informations sur le site
160
    // Récupération des informations sur le site
160
    $requete =  'SELECT * '.
161
    $requete =  'SELECT * '.
161
                'FROM gen_site, gen_site_relation '.
162
                'FROM gen_site, gen_site_relation '.
162
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
163
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
163
                'AND gsr_id_valeur IN ('.$site_liste_id.') '.
164
                'AND gsr_id_valeur IN ('.$site_liste_id.') '.
164
                'AND gsr_id_site_01 = gs_id_site '.
165
                'AND gsr_id_site_01 = gs_id_site '.
165
                'AND ';
166
                'AND ';
166
    $requete .= (GEN_URL_ID_TYPE_SITE == 'int')
167
    $requete .= (GEN_URL_ID_TYPE_SITE == 'int')
167
        ? 'gs_code_num = '.$_GEN_commun['url_site']
168
        ? 'gs_code_num = '.$_GEN_commun['url_site']
168
        : 'gs_code_alpha = "'.$_GEN_commun['url_site'].'"';
169
        : 'gs_code_alpha = "'.$_GEN_commun['url_site'].'"';
169
    
170
 
170
    $resultat = $db->query($requete);
171
    $resultat = $db->query($requete);
171
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
172
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
172
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
173
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
173
    $resultat->free();
174
    $resultat->free();
174
}
175
}
Line 187... Line 188...
187
    // Gestion de la redirection pour les sites "externes"
188
    // Gestion de la redirection pour les sites "externes"
188
    header('Location:'.$_GEN_commun['info_site']->gs_url);
189
    header('Location:'.$_GEN_commun['info_site']->gs_url);
189
    exit(0);
190
    exit(0);
190
}
191
}
Line 191... Line -...
191
 
-
 
192
// +------------------------------------------------------------------------------------------------------+
-
 
193
// Gestion de l'internationalisation du site
-
 
194
 
-
 
195
// Nous recherchons la valeur de l'internationalisation du site passée dans l'url ou présente
-
 
196
// dans le navigateur du client. Si nous trouvons pas la langue dans l'url, récupération depuis
-
 
197
// le navigateur et comparaison aux langues disponibles pour le site demandé.
-
 
198
// Initialisation de variable :
-
 
199
$i18n = '';
-
 
200
// Nous recherchons les internationalisations disponibles pour le site demandé.
-
 
201
// Si un site possède une traduction, il peut alors posséder des menus traduits.
-
 
202
$requete =  'SELECT gs_ce_i18n '.
-
 
203
            'FROM gen_site, gen_site_relation '.
-
 
204
            'WHERE gsr_id_site_01 = '.$_GEN_commun['info_site']->gs_id_site.' '.
-
 
205
            'AND gsr_id_site_02 = gs_id_site '.
-
 
206
            'AND gsr_id_valeur = 1 '.
-
 
207
            'ORDER BY gsr_ordre';
-
 
208
 
-
 
209
$resultat = $db->query($requete);
-
 
210
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
-
 
211
 
-
 
212
// Récupération de la première valeur de langue d'un site.
-
 
213
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
-
 
214
 
-
 
215
if (! $ligne) {
-
 
216
    // Pas de traduction pour le site: nous regardons si le site possede une valeur d'i18n.
-
 
217
    if (! empty($_GEN_commun['info_site']->gs_ce_i18n) ) {
-
 
218
        $i18n_possible = array($_GEN_commun['info_site']->gs_ce_i18n => true);
-
 
219
    } else {
-
 
220
        // Sinon utilisation de la valeur par défaut définit dans le fichier de config.
-
 
221
        $i18n_possible = array(GEN_I18N_ID_DEFAUT => true);
-
 
222
    }
-
 
223
    // Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
-
 
224
    $i18n = HTTP::negotiateLanguage($i18n_possible, GEN_I18N_ID_DEFAUT);
-
 
225
} else {
-
 
226
    // La première traduction du site
-
 
227
    // peut être utilisé comme valeur par défaut.
-
 
228
    $i18n_site_url = $ligne->gs_ce_i18n;
-
 
229
    // Stockage des valeurs de l'i18n dans un tableau
-
 
230
    $aso_i18n_site = array();
-
 
231
    $aso_i18n_site[$_GEN_commun['info_site']->gs_ce_i18n] = true;
-
 
232
    $aso_i18n_site[$ligne->gs_ce_i18n] = true;
-
 
233
    
-
 
234
    while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
-
 
235
        $aso_i18n_site[$ligne->gs_ce_i18n] = true;
-
 
236
    }
-
 
237
    $resultat->free();
-
 
238
    // Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
-
 
239
    $i18n = HTTP::negotiateLanguage($aso_i18n_site, $i18n_site_url);
-
 
240
}
-
 
241
// Nous stockons la valeur trouvé pour l'url demandée dans la variable globale de Génésia.
-
 
242
$_GEN_commun['i18n'] = $i18n;
192
 
243
// Recherche de la présence de la valeur d'i18n dans l'url
193
// Recherche de la présence de la valeur d'i18n dans l'url
244
if ( (! isset($_GET[GEN_URL_CLE_I18N])) || (empty($_GET[GEN_URL_CLE_I18N])) ) {
194
if ( (isset($_GET[GEN_URL_CLE_I18N])) && (!empty($_GET[GEN_URL_CLE_I18N])) ) {
245
    $_GEN_commun['url_i18n'] = '';
195
    $_GEN_commun['i18n'] = $_GET[GEN_URL_CLE_I18N];
246
} else {
-
 
247
    // L'i18n est trouvé dans l'url, nous écrasons donc la valeur i18n.
-
 
248
    $_GEN_commun['url_i18n'] = $_GET[GEN_URL_CLE_I18N];
196
} else {
249
    $_GEN_commun['i18n'] = $_GEN_commun['url_i18n'];
197
  $_GEN_commun['i18n'] = GEN_I18N_ID_DEFAUT;
Line -... Line 198...
-
 
198
}
-
 
199
 
-
 
200
//print "hola";
-
 
201
//print $_GEN_commun['i18n'];
250
}
202
//print "hola";
251
 
203
 
252
// Nous récupérons des informations sur l'internationalisation
204
// Nous récupérons des informations sur l'internationalisation
253
$requete =  'SELECT * '.
205
$requete =  'SELECT * '.
Line 259... Line 211...
259
 
211
 
260
$_GEN_commun['info_i18n'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
212
$_GEN_commun['info_i18n'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
Line 261... Line -...
261
$resultat->free();
-
 
262
 
-
 
263
 
-
 
264
//Gestion de l'erreur aucune internationalisation trouvable.
-
 
265
if (empty($_GEN_commun['i18n'])) {
-
 
266
    die('ERREUR Génésia : valeur internationalisation introuvable. <br />'.
-
 
267
        'Ligne n° : '. __LINE__ .'<br />'.
-
 
268
        'Fichier : '. __FILE__ );
213
$resultat->free();
269
}
214
 
270
 
215
 
271
// Récupération des informations sur la langue
216
// Récupération des informations sur la langue
272
$requete =  'SELECT * '.
217
$requete =  'SELECT * '.
Line 298... Line 243...
298
                'FROM gen_menu, gen_menu_relation '.
243
                'FROM gen_menu, gen_menu_relation '.
299
                'WHERE gm_ce_site = '.$_GEN_commun['info_site']->gs_id_site.' '.
244
                'WHERE gm_ce_site = '.$_GEN_commun['info_site']->gs_id_site.' '.
300
                'AND gmr_id_menu_01 = gm_id_menu '.
245
                'AND gmr_id_menu_01 = gm_id_menu '.
301
                'AND gmr_id_menu_01 = gmr_id_menu_02 '.
246
                'AND gmr_id_menu_01 = gmr_id_menu_02 '.
302
                'AND gmr_id_valeur = 101 ';// 101 = menu par "defaut"
247
                'AND gmr_id_valeur = 101 ';// 101 = menu par "defaut"
303
    
248
 
304
    $resultat = $db->query($requete);
249
    $resultat = $db->query($requete);
305
    (DB::isError($resultat))
250
    (DB::isError($resultat))
306
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
251
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
307
        : '';
252
        : '';
308
    // Nous avons trouvé un menu "défaut" pour le site courant.
253
    // Nous avons trouvé un menu "défaut" pour le site courant.
309
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
254
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
310
    $resultat->free();
255
    $resultat->free();
311
  
256
 
312
    if (isset($_GEN_commun['url_menu'])) {
257
    if (isset($_GEN_commun['url_menu'])) {
313
	    // Stockage du code du menu demandée dans la variable globale de Papyrus.
258
	    // Stockage du code du menu demandée dans la variable globale de Papyrus.
314
	    if (GEN_URL_ID_TYPE_MENU == 'int') {
259
	    if (GEN_URL_ID_TYPE_MENU == 'int') {
315
	        $_GEN_commun['url_menu'] = $_GEN_commun['info_menu']->gm_code_num;
260
	        $_GEN_commun['url_menu'] = $_GEN_commun['info_menu']->gm_code_num;
316
	    } else {
261
	    } else {
Line 322... Line 267...
322
else
267
else
323
if (! isset($_GET['url_menu']) && empty($_GEN_commun['url_menu'])) {
268
if (! isset($_GET['url_menu']) && empty($_GEN_commun['url_menu'])) {
324
    // Le code du menu est présent dans l'url et il n'a pas encore été récupéré
269
    // Le code du menu est présent dans l'url et il n'a pas encore été récupéré
325
    // Nous le récupérons dans la variable globale de Papyrus.
270
    // Nous le récupérons dans la variable globale de Papyrus.
326
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
271
    $_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
327
    
272
 
328
    // Récupération des informations sur le menu demandé
273
    // Récupération des informations sur le menu demandé
329
    $requete = 'SELECT * '.
274
    $requete = 'SELECT * '.
330
                'FROM gen_menu '.
275
                'FROM gen_menu '.
331
                'WHERE ';
276
                'WHERE ';
332
    $requete .= (GEN_URL_ID_TYPE_MENU == 'int')
277
    $requete .= (GEN_URL_ID_TYPE_MENU == 'int')
333
        ? 'gm_code_num = '.$_GEN_commun['url_menu']
278
        ? 'gm_code_num = '.$_GEN_commun['url_menu']
334
        : 'gm_code_alpha = "'.$_GEN_commun['url_menu'].'"';
279
        : 'gm_code_alpha = "'.$_GEN_commun['url_menu'].'"';
335
    
280
 
336
    $resultat = $db->query($requete);
281
    $resultat = $db->query($requete);
337
    (DB::isError($resultat))
282
    (DB::isError($resultat))
338
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
283
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
339
        : '';
284
        : '';
340
    
285
 
341
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
286
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
342
    $resultat->free();
287
    $resultat->free();
343
}
288
}
Line 344... Line 289...
344
 
289
 
345
// +------------------------------------------------------------------------------------------------------+
290
// +------------------------------------------------------------------------------------------------------+
Line 346... Line 291...
346
// Gestion des traductions
291
// Gestion des traductions
347
 
292
 
-
 
293
// Si le résultat de la négociation de l'internationalisation donne une langue différente
348
// Si le résultat de la négociation de l'internationalisation donne une langue différente
294
//  de celle du site principal, nous récupérons les éventuelles valeurs traduite pour le site.
349
//  de celle du site principal, nous récupérons les éventuelles valeurs traduite pour le site.
295
 
350
if ($_GEN_commun['i18n'] != $_GEN_commun['info_site']->gs_ce_i18n) {
296
if ($_GEN_commun['i18n'] != $_GEN_commun['info_site']->gs_ce_i18n) {
351
    // Récupération des informations sur la traduction du site
297
    // Récupération des informations sur la traduction du site
352
    $requete =  'SELECT * '.
298
    $requete =  'SELECT * '.
353
                'FROM gen_site '.
299
                'FROM gen_site '.
354
                'WHERE gs_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
300
                'WHERE gs_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
355
                'AND gs_code_alpha = "'.$_GEN_commun['info_site']->gs_code_alpha.'"';
301
                'AND gs_code_alpha = "'.$_GEN_commun['info_site']->gs_code_alpha.'"';
356
    
302
 
357
    $resultat = $db->query($requete);
303
    $resultat = $db->query($requete);
358
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
304
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
359
    
305
 
360
    // Nous crééons l'entrée 'traduction_info_site' dans _GEN_commun que si nous avons bien trouvé une 
306
    // Nous crééons l'entrée 'traduction_info_site' dans _GEN_commun que si nous avons bien trouvé une
361
    // traduction pour le site. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
307
    // traduction pour le site. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
362
    if ($resultat->numRows() > 0) {
308
    if ($resultat->numRows() > 0) {
363
        $_GEN_commun['traduction_info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
309
        $_GEN_commun['traduction_info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
364
    }
310
    }
Line 365... Line 311...
365
    $resultat->free();
311
    $resultat->free();
366
}
312
}
-
 
313
 
367
 
314
// Si le résultat de la négociation de l'internationalisation donne une langue différente
368
// Si le résultat de la négociation de l'internationalisation donne une langue différente
315
//  de celle du menu, nous récupérons les éventuelles valeurs traduite pour le menu.
369
//  de celle du menu, nous récupérons les éventuelles valeurs traduite pour le menu.
316
 
370
if ((isset($_GEN_commun['info_menu'])) && ($_GEN_commun['i18n'] != $_GEN_commun['info_menu']->gm_ce_i18n)) {
317
if ((isset($_GEN_commun['info_menu'])) && ($_GEN_commun['i18n'] != $_GEN_commun['info_menu']->gm_ce_i18n)) {
371
    // Récupération des informations sur la traduction du menu
318
    // Récupération des informations sur la traduction du menu
372
    $requete =  'SELECT * '.
319
    $requete =  'SELECT * '.
373
                'FROM gen_menu '.
320
                'FROM gen_menu '.
374
                'WHERE gm_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
321
                'WHERE gm_ce_i18n = "'.$_GEN_commun['i18n'].'" '.
375
                'AND gm_code_alpha = "'.$_GEN_commun['info_menu']->gm_code_alpha.'"';
322
                'AND gm_code_alpha = "'.$_GEN_commun['info_menu']->gm_code_alpha.'"';
376
    
323
 
377
    $resultat = $db->query($requete);
324
    $resultat = $db->query($requete);
378
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
325
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
379
    
326
 
380
    // Nous crééons l'entrée 'traduction_info_menu' dans _GEN_commun que si nous avons bien trouvé une 
327
    // Nous crééons l'entrée 'traduction_info_menu' dans _GEN_commun que si nous avons bien trouvé une
381
    // traduction pour le menu. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
328
    // traduction pour le menu. Il faut donc tester l'existence de cette entrée avant de l'utiliser.
382
    if ($resultat->numRows() > 0) {
329
    if ($resultat->numRows() > 0) {
Line 392... Line 339...
392
if (isset($_GEN_commun['info_menu']->gm_id_menu)) {
339
if (isset($_GEN_commun['info_menu']->gm_id_menu)) {
393
    $info_appli_menu = GEN_donnerIdPremiereApplicationLiee($_GEN_commun['info_menu']->gm_id_menu);
340
    $info_appli_menu = GEN_donnerIdPremiereApplicationLiee($_GEN_commun['info_menu']->gm_id_menu);
394
    if (is_array($info_appli_menu)) {
341
    if (is_array($info_appli_menu)) {
395
        $id_application = $info_appli_menu['gm_ce_application'];
342
        $id_application = $info_appli_menu['gm_ce_application'];
396
        $id_menu_actif = $info_appli_menu['gm_id_menu'];
343
        $id_menu_actif = $info_appli_menu['gm_id_menu'];
397
        
344
 
398
        // Si le menu n'a pas d'application lié, on recalcule l'objet $_GEN_commun['info_menu']
345
        // Si le menu n'a pas d'application lié, on recalcule l'objet $_GEN_commun['info_menu']
399
        if ($id_menu_actif != $_GEN_commun['info_menu']->gm_id_menu) {
346
        if ($id_menu_actif != $_GEN_commun['info_menu']->gm_id_menu) {
400
            $requete =  'SELECT gen_menu.* '.
347
            $requete =  'SELECT gen_menu.* '.
401
                        'FROM gen_menu '.
348
                        'FROM gen_menu '.
402
                        'WHERE gm_id_menu = '.$id_menu_actif;
349
                        'WHERE gm_id_menu = '.$id_menu_actif;
403
            
350
 
404
            $resultat = $db->query($requete);
351
            $resultat = $db->query($requete);
405
            (DB::isError($resultat))
352
            (DB::isError($resultat))
406
                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
353
                ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
407
                : '';
354
                : '';
408
            // Nous avons trouvé un menu "défaut" pour le site courant.
355
            // Nous avons trouvé un menu "défaut" pour le site courant.
409
            $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
356
            $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
410
            $resultat->free();
357
            $resultat->free();
411
        }
358
        }
412
        
359
 
413
        
360
 
414
        // Recherche des informations sur l'application liée
361
        // Recherche des informations sur l'application liée
415
        $requete_applicaton =   'SELECT * '.
362
        $requete_applicaton =   'SELECT * '.
416
                                'FROM gen_application '.
363
                                'FROM gen_application '.
417
                                'WHERE gap_id_application = '.$id_application;
364
                                'WHERE gap_id_application = '.$id_application;
418
        
365
 
419
        $resultat_applicaton = $db->query($requete_applicaton);
366
        $resultat_applicaton = $db->query($requete_applicaton);
420
        (DB::isError($resultat_applicaton))
367
        (DB::isError($resultat_applicaton))
421
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_applicaton->getMessage(), $requete_applicaton))
368
            ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat_applicaton->getMessage(), $requete_applicaton))
422
            : '';
369
            : '';
423
        
370
 
424
        $_GEN_commun['info_application'] = $resultat_applicaton->fetchRow(DB_FETCHMODE_OBJECT) ;
371
        $_GEN_commun['info_application'] = $resultat_applicaton->fetchRow(DB_FETCHMODE_OBJECT) ;
425
        $resultat_applicaton->free();
372
        $resultat_applicaton->free();
426
    } else {
373
    } else {
427
        // Gestion des erreurs sur la recherche de l'application liée.
374
        // Gestion des erreurs sur la recherche de l'application liée.
428
        // Finalement il a été décidé de ne pas afficher cette information sous la forme d'erreur.
375
        // Finalement il a été décidé de ne pas afficher cette information sous la forme d'erreur.
Line 433... Line 380...
433
// +------------------------------------------------------------------------------------------------------+
380
// +------------------------------------------------------------------------------------------------------+
434
// Gestion des arguments de l'application
381
// Gestion des arguments de l'application
Line 435... Line 382...
435
 
382
 
436
if (isset($_GEN_commun['info_menu']->gm_application_arguments)) {
383
if (isset($_GEN_commun['info_menu']->gm_application_arguments)) {
437
    $arguments = explode(' ', $_GEN_commun['info_menu']->gm_application_arguments);
384
    $arguments = explode(' ', $_GEN_commun['info_menu']->gm_application_arguments);
438
    
385
 
439
    // Initialisaton de la variable globale $GS_ARGUMENTS
386
    // Initialisaton de la variable globale $GS_ARGUMENTS
440
    $_GEN_commun['info_application']->cache = false;
387
    $_GEN_commun['info_application']->cache = false;
441
    $_GEN_commun['info_application']->cache_duree = 0;
388
    $_GEN_commun['info_application']->cache_duree = 0;
442
    
389
 
443
    for ($i = 0; $i < count($arguments); $i++) {
390
    for ($i = 0; $i < count($arguments); $i++) {
444
        $attr = explode('=', $arguments[$i]);
391
        $attr = explode('=', $arguments[$i]);
445
        
392
 
446
        if ($attr[0] == 'cache_duree') {
393
        if ($attr[0] == 'cache_duree') {
447
            $_GEN_commun['info_application']->cache_duree = $attr[1];
394
            $_GEN_commun['info_application']->cache_duree = $attr[1];
448
            if ($_GEN_commun['info_application']->cache_duree > 0) {
395
            if ($_GEN_commun['info_application']->cache_duree > 0) {
449
                $_GEN_commun['info_application']->cache = true;
396
                $_GEN_commun['info_application']->cache = true;
Line 482... Line 429...
482
 
429
 
483
if ( (isset($_GEN_commun['url_menu'])) && (!empty($_GEN_commun['url_menu'])) ) {
430
if ( (isset($_GEN_commun['url_menu'])) && (!empty($_GEN_commun['url_menu'])) ) {
484
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_MENU, $_GEN_commun['url_menu']);
431
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_MENU, $_GEN_commun['url_menu']);
Line 485... Line -...
485
}
-
 
486
 
-
 
487
if ( (isset($_GEN_commun['url_i18n'])) && (!empty($_GEN_commun['url_i18n'])) ) {
-
 
488
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_I18N, $_GEN_commun['url_i18n']);
-
 
489
}
432
}
490
 
433
 
491
if ( (isset($_GET[GEN_URL_CLE_DATE])) && (!empty($_GET[GEN_URL_CLE_DATE])) ) {
434
if ( (isset($_GET[GEN_URL_CLE_DATE])) && (!empty($_GET[GEN_URL_CLE_DATE])) ) {
492
    $_GEN_commun['url_date'] = $_GET[GEN_URL_CLE_DATE];
435
    $_GEN_commun['url_date'] = $_GET[GEN_URL_CLE_DATE];
Line 498... Line 441...
498
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_FORMAT, $_GEN_commun['url_format']);
441
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_FORMAT, $_GEN_commun['url_format']);
499
}
442
}
Line 500... Line 443...
500
 
443
 
501
/* +--Fin du code ---------------------------------------------------------------------------------------+
444
/* +--Fin du code ---------------------------------------------------------------------------------------+
-
 
445
* $Log: not supported by cvs2svn $
-
 
446
* Revision 1.23.2.2  2005/12/20 14:40:24  ddelon
-
 
447
* Fusion Head vers Livraison
-
 
448
*
-
 
449
* Revision 1.23.2.1  2005/12/01 23:31:57  ddelon
-
 
450
* Merge Head vers multilinguisme
-
 
451
*
-
 
452
* Revision 1.23  2005/09/22 14:02:49  ddelon
-
 
453
* nettoyage annuaire et php5
502
* $Log: not supported by cvs2svn $
454
*
503
* Revision 1.22  2005/09/20 17:01:22  ddelon
455
* Revision 1.22  2005/09/20 17:01:22  ddelon
504
* php5 et bugs divers
456
* php5 et bugs divers
505
*
457
*
506
* Revision 1.21  2005/08/31 17:34:52  ddelon
458
* Revision 1.21  2005/08/31 17:34:52  ddelon