Sur un site multilingue, il peut arriver que nous ayons à générer du contenu dans une langue différente de celle du siteaccess courant. L'affichage dans une iframe d'un autre siteaccess ayant la langue recherchée n'est pas toujours le plus facile, notamment lorsqu'il s'agit de générer un template d'envoi de mail...
Pour nous faciliter la tache, on peut employer une petite astuce :
//On récupère l'instance par défaut du site.ini, utilisé pour les locales : $ini = eZINI::instance(); //Récupération de la locale courante : $originalLanguageCode = $ini->variable( 'RegionalSettings', 'Locale' ); //On défini la locale souhaitée : $ini->setVariable( 'RegionalSettings', 'Locale', 'fre-FR' ); //On vide le cache de locale pour que notre changement soit bien pris en compte : eZLocale::resetGlobals(); $tpl = templateInit(); /* Nous placerons nos fetchs d'objets à afficher ici */ $content = $tpl->fetch( 'design:mon_template_a_traduire.tpl' ) ); //On redéfini la locale d'origine: $ini->setVariable( 'RegionalSettings', 'Locale', $originalLanguageCode ); eZLocale::resetGlobals();
Il est a noter que dans le site.ini de votre siteaccess, dans le paragraphe [RegionalSettings], la variable TextTranslation doit bien être a enabled, il n'est pas possible de la redéfinir au niveau d'un module (du fait du mécanisme d'appel des fonction i18n en fonction de cette variable).
Lorsque vous créez vos propres modules, il est parfois intéressant de rediriger le visiteur vers une vue antérieur. Pour récuperer l'URI de la dernière vue utilisée, eZ Publish met à notre disposition une variable de session, "LastAccessesURI", qui peut être appelée dans une des vues de vos modules de cette façon :
$http = eZHTTPTool::instance(); $http->sessionVariable( "LastAccessesURI" );
Vous obtiendrez alors la dernière page visitée par l'utilisateur avant l'appel de votre vue.
Là où il peut y avoir problème, c'est lorsque cette dernière page visitée n'est pas vraiment pertinente. Par exemple lorsqu'il s'agit d'une page d'édition de contenu, ou de l'appel d'une méthode AJAX : il peut être déroutant pour l'utilisateur de se retrouver sur l'édition d'une version d'objet qui n'existe plus ou sur le retour d'une portion d'HTML qui est générée par une de vos vues orientée AJAX...
La solution se trouve dans la déclaration de vos vues au niveau de votre module.php, dont voici un fragment d'exemple :
$ViewList["ajax_action"] = array( 'script' => 'ajax_action.php',
'functions' => 'action',
'ui_context' => 'edit',
'params' => array( 'objectID' ) );Pour faire en sorte que la vue ne soit pas retenue comme 'dernière URI utilisée', il suffit de mettre dans l'index 'ui_context' une des valeurs suivantes : 'edit', 'administration', 'browse' ou 'authentication'.
Une page chargée après l'appel de la vue "ajax_action" n'aura donc pas cette dernière comme "LastAccessURI", mais bien la dernière page "utile" visitée par l'utilisateur.
Pour en savoir plus, voir dans le code : /index.php aux environs de la ligne 880 (eZ Publish 4.1.3).
3D AJAX Apple - Mac OS X Benchmark Sites Web Bureautique CD-DVD CMS Cryptographie Développement Divers Flash Flex Flex - RIA FLV et streaming Groupware Internet Javascript Joomla Lectures Logiciel Materiel News Perso PHP Ressources Sécurité Systèmes et matériels Utilitaires Veille & Intelligence Vidéo
Derniers articles
- 7 NOUVELLES FONCTIONNALITÉS POUR VOTRE COMPTE GOOGLE ANALYTICS
- HOW TO SEND HTML EMAIL USING OUTLOOK
- UN EDITEUR MYSQL ULTRA LITE
- CHANGER LA LANGUE EN COURS DE SCRIPT EZ PUBLISH
- GESTION DE LA PAGE PRÉCÉDENTE DANS EZ PUBLISH
- GOOGLE WAVE
- MANIPULER LES FLV SOUS MAC
- PROBLÈME DE COMPATIBILITÉ ENTRE SUITCASE FUSION ET 10.5.6
- UN OURS BLANC A BLOQUÉ LE VIEUX PORT ...
- INSTALLATION EZPUBLISH 4.01
- REJOIGNEZ-NOUS : DÉVELOPPEUR WEB CONFIRMÉ
- PASSER D'UNE FENÊTRE À L 'AUTRE SOUS MAC OS X

Ajouter des commentaires