diff --git a/src/UnicaenApp/View/Helper/FlashMessenger.php b/src/UnicaenApp/View/Helper/FlashMessenger.php deleted file mode 100644 index bc3ebbe0a9dd6a688944b46d5de2f9b9e670a602..0000000000000000000000000000000000000000 --- a/src/UnicaenApp/View/Helper/FlashMessenger.php +++ /dev/null @@ -1,58 +0,0 @@ -<?php -namespace UnicaenApp\View\Helper; - -use Zend\Mvc\Controller\PluginManager; - -/** - * Aide de vue affichant les messages positionnés en session par le plugin de - * contrôleur 'FlashMessenger'. - * - * 2 formats possibles pour chaque message, exemples : - * - <code>array('warning'=>"La demande 12 est introuvable!")</code> - * - <code>"Ceci est un message d'information."</code>, - * équivalent à <code>array('info'=>"Ceci est un message d'information.")</code> - * - * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> - */ -class FlashMessenger extends Messenger -{ - /** - * @var PluginManager - */ - protected $pm; - - /** - * Constructeur. - * - * @param PluginManager $pm - */ - public function __construct(PluginManager $pm) - { - $this->pm = $pm; - } - - /** - * Helper entry point - * - * @param string $severity Ex: Messenger::INFO - * @return FlashMessenger fluent interface, returns self - */ - public function __invoke($severity = null) - { - /* @var $fm FlashMessenger */ - $fm = $this->pm->get('flashMessenger'); - - $messages = array(); - foreach ($fm->getMessages($severity) as $value) { - if (is_array($value)) { - $messages += $value; - } - else { - $messages[] = $value; - } - } - $this->setMessages($messages); - - return $this; - } -} diff --git a/src/UnicaenApp/View/Helper/Messenger.php b/src/UnicaenApp/View/Helper/Messenger.php index a2f42dc0e886df3c864253ee1f6faaf8061be94e..a5ab7b015ee742317f692ea27d6fdd0cd49da0ff 100644 --- a/src/UnicaenApp/View/Helper/Messenger.php +++ b/src/UnicaenApp/View/Helper/Messenger.php @@ -8,21 +8,23 @@ use Zend\View\Helper\AbstractHelper; /** * Aide de vue permettant de stocker une liste de messages d'information de différentes sévérités * et de générer le code HTML pour les afficher (affublés d'un icône correspondant à leur sévérité). + * + * Possibilité d'importer les messages du FlashMessenger pour les mettre en forme de la même manière. * * @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> */ class Messenger extends AbstractHelper { const INFO = 'info'; - const OK = 'ok'; + const SUCCESS = 'success'; const WARNING = 'warning'; const ERROR = 'error'; protected $uiClasses = array( // CSS class, icon name - self::INFO => array('info', 'info-sign'), - self::OK => array('success', 'ok-sign'), - self::WARNING => array('warning', 'warning-sign'), - self::ERROR => array('error', 'exclamation-sign'), + self::INFO => array('info', 'info-sign'), + self::SUCCESS => array('success', 'ok-sign'), + self::WARNING => array('warning', 'warning-sign'), + self::ERROR => array('error', 'exclamation-sign'), ); /** @@ -39,19 +41,43 @@ class Messenger extends AbstractHelper /** - * Helper entry point + * Helper entry point. * - * @param string $severity Ex: Messenger::INFO - * @return Messenger fluent interface, returns self + * @param bool $importFlashMessages + * @return self */ - public function __invoke($severity = null) + public function __invoke($importFlashMessages = false) { - if ($severity) { - $this->severity = $severity; + if ($importFlashMessages) { + $this->importFlashMessages(); } + return $this; } + /** + * Importe les messages du FlashMessenger. + * + * @return self + */ + protected function importFlashMessages() + { + /* @var $fm \Zend\View\Helper\FlashMessenger */ + $fm = $this->getView()->flashMessenger(); + + foreach ($fm->getInfoMessages() as $message) { + $this->addMessage($message, self::INFO); + } + foreach ($fm->getErrorMessages() as $message) { + $this->addMessage($message, self::ERROR); + } + foreach ($fm->getSuccessMessages() as $message) { + $this->addMessage($message, self::SUCCESS); + } + + return $this; + } + /** * Retourne le code HTML généré par cette aide de vue. * @@ -70,11 +96,11 @@ class Messenger extends AbstractHelper } /** - * Génère le code HTML + * Génère le code HTML. * * @return string */ - public function render() + protected function render() { if (!$this->hasMessages()) { return ''; @@ -215,11 +241,12 @@ class Messenger extends AbstractHelper $divId = $divId ? sprintf('id="%s"', $divId) : ''; $template = <<<EOT -<p class="messenger {$this->uiClasses[$severity][0]} text-{$this->uiClasses[$severity][0]}" {$divId}> - <i class="icon-{$this->uiClasses[$severity][1]}"></i> +<p class="messenger alert alert-{$this->uiClasses[$severity][0]}" {$divId}> + <button type="button" class="close" data-dismiss="alert">×</button> + <!--<i class="icon-{$this->uiClasses[$severity][1]}"></i>--> $innerContainerTemplate </p> EOT; return $template . PHP_EOL; } -} +} \ No newline at end of file