Subversion Repositories Applications.papyrus

Compare Revisions

Regard whitespace Rev 448 → Rev 754

/trunk/papyrus/pap_initialise_info.inc.php
21,7 → 21,7
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// | |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: pap_initialise_info.inc.php,v 1.23 2005-09-22 14:02:49 ddelon Exp $
// CVS : $Id: pap_initialise_info.inc.php,v 1.24 2006-03-02 10:49:49 ddelon Exp $
/**
*Initialisation de Papyrus : vérification et récupération de paramètres généraux.
*
41,7 → 41,7
*@author Alexandre GRANIER <alex@tela-botanica.org>
*@author Laurent COUDOUNEAU <laurent.coudouneau@ema.fr>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.23 $ $Date: 2005-09-22 14:02:49 $
*@version $Revision: 1.24 $ $Date: 2006-03-02 10:49:49 $
// +------------------------------------------------------------------------------------------------------+
*/
 
62,8 → 62,9
// +------------------------------------------------------------------------------------------------------+
 
// +------------------------------------------------------------------------------------------------------+
// Gestion des sites : disponiblent sur le serveur courant.
// Gestion des sites : disponibles sur le serveur courant.
// Liste des catégories de site à prendre en compte :
// Pas de site, ni de menu dans l'URL, recherche du site par défaut
$site_liste_id = '102, 103';// 102 = site "principal" et 103 = site "externe"
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])) ) {
$requete = 'SELECT gen_site.*, GSR02.* '.
99,9 → 100,9
} else {
$_GEN_commun['url_site'] = $_GEN_commun['info_site']->gs_code_alpha;
}
// Le code du menu est présent dans l'url mais pas celui du site
} 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])) ) {
// Le code du menu est présent dans l'url mais pas celui du site
// Nou$s récupérons les infos du menu et du sites dans la variable globale de Papyrus.
// Nous récupérons les infos du menu et du sites dans la variable globale de Papyrus.
$_GEN_commun['url_menu'] = $_GET[GEN_URL_CLE_MENU];
// Récupération des informations sur le menu demandé
$requete = 'SELECT * '.
189,66 → 190,17
exit(0);
}
 
// +------------------------------------------------------------------------------------------------------+
// Gestion de l'internationalisation du site
 
// Nous recherchons la valeur de l'internationalisation du site passée dans l'url ou présente
// dans le navigateur du client. Si nous trouvons pas la langue dans l'url, récupération depuis
// le navigateur et comparaison aux langues disponibles pour le site demandé.
// Initialisation de variable :
$i18n = '';
// Nous recherchons les internationalisations disponibles pour le site demandé.
// Si un site possède une traduction, il peut alors posséder des menus traduits.
$requete = 'SELECT gs_ce_i18n '.
'FROM gen_site, gen_site_relation '.
'WHERE gsr_id_site_01 = '.$_GEN_commun['info_site']->gs_id_site.' '.
'AND gsr_id_site_02 = gs_id_site '.
'AND gsr_id_valeur = 1 '.
'ORDER BY gsr_ordre';
 
$resultat = $db->query($requete);
(DB::isError($resultat)) ? die(BOG_afficherErreurSql(__FILE__, __LINE__, $resultat->getMessage(), $requete)) : '';
 
// Récupération de la première valeur de langue d'un site.
$ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT);
 
