Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'essaye de traduire les flashMessages mais j'avoue avoir du mal à savoir ou le faire, je gère l'affichage dans le layout.phtml
Et je centralise les getMessages dans le onbootstrap de Application\Module.php.
Du coup dans le layout j'ai un array message selon le type (success, info, warning etc) et non pas un objet de type FlashMessage. (J'ai suivi cet approche car en utilisant l'objet flashMessage je n'arrivais pas a récupérer le namespace succès ou autre avec la méthode getNamespace bien que dans mon controller je faisait un setNamespace. Impossible dans la vue donc de rendre le truc dynamique...)
Voila si quelqu'un à une idée. de comment les traduire...ce serait sympa.
Quelques petits bout de code :
[lang=php] //dans mon controller $this->flashMessenger()->setNamespace('success')->addMessage('Your album has been added.');
[lang=php] //dans Application\Module.php $eventManager->attach(MvcEvent::EVENT_RENDER, function($e) { $flashMessenger = new FlashMessenger; $messages = array(); $flashMessenger->setNamespace('success'); if ($flashMessenger->hasMessages()) { $messages['success'] = $flashMessenger->getMessages(); } $flashMessenger->clearMessages(); $e->getViewModel()->setVariable('flashMessages', $messages); });
[lang=php] //dans layout.phtml if ($this->flashMessages) { foreach ($this->flashMessages as $context => $messages) { echo '<div class="alert alert-dismissable alert-' . $context . '"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true"> × </button> '; foreach ($messages as $message) { echo '<p>' . $message . '</p>'; } echo '</div>'; } }
Hors ligne
Salut pour le flashMessenger tu as déjà les méthodes pour les messages de succès, infos et erreurs : $this->flashMessenger()->addSuccessMessage(); $this->flashMessenger()->getSuccessMessages(); donc pas besoin d'utiliser de namespace pour ça c'est déjà géré .
Pour la traduction tu peux appeler $this->translate dans ta vue autour de $message logiquement si ton message correspond à un message traduit ça fonctionnera.
Hors ligne