X-Git-Url: http://git.inspyration.org/?p=zf2.biz%2Fgalerie.git;a=blobdiff_plain;f=module%2FGalerie%2Fsrc%2FGalerie%2FController%2FIndexController.php;h=dfe9a5ffa9155c93d3a3b2562c7a0b12d767909f;hp=0219600844c46e73fab27b0c58c359198c59f8f8;hb=709825fa5a4a684beb5f484ba19e976543493f48;hpb=a5ce38aad48431412e69ff317c571b0b1f2e0ee9 diff --git a/module/Galerie/src/Galerie/Controller/IndexController.php b/module/Galerie/src/Galerie/Controller/IndexController.php index 0219600..dfe9a5f 100644 --- a/module/Galerie/src/Galerie/Controller/IndexController.php +++ b/module/Galerie/src/Galerie/Controller/IndexController.php @@ -4,6 +4,7 @@ namespace Galerie\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; +use Zend\View\Model\JsonModel; use Galerie\Model\Galerie; @@ -57,9 +58,59 @@ class IndexController extends AbstractActionController public function indexAction() { - return new ViewModel(array( - 'galeries' => $this->_getGalerieInfoTable()->all(), - )); + return new ViewModel(array()); + } + + public function listAction() + { + // Récupération de l'objet requête + $request = $this->getRequest(); + + $start = $request->getQuery('iDisplayStart', 0); + $length = $request->getQuery('iDisplayLength', 10); + $tri = $request->getQuery('iSortCol_0'); + $senstri = $request->getQuery('sSortDir_0', 'asc'); + $filtre = $request->getQuery('sSearch'); + + // Preparation pour le requêtage + $modelManager = $this->_getGalerieInfoTable(); + + // Récupération des galeries sous la forme d'un tableau d'entités + $galeries = $modelManager->getPartial($start, $length, $tri, $senstri, $filtre); + + // Préparation pour la mise en forme du résultat + $action_template = '%s%s%s'; + $translator = $this->_getTranslator(); + $action_voir = $translator->translate('Galerie_index_table_lien_view', 'galerie'); + $action_editer = $translator->translate('Galerie_index_table_lien_edit', 'galerie'); + $action_supprimer = $translator->translate('Galerie_index_table_lien_del', 'galerie'); + $url = $this->url(); + // Mise en forme du résultat pour que cela corresponde à l'attendu, c'est à dire un tableau de tableaux + $result = array(); + foreach($galeries as $g) { + $result[] = array( + "{$g->name}{$g->description}", + $g->username, + $g->nb, + sprintf( + $action_template, + $url->fromRoute('galerie/view', array('id' => $g->id)), + $action_voir, + $url->fromRoute('galerie/edit', array('id' => $g->id)), + $action_editer, + $url->fromRoute('galerie/del', array('id' => $g->id)), + $action_supprimer + ), + ); + } + + // Construction du resultat + return new JsonModel(array( + "sEcho" => $request->getQuery('sEcho', 1), + "iTotalRecords" => $modelManager->count_all(), + "iTotalDisplayRecords" => count($result), + "aaData" => $result, + )); } public function editAction()