if (! $ligne) {
// Pas de traduction pour le site: nous regardons si le site possede une valeur d'i18n.
if (! empty($_GEN_commun['info_site']->gs_ce_i18n) ) {
$i18n_possible = array($_GEN_commun['info_site']->gs_ce_i18n => true);
} else {
// Sinon utilisation de la valeur par défaut définit dans le fichier de config.
$i18n_possible = array(GEN_I18N_ID_DEFAUT => true);
}
// Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
$i18n = HTTP::negotiateLanguage($i18n_possible, GEN_I18N_ID_DEFAUT);
} else {
// La première traduction du site
// peut être utilisé comme valeur par défaut.
$i18n_site_url = $ligne->gs_ce_i18n;
// Stockage des valeurs de l'i18n dans un tableau
$aso_i18n_site = array();
$aso_i18n_site[$_GEN_commun['info_site']->gs_ce_i18n] = true;
$aso_i18n_site[$ligne->gs_ce_i18n] = true;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$aso_i18n_site[$ligne->gs_ce_i18n] = true;
}
$resultat->free();
// Utilisation de la fonction statique de Pear HTTP pour négocier cette i18n.
$i18n = HTTP::negotiateLanguage($aso_i18n_site, $i18n_site_url);
}
// Nous stockons la valeur trouvé pour l'url demandée dans la variable globale de Génésia.
$_GEN_commun['i18n'] = $i18n;
// Recherche de la présence de la valeur d'i18n dans l'url
if ( (! isset($_GET[GEN_URL_CLE_I18N])) || (empty($_GET[GEN_URL_CLE_I18N])) ) {
$_GEN_commun['url_i18n'] = '';
if ( (isset($_GET[GEN_URL_CLE_I18N])) && (!empty($_GET[GEN_URL_CLE_I18N])) ) {
$_GEN_commun['i18n'] = $_GET[GEN_URL_CLE_I18N];
} else {
// L'i18n est trouvé dans l'url, nous écrasons donc la valeur i18n.
$_GEN_commun['url_i18n'] = $_GET[GEN_URL_CLE_I18N];
$_GEN_commun['i18n'] = $_GEN_commun['url_i18n'];
$_GEN_commun['i18n'] = GEN_I18N_ID_DEFAUT;
}
 
//print "hola";
//print $_GEN_commun['i18n'];
//print "hola";
 
// Nous récupérons des informations sur l'internationalisation
$requete = 'SELECT * '.
'FROM gen_i18n '.
261,13 → 213,6
$resultat->free();
 
 
//Gestion de l'erreur aucune internationalisation trouvable.
if (empty($_GEN_commun['i18n'])) {
die('ERREUR Génésia : valeur internationalisation introuvable. <br />'.
'Ligne n° : '. __LINE__ .'<br />'.
'Fichier : '. __FILE__ );
}
 
// Récupération des informations sur la langue
$requete = 'SELECT * '.
'FROM gen_i18n_langue '.
347,6 → 292,7
 
// Si le résultat de la négociation de l'internationalisation donne une langue différente
// de celle du site principal, nous récupérons les éventuelles valeurs traduite pour le site.
 
if ($_GEN_commun['i18n'] != $_GEN_commun['info_site']->gs_ce_i18n) {
// Récupération des informations sur la traduction du site
$requete = 'SELECT * '.
367,6 → 313,7
 
// Si le résultat de la négociation de l'internationalisation donne une langue différente
// de celle du menu, nous récupérons les éventuelles valeurs traduite pour le menu.
 
if ((isset($_GEN_commun['info_menu'])) && ($_GEN_commun['i18n'] != $_GEN_commun['info_menu']->gm_ce_i18n)) {
// Récupération des informations sur la traduction du menu
$requete = 'SELECT * '.
484,10 → 431,6
$_GEN_commun['url']->addQueryString(GEN_URL_CLE_MENU, $_GEN_commun['url_menu']);
}
 
if ( (isset($_GEN_commun['url_i18n'])) && (!empty($_GEN_commun['url_i18n'])) ) {
$_GEN_commun['url']->addQueryString(GEN_URL_CLE_I18N, $_GEN_commun['url_i18n']);
}
 
if ( (isset($_GET[GEN_URL_CLE_DATE])) && (!empty($_GET[GEN_URL_CLE_DATE])) ) {
$_GEN_commun['url_date'] = $_GET[GEN_URL_CLE_DATE];
$_GEN_commun['url']->addQueryString(GEN_URL_CLE_DATE, $_GEN_commun['url_date']);
500,6 → 443,15
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log: not supported by cvs2svn $
* Revision 1.23.2.2 2005/12/20 14:40:24 ddelon
* Fusion Head vers Livraison
*
* Revision 1.23.2.1 2005/12/01 23:31:57 ddelon
* Merge Head vers multilinguisme
*
* Revision 1.23 2005/09/22 14:02:49 ddelon
* nettoyage annuaire et php5
*
* Revision 1.22 2005/09/20 17:01:22 ddelon
* php5 et bugs divers
*