Subversion Repositories Applications.papyrus

Rev

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

Rev 754 Rev 1029
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.24 2006-03-02 10:49:49 ddelon Exp $
24
// CVS : $Id: pap_initialise_info.inc.php,v 1.25 2006-10-11 18:04:11 jp_milcent 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.24 $ $Date: 2006-03-02 10:49:49 $
44
*@version           $Revision: 1.25 $ $Date: 2006-10-11 18:04:11 $
45
// +------------------------------------------------------------------------------------------------------+
45
// +------------------------------------------------------------------------------------------------------+
46
*/
46
*/
Line 47... Line 47...
47
 
47
 
48
// +------------------------------------------------------------------------------------------------------+
48
// +------------------------------------------------------------------------------------------------------+
Line 54... Line 54...
54
require_once PAP_CHEMIN_API_PEAR.'Net/URL.php';
54
require_once PAP_CHEMIN_API_PEAR.'Net/URL.php';
55
/** Inclusion de la bibliothèque de fonctions servant à l'initialisation des variables globales de Papyrus. */
55
/** Inclusion de la bibliothèque de fonctions servant à l'initialisation des variables globales de Papyrus. */
56
require_once GEN_CHEMIN_BIBLIO.'pap_initialisation.fonct.php';
56
require_once GEN_CHEMIN_BIBLIO.'pap_initialisation.fonct.php';
57
/** Inclusion de la classe Papyrus gérant les URL : Utilisé pour l'url demandée par le client.*/
57
/** Inclusion de la classe Papyrus gérant les URL : Utilisé pour l'url demandée par le client.*/
58
require_once GEN_CHEMIN_BIBLIO_CLASSE.'pap_url.class.php';
58
require_once GEN_CHEMIN_BIBLIO_CLASSE.'pap_url.class.php';
-
 
59
/** Inclusion de la bibliothèque de fonctions servant au menu pour la réecriture d'url. */
-
 
60
require_once GEN_CHEMIN_BIBLIO.'pap_menu.fonct.php';
Line 59... Line 61...
59
 
61
 
60
// +------------------------------------------------------------------------------------------------------+
62
// +------------------------------------------------------------------------------------------------------+
61
// |                                            CORPS du PROGRAMME                                        |
63
// |                                            CORPS du PROGRAMME                                        |
-
 
64
// +------------------------------------------------------------------------------------------------------+
-
 
65
// +------------------------------------------------------------------------------------------------------+
-
 
66
// Gestion de la réecriture d'url et des url erreur 404
-
 
