Rajout d'une aide d'action MessageGetter
[zf2.biz/application_blanche.git] / vendor / zf2biz / Custom / Mvc / Controller / Plugin / MessageGetter
diff --git a/vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter b/vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter
new file mode 100644 (file)
index 0000000..a0b709a
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+namespace Custom\Mvc\Controller\Plugin;
+
+use Zend\Mvc\Controller\Plugin\AbstractPlugin;
+
+use Zend\Session\Container;
+use Zend\Session\SessionManager;
+
+
+class MessageGetter extends AbstractPlugin
+{
+    public function __invoke()
+    {
+        $manager = new SessionManager();
+        $container = new Container('FlashMessenger', $manager);
+        $namespaces = array();
+        $messages = array();
+
+        foreach ($container as $namespace => $messages) {
+            $messages[$namespace] = $messages;
+            $namespaces[] = $namespace;
+        }
+        foreach ($namespaces as $namespace) {
+            unset($container->{$namespace});
+        }
+
+        $result = array();
+        if (isset($messages['infos']) {
+            $result['infos'] = $messages['infos']->toArray();
+        }
+        if (isset($messages['warnings']) {
+            $result['warnings'] = $messages['warnings']->toArray();
+        }
+        if (isset($messages['errors']) {
+            $result['errors'] = $messages['errors']->toArray();
+        }
+
+        return $result;
+    }
+
+}
+