Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Mon code comporte le view helper et le plugin de Traduction ci dessous. Il sont fonctionnels à un détail près.
class Zend_View_Helper_LoginHelper extends Zend_View_Helper_Abstract { public function LoginHelper($baseurl) { $auth = Zend_Auth::getInstance (); if ($auth->hasIdentity ()) { $login = 'Bienvenu'.' '. $auth->getIdentity ()->prenom . ' ' . $auth->getIdentity ()->nom .' '.'<a href="' .$baseurl .'/services/auth/logout">' .'(Logout)</a>'; }else{ $login ='<a href="'.$baseurl.'/services/auth/login">Login</a>'; } return $login; } }
Mon application comporte un plugin de traduction (inspiré du tutoriel publié sur le site www.dator.fr):
class Plugin_Translate extends Zend_Controller_Plugin_Abstract { protected $_view; public function __construct($view){ $this->_view = $view; } public function routeShutdown($view) { // on récupère le paramètre de la langue dans l'url $locale = $this->getRequest()->getParam('language'); // On lance notre Translate (avec les différents fichiers). $translate = new Zend_Translate('array',APPLICATION_PATH.'/languages/fr_FR.php','fr'); $translate->addTranslation(APPLICATION_PATH.'/languages/en_US.php','en'); // On stoque notre locale (fr ou en) dans notre registre. Zend_Registry::set('Zend_Locale', $locale); // si la langue demandé ne possède pas de traduction if (!$translate->isAvailable($locale)) { // on change la langue par defaut (en) dans notre traduction. $translate->setLocale('en'); // et on ajoute à la variable de vue la langue 'en' $this->_view->language = 'en'; } else { $translate->setLocale($locale); $this->_view->language = Zend_Registry::get('Zend_Locale'); } Zend_Registry::set('Zend_Translate', $translate); Zend_Form::setDefaultTranslator($translate); Zend_Validate_Abstract::setDefaultTranslator($translate); } }
Quand je remplace la première ligne avec le code suivant dans le view helper, ça génère une erreur
$login = $this->translate('Bienvenu').' '. $auth->getIdentity ()->prenom ....
Dernière modification par ziedb (29-12-2010 19:27:09)
Hors ligne
Salut,
Pour accéder à une aide de vue depuis une autre, il faut passer par l'objet view.
$login = $this->view->translate('Bienvenu') . ' ' . $auth->getIdentity ()->prenom;
A+ benjamin.
Hors ligne
Merci. je m'en suis rendu compte après avoir fait le post mais mnt je suis confronté à un autre problème lié au routage.
Dernière modification par ziedb (29-12-2010 19:26:41)
Hors ligne
Pages: 1