67
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])) ) {
-
 
68
	if (defined('PAP_URL_REECRITURE') AND PAP_URL_REECRITURE == '1') {
-
 
69
		$tab_type_reecriture = array('MENU', 'SITE');
-
 
70
		foreach ($tab_type_reecriture as $reecriture) {
-
 
71
			if (PAP_URL_REECRITURE_SEP == '/') {
-
 
72
				$masque_reecriture = '/^(\/.*?)'.constant('PAP_URL_REECRITURE_'.$reecriture).'\\'.PAP_URL_REECRITURE_SEP.'([^\/]+?)(?:\?(.*)|)$/';
-
 
73
			} else {
-
 
74
				$masque_reecriture = '/^(\/.*?)'.constant('PAP_URL_REECRITURE_'.$reecriture).PAP_URL_REECRITURE_SEP.'([^\/]+?)(?:\?(.*)|)$/';
-
 
75
			}
-
 
76
			if (preg_match($masque_reecriture, rawurldecode($_SERVER['REQUEST_URI']), $tab_raccourci)) {		
-
 
77
				$chemin_vers_papyrus = $tab_raccourci[1];
-
 
78
				$raccourci = $tab_raccourci[2];
-
 
79
				$parametres = '';
-
 
80
				if (isset($tab_raccourci[3])) {
-
 
81
					$parametres = $tab_raccourci[3];
-
 
82
				}
-
 
83
				if ($reecriture == 'SITE') {
-
 
84
					/** Inclusion de la bibliothèque de fonctions servant au site pour la réecriture d'url. */
-
 
85
					require_once GEN_CHEMIN_BIBLIO.'pap_site.fonct.php';
-
 
86
				}
-
 
87
				// Nous cherchons à savoir si le raccourci est entièrement numérique ou pas.
-
 
88
				if (preg_match('/^[0-9]+$/', $raccourci)) {
-
 
89
					// Nous vérifions si nous utilisons les codes numériques ou alphanumérique dans les url
-
 
90
					if (constant('GEN_URL_ID_TYPE_'.$reecriture) != 'int') {
-
 
91
						$_GET[constant('GEN_URL_CLE_'.$reecriture)] = call_user_func('GEN_retourner'.$reecriture.'CodeAlpha', $db, $raccourci);
-
 
92
					} else {
-
 
93
						$_GET[constant('GEN_URL_CLE_'.$reecriture)] = $raccourci;
-
 
94
					}
-
 
95
				} else {
-
 
96
					// Nous vérifions si nous utilisons les codes numériques ou alphanumérique dans les url
-
 
97
					if (constant('GEN_URL_ID_TYPE_'.$reecriture) != 'int') {
-
 
98
						$_GET[constant('GEN_URL_CLE_'.$reecriture)] = $raccourci;
-
 
99
					} else {
-
 
100
						$_GET[constant('GEN_URL_CLE_'.$reecriture)] = call_user_func('GEN_retourner'.$reecriture.'CodeNum', $db, $raccourci);
-
 
101
					}
-
 
102
				}
-
 
103
			}
-
 
104
		}
-
 
105
	}
-
 
106
	
-
 
107
	// Aucune information n'a été trouvée, redirection vers la page de gestion des erreurs 404
-
 
108
	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]))) {
-
 
109
		// Utilisation de la fonction statique de Pear HTTP pour négocier l'i18n.
-
 
110
		$aso_i18n_possible = array(GEN_I18N_ID_DEFAUT => true);
-
 
111
		$i18n = HTTP::negotiateLanguage($aso_i18n_possible, GEN_I18N_ID_DEFAUT);
-
 
112
		if (file_exists(sprintf(PAP_FICHIER_ERREUR_404, $i18n))) {
-
 
113
			header ('Location: '.sprintf(PAP_URL_ERREUR_404, $chemin_vers_papyrus, $i18n, $_SERVER['REQUEST_URI']));
-
 
114
		} else {
-
 
115
			header('Location: /');
-
 
116
		}
-
 
117
		exit(0);
-
 
118
	}
Line 62... Line 119...
62
// +------------------------------------------------------------------------------------------------------+
119
}
63
 
120
 
64
// +------------------------------------------------------------------------------------------------------+
121
// +------------------------------------------------------------------------------------------------------+
65
// Gestion des sites : disponibles sur le serveur courant.
122
// Gestion des sites : disponibles sur le serveur courant.
Line 73... Line 130...
73
                'AND GSR01.gsr_id_valeur = 101 '.// 101 = site défaut
130
                'AND GSR01.gsr_id_valeur = 101 '.// 101 = site défaut
74
                'AND GSR01.gsr_id_site_01 = gs_id_site '.
131
                'AND GSR01.gsr_id_site_01 = gs_id_site '.
75
                'AND GSR02.gsr_id_site_01 = GSR02.gsr_id_site_02 '.
132
                'AND GSR02.gsr_id_site_01 = GSR02.gsr_id_site_02 '.
76
                'AND GSR02.gsr_id_valeur IN ('.$site_liste_id.') '.
133
                'AND GSR02.gsr_id_valeur IN ('.$site_liste_id.') '.
77
                'AND GSR02.gsr_id_site_01 = gs_id_site';
134
                'AND GSR02.gsr_id_site_01 = gs_id_site';
78
 
135
    
79
    $resultat = $db->query($requete);
136
    $resultat = $db->query($requete);
80
    if (DB::isError($resultat)) {
137
    if (DB::isError($resultat)) {
81
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
138
        die( BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete) );
82
    }
139
    }
83
 
140
    
84
    // Aucun site trouvé
141
    // Aucun site trouvé
85
    if ($resultat->numRows() == 0) {
142
    if ($resultat->numRows() == 0) {
86
        // Appel à l'application Installateur si nécessaire
143
        // Appel à l'application Installateur si nécessaire
87
        /** <br> Inclusion du programme Installateur de Papyrus.
144
        /** <br> Inclusion du programme Installateur de Papyrus.
88
        * L'abscence de site oblige à relancer l'installation et le script sql qui regénèrera la base de données.*/
145
        * L'abscence de site oblige à relancer l'installation et le script sql qui regénèrera la base de données.*/
Line 114... Line 171...
114
 
171
 
115
    $resultat = $db->query($requete);
172
    $resultat = $db->query($requete);
116
    (DB::isError($resultat))
173
    (DB::isError($resultat))
117
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
174
        ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete))
118
       : '';
175
       : '';
119
 
176
    
120
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
177
    $_GEN_commun['info_menu'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
121
    $resultat->free();
178
    $resultat->free();
122
    if ($_GEN_commun['info_menu']->gm_ce_site != 0) {
179
    if ($_GEN_commun['info_menu']->gm_ce_site != 0) {
123
        // Récupération des infos du site
180
        // Récupération des infos du site
124
        $requete =  'SELECT * '.
181
        $requete =  'SELECT * '.
125
                    'FROM gen_site, gen_site_relation '.
182
                    'FROM gen_site, gen_site_relation '.
126
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
183
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
127
                    'AND gsr_id_valeur IN ('.$site_liste_id.') '.
184
                    'AND gsr_id_valeur IN ('.$site_liste_id.') '.
128
                    'AND gsr_id_site_01 = gs_id_site '.
185
                    'AND gsr_id_site_01 = gs_id_site '.
129
                    'AND gs_id_site = '. $_GEN_commun['info_menu']->gm_ce_site;
186
                    'AND gs_id_site = '. $_GEN_commun['info_menu']->gm_ce_site;
130
 
187
        
131
        $resultat = $db->query($requete);
188
        $resultat = $db->query($requete);
132
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
189
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
133
 
190
        
134
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
191
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
135
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
192
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
136
            ? $_GEN_commun['info_site']->gs_code_num
193
            ? $_GEN_commun['info_site']->gs_code_num
137
            : $_GEN_commun['info_site']->gs_code_alpha;
194
            : $_GEN_commun['info_site']->gs_code_alpha;
Line 141... Line 198...
141
        $requete =  'SELECT * '.
198
        $requete =  'SELECT * '.
142
                    'FROM gen_site, gen_site_relation '.
199
                    'FROM gen_site, gen_site_relation '.
143
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
200
                    'WHERE gsr_id_site_01 = gsr_id_site_02 '.
144
                    'AND gsr_id_valeur = 101 '.
201
                    'AND gsr_id_valeur = 101 '.
145
                    'AND gsr_id_site_01 = gs_id_site ';
202
                    'AND gsr_id_site_01 = gs_id_site ';
146
 
203
        
147
        $resultat = $db->query($requete);
204
        $resultat = $db->query($requete);
148
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
205
        (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
149
 
206
        
150
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
207
        $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
151
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
208
        $_GEN_commun['url_site'] = (GEN_URL_ID_TYPE_SITE == 'int')
152
            ? $_GEN_commun['info_site']->gs_code_num
209
            ? $_GEN_commun['info_site']->gs_code_num
153
            : $_GEN_commun['info_site']->gs_code_alpha;
210
            : $_GEN_commun['info_site']->gs_code_alpha;
154
        $resultat->free();
211
        $resultat->free();
155
    }
212
    }
156
} else {
213
} else {
157
    // Récupération de la valeur identifiant le site depuis l'url
214
    // Récupération de la valeur identifiant le site depuis l'url
158
    $_GEN_commun['url_site'] = $_GET[GEN_URL_CLE_SITE];
215
    $_GEN_commun['url_site'] = $_GET[GEN_URL_CLE_SITE];
159
 
216
    
160
    // Récupération des informations sur le site
217
    // Récupération des informations sur le site
161
    $requete =  'SELECT * '.
218
    $requete =  'SELECT * '.
162
                'FROM gen_site, gen_site_relation '.
219
                'FROM gen_site, gen_site_relation '.
163
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
220
                'WHERE gsr_id_site_01 = gsr_id_site_02 '.
164
                'AND gsr_id_valeur IN ('.$site_liste_id.') '.
221
                'AND gsr_id_valeur IN ('.$site_liste_id.') '.
165
                'AND gsr_id_site_01 = gs_id_site '.
222
                'AND gsr_id_site_01 = gs_id_site '.
166
                'AND ';
223
                'AND ';
167
    $requete .= (GEN_URL_ID_TYPE_SITE == 'int')
224
    $requete .= (GEN_URL_ID_TYPE_SITE == 'int')
168
        ? 'gs_code_num = '.$_GEN_commun['url_site']
225
        ? 'gs_code_num = '.$_GEN_commun['url_site']
169
        : 'gs_code_alpha = "'.$_GEN_commun['url_site'].'"';
226
        : 'gs_code_alpha = "'.$_GEN_commun['url_site'].'"';
170
 
227
    
171
    $resultat = $db->query($requete);
228
    $resultat = $db->query($requete);
172
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
229
    (DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
173
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
230
    $_GEN_commun['info_site'] = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
174
    $resultat->free();
231
    $resultat->free();
175
}
232
}
Line 195... Line 252...
195
    $_GEN_commun['i18n'] = $_GET[GEN_URL_CLE_I18N];
252
    $_GEN_commun['i18n'] = $_GET[GEN_URL_CLE_I18N];
196
} else {
253
} else {
197
  $_GEN_commun['i18n'] = GEN_I18N_ID_DEFAUT;
254
  $_GEN_commun['i18n'] = GEN_I18N_ID_DEFAUT;
198
}
255
}
Line 199... Line -...
199
 
