Exemple utilisation de la session
[zf2.biz/galerie.git] / module / Galerie / src / Galerie / Controller / IndexController.php
index 2bce519..6e5344e 100644 (file)
@@ -9,8 +9,10 @@ use Zend\View\Model\JsonModel;
 
 use Zend\View\Renderer\PhpRenderer;
 
+use Zend\Session\Container;
 
 use Galerie\Model\Galerie;
+use Galerie\Graph\Test as TestPie;
 
 class IndexController extends AbstractActionController 
 {
@@ -21,6 +23,7 @@ class IndexController extends AbstractActionController
     private $_galerieInfoExporter;
     private $_galerieMailSender;
     private $_viewResolver;
+    private $_galeriePairTable;
 
     private $_translator;
 
@@ -88,12 +91,27 @@ class IndexController extends AbstractActionController
         return $this->_viewResolver;
     }
 
+    private function _getGaleriePairTable()
+    {
+        if (!$this->_galeriePairTable) {
+            $sm = $this->getServiceLocator();
+            $this->_galeriePairTable = $sm->get('Galerie\Model\GaleriePairTable');
+        }
+        return $this->_galeriePairTable;
+    }
+
 
 
 
     public function indexAction() 
     {
-        return new ViewModel($this->MessageGetter());
+        $session = new Container('test');
+        if ($session->offsetExists('last')) {
+            $last = $email = $session->offsetGet('last');
+        } else {
+            $last = null;
+        }
+        return new ViewModel(array('last' => $last));
     } 
 
     public function csvAction() {
@@ -162,6 +180,30 @@ class IndexController extends AbstractActionController
         return $response;
     }
 
+    public function pieAction()
+    {
+        // Accès aux modèles
+        $modelManager = $this->_getGalerieInfoTable();
+        $datas = $modelManager->all();
+
+        // Mise en forme des résultats
+        $nombres = array();
+        $noms = array();
+        foreach($datas as $d) {
+            $nombres[] = $d->nb;
+            $noms[] = $d->name;
+        }
+
+        // Construction (et envoi) du diagramme
+        $pie = new TestPie($nombres, $noms);
+
+        $response = $this->getResponse();
+        $response->setStatusCode(200);
+        $response->setContent('');
+
+        return $response;
+    }
+
     public function listAction() 
     { 
         // Récupération de l'objet requête
@@ -238,12 +280,14 @@ class IndexController extends AbstractActionController
         } else {
             // Nous sommes en modification
             $form->get('submit')->setValue('Modifier');
-            // Il faut préremplir le formulaire avec les données actuelles
-            $form->bind($galerie);
             // Garder cette information pour la vue
             $is_new = false;
         }
 
+
+            // Il faut préremplir le formulaire avec les données actuelles
+            $form->bind($galerie);
+
         // Récupération de l'objet requête
         $request = $this->getRequest();
         if ($request->isPost()) {
@@ -306,9 +350,17 @@ class IndexController extends AbstractActionController
     {
         $id = $this->params()->fromRoute('id', null);
         $galerie = $this->_getGalerieInfoTable()->any($id);
+
+        $pairs = $this->_getGaleriePairTable()->all();
+        unset($pairs[$id]);
+
+        $session = new Container('test');
+        $session->offsetSet('last', $id);
+
         return new ViewModel(array(
             'id' => $id,
             'galerie' => $galerie,
+            'pairs' => $pairs,
         ));
     }