Subversion Repositories Applications.papyrus

Rev

Rev 754 | Rev 1037 | Go to most recent revision | Show entire file | Regard 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 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