Rajout d'une paire + correction ajout
authorSébastien CHAZALLET <s.chazallet@gmail.com>
Sat, 1 Dec 2012 09:03:35 +0000 (10:03 +0100)
committerSébastien CHAZALLET <s.chazallet@gmail.com>
Sat, 1 Dec 2012 09:03:35 +0000 (10:03 +0100)
module/Galerie/Module.php
module/Galerie/src/Galerie/Controller/IndexController.php
module/Galerie/src/Galerie/Model/GalerieInfoTable.php
module/Galerie/src/Galerie/Model/GalerieTable.php
module/Galerie/view/galerie/index/edit.phtml
module/Galerie/view/galerie/index/view.phtml
vendor/zf2biz/Custom/Model/EntityManager.php

index d75f4f3..a151295 100644 (file)
@@ -19,6 +19,7 @@ use Galerie\Export\GalerieWorkbook;
 use Galerie\Mail\MailSender;
 
 use Custom\View\Helper\Format;
+use Custom\Model\PairManager;
 
 
 class Module implements
@@ -83,6 +84,12 @@ class Module implements
                     $result::initialize($config['mail']);
                     return $result;
                 },
+                'Galerie\Model\GaleriePairTable' => function($sm) {
+                    return new PairManager(
+                        $sm->get('Zend\Db\Adapter\Adapter'),
+                        'gallery'
+                    );
+                },
             ),
         );
     }
index d814b1a..7bba533 100644 (file)
@@ -22,6 +22,7 @@ class IndexController extends AbstractActionController
     private $_galerieInfoExporter;
     private $_galerieMailSender;
     private $_viewResolver;
+    private $_galeriePairTable;
 
     private $_translator;
 
@@ -89,6 +90,15 @@ 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;
+    }
+
 
 
 
@@ -263,12 +273,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()) {
@@ -331,9 +343,14 @@ class IndexController extends AbstractActionController
     {
         $id = $this->params()->fromRoute('id', null);
         $galerie = $this->_getGalerieInfoTable()->any($id);
+
+        $pairs = $this->_getGaleriePairTable()->all();
+        unset($pairs[$id]);
+
         return new ViewModel(array(
             'id' => $id,
             'galerie' => $galerie,
+            'pairs' => $pairs,
         ));
     } 
 
index 939f8b3..f21ec97 100644 (file)
@@ -6,6 +6,7 @@ use Zend\Db\ResultSet\ResultSet;
 use Zend\Db\TableGateway\TableGatewayInterface;
 use Zend\Db\Sql\Sql;
 use Zend\Db\Sql\Where;
+use Zend\Db\Sql\Select;
 
 use Custom\Model\Entity;
 
@@ -50,7 +51,7 @@ class GalerieInfoTable implements TableGatewayInterface
             ))
             ->join('photo', 'gallery.id = photo.id_gallery', array(
                 'nb' => new \Zend\Db\Sql\Expression('count(photo.id)')
-            ))
+            ), Select::JOIN_LEFT)
             ->group(array(
                 'user.lastname',
                 'user.firstname',
index 62ffc62..0ec6159 100644 (file)
@@ -2,10 +2,10 @@
 namespace Galerie\Model;
 
 use Zend\Db\Adapter\Adapter;
-use Custom\Model\Manager;
+use Custom\Model\EntityManager;
 use Custom\Model\Entity;
 
-class GalerieTable extends Manager
+class GalerieTable extends EntityManager
 {
     public $table = 'gallery';
 
index f8fba2e..8c6c5a2 100644 (file)
@@ -5,7 +5,6 @@
 <?php endif; ?>
 
 <?php echo $this->form()->openTag($form); ?>
-<?php echo $this->formRow($form->get('id')); ?>
 <div style="overflow: hidden; width: 100%;">
     <span style="float: left; width: 150px; text-align: right; font-weight: bold; cursor: pointer;">
         <?php echo $this->formLabel($form->get('name')); ?>
index 7b09f0c..4751d23 100644 (file)
@@ -5,3 +5,12 @@
 <p>Description&nbsp;: <?php echo $galerie->description; ?></p>
 <p>Propriétaire&nbsp;: <?php echo $galerie->username; ?></p>
 <p>Nombre de photographies&nbsp;: <?php echo $galerie->nb; ?></p>
+
+<h1>Navigation</h1>
+<h2>Accès direct aux autres galeries</h2>
+<ul>
+<?php foreach($pairs as $id => $name): ?>
+<li><a src="/galeries/voir/<?php echo $id; ?>"><?php echo $name; ?></a></li>
+<?php endforeach; ?>
+</ul>
+
index 62fc9e9..8566ce2 100644 (file)
@@ -98,9 +98,10 @@ abstract class EntityManager extends AbstractTableGateway
                 $entity->toUpdatableArray(),
                 $entity->toPrimaryArray()
             );
+            die("update");
         } else {
             $keys = array();
-            foreach($primary_array as $k => $v) {
+            foreach($this->extract_primary($entity) as $k => $v) {
                 $keys[] = "{$k}: {$v}";
             }
             $keys = implode(', ', $keys);