Commit 9267238a authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Aide de vue Messenger : tri des messages par sévérité (SUCCESS puis ERROR puis...

Aide de vue Messenger : tri des messages par sévérité (SUCCESS puis ERROR puis WARNING puis INFO) + suppression code inutilisé.
parent b509f159
......@@ -19,18 +19,19 @@ class Messenger extends AbstractHelper implements MessageAwareInterface
{
use MessageAwareTrait;
protected $uiClasses = array( // CSS class, icon name
protected $uiClasses = array( // severity => [ alert class, icon class ]
self::INFO => array('info', 'info-sign'),
self::SUCCESS => array('success', 'ok-sign'),
self::WARNING => array('warning', 'warning-sign'),
self::ERROR => array('danger', 'exclamation-sign'),
);
/**
* Seule sévérité éventuelle à prendre en compte
* @var string
*/
protected $severity = null;
protected $severityOrder = array( // severity => order
self::SUCCESS => 1,
self::ERROR => 2,
self::WARNING => 3,
self::INFO => 4,
);
/**
* Activation ou non de l'affichage de l'icône
......@@ -79,37 +80,41 @@ class Messenger extends AbstractHelper implements MessageAwareInterface
return '';
}
$messages = (array)$this->getMessages();
$out = '';
// if ($this->severity && isset($messages[$this->severity])) {
// // on ne conserve que la sévérité éventuellement demandée
// $messages = array($this->severity => $messages[$this->severity]);
// }
foreach ($messages as $key => $message) {
// if (is_array($message)) {
// if ($this->severity && isset($message[$this->severity])) {
// // on ne conserve que la sévérité éventuellement demandée
// $message = array($this->severity => $message[$this->severity]);
// }
foreach ($message as $s => $m) {
$out .= sprintf(
$this->getTemplate(is_string($key) ? $key : (is_string($s) ? $s : 'info')),
implode('<br />', (array)$m)
);
}
// }
// else {
// $s = is_string($key) ? $key : ($this->severity ? $this->severity : 'info');
//// if ($this->severity && $this->severity == $s) {
//// $out .= sprintf($this->getTemplate($s), $message) . '<br />';
//// }
// }
foreach ($this->getSortedMessages() as $severity => $array) {
foreach ($array as $priority => $message) {
$out .= sprintf(
$this->getTemplate(is_string($severity) ? $severity : (is_string($priority) ? $priority : 'info')),
implode('<br />', (array)$message)
);
}
}
return $out;
}
/**
* @return array
*/
private function getSortedMessages()
{
$messages = (array) $this->getMessages();
$order = $this->severityOrder;
uksort($messages, function($s1, $s2) use ($order) {
if ($order[$s1] < $order[$s2]) {
return -1;
}
if ($order[$s1] > $order[$s2]) {
return 1;
}
return 0;
});
return $messages;
}
/**
* Importe les messages du FlashMessenger.
*
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment