Rajout d'une aide d'action MessageGetter
authorSébastien CHAZALLET <s.chazallet@gmail.com>
Sun, 18 Nov 2012 15:25:17 +0000 (16:25 +0100)
committerSébastien CHAZALLET <s.chazallet@gmail.com>
Sun, 18 Nov 2012 15:25:17 +0000 (16:25 +0100)
vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter [new file with mode: 0644]
vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter.php [new file with mode: 0644]
vendor/zf2biz/Custom/autoload_classmap.php

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;
+    }
+
+}
+
diff --git a/vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter.php b/vendor/zf2biz/Custom/Mvc/Controller/Plugin/MessageGetter.php
new file mode 100644 (file)
index 0000000..01d8afa
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+namespace Custom\Mvc\Controller\Plugin;
+
+use Zend\Mvc\Controller\Plugin\AbstractPlugin;
+
+use Zend\Session\Container;
+use Zend\Session\SessionManager;
+use Zend\ServiceManager\ServiceManagerAwareInterface;
+use Zend\ServiceManager\ServiceManager;
+
+
+class MessageGetter extends AbstractPlugin implements ServiceManagerAwareInterface
+{
+
+    /**
+     * @var ServiceManager
+     */
+    protected $serviceManager;
+    
+    protected $messages = array();
+
+
+    public function __invoke()
+    {
+        $manager = new SessionManager();
+        $container = new Container('FlashMessenger', $manager);
+        $namespaces = array();
+
+        foreach ($container as $namespace => $messages) {
+            $this->messages[$namespace] = $messages->toArray();
+            $namespaces[] = $namespace;
+        }
+        foreach ($namespaces as $namespace) {
+            unset($container->{$namespace});
+        }
+
+        return $this->messages;
+    }
+
+    /**
+     * Retrieve service manager instance
+     *
+     * @return ServiceManager
+     */
+    public function getServiceManager()
+    {
+        return $this->serviceManager->getServiceLocator();
+    }
+
+    /**
+     * Set service manager instance
+     *
+     * @param ServiceManager $locator
+     * @return void
+     */
+    public function setServiceManager(ServiceManager $serviceManager)
+    {
+        $this->serviceManager = $serviceManager;
+    }
+
+}
+
index 2dea9d0..7997ec8 100644 (file)
@@ -3,4 +3,5 @@
 return array(
     'Custom\Model\Entity' => __DIR__ . '/Model/Entity.php',
     'Custom\Model\Manager' => __DIR__ . '/Model/Manager.php',
+    'Custom\Mvc\Controller\Plugin\MessageGetter' => __DIR__ . '/Mvc/Controller/Plugin/MessageGetter.php',
 );