-
 
200
//print "hola";
-
 
201
//print $_GEN_commun['i18n'];
-
 
202
//print "hola";
-
 
203
 
256
 
204
// Nous récupérons des informations sur l'internationalisation
257
// Nous récupérons des informations sur l'internationalisation
205
$requete =  'SELECT * '.
258
$requete =  'SELECT * '.
206
            'FROM gen_i18n '.
259
            'FROM gen_i18n '.
Line 419... Line 472...
419
$resultat->free();
472
$resultat->free();
Line 420... Line 473...
420
 
473
 
421
// +------------------------------------------------------------------------------------------------------+
474
// +------------------------------------------------------------------------------------------------------+
Line 422... Line 475...
422
// Gestion de l'objet URL
475
// Gestion de l'objet URL
-
 
476
 
Line 423... Line 477...
423
 
477
$_GEN_commun['url'] = & new Pap_URL(PAP_URL);
424
$_GEN_commun['url'] = & new Pap_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
478
$_GEN_commun['url']->setId($_GEN_commun['info_menu']->gm_id_menu);
425
 
479
 
Line 441... Line 495...
441
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_FORMAT, $_GEN_commun['url_format']);
495
    $_GEN_commun['url']->addQueryString(GEN_URL_CLE_FORMAT, $_GEN_commun['url_format']);
442
}
496
}
Line 443... Line 497...
443
 
497
 
444
/* +--Fin du code ---------------------------------------------------------------------------------------+
498
/* +--Fin du code ---------------------------------------------------------------------------------------+
-
 
499
* $Log: not supported by cvs2svn $
-
 
500
* Revision 1.24  2006/03/02 10:49:49  ddelon
-
 
501
* Fusion branche multilinguisme dans branche principale
445
* $Log: not supported by cvs2svn $
502
*
446
* Revision 1.23.2.2  2005/12/20 14:40:24  ddelon
503
* Revision 1.23.2.2  2005/12/20 14:40:24  ddelon
447
* Fusion Head vers Livraison
504
* Fusion Head vers Livraison
448
*
505
*
449
* Revision 1.23.2.1  2005/12/01 23:31:57  ddelon
506
* Revision 1.23.2.1  2005/12/01 23:31:57  ddelon