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 |
* |