3 namespace Galerie\Controller;
5 use Zend\Mvc\Controller\AbstractActionController;
6 use Zend\View\Model\ViewModel;
8 use Galerie\Model\Galerie;
9 use Galerie\Form\GalerieForm;
11 class IndexController extends AbstractActionController
14 private $_galerieTable;
15 private $_galerieInfoTable;
18 private function _getGalerieTable()
20 if (!$this->_galerieTable) {
21 $sm = $this->getServiceLocator();
22 $this->_galerieTable = $sm->get('Galerie\Model\GalerieTable');
24 return $this->_galerieTable;
27 private function _getGalerieInfoTable()
29 if (!$this->_galerieInfoTable) {
30 $sm = $this->getServiceLocator();
31 $this->_galerieInfoTable = $sm->get('Galerie\Model\GalerieInfoTable');
33 return $this->_galerieInfoTable;
37 public function indexAction()
39 return new ViewModel(array(
40 'galeries' => $this->_getGalerieInfoTable()->all(),
44 public function editAction()
46 // Création du formulaire
47 $form = new GalerieForm;
49 // Récupération de l'objet de travail
50 $id = $this->params()->fromRoute('id', null);
54 $galerie = $this->_getGalerieTable()->any(array('id' => $id));
57 // Sommes-nous en ajout ou en édition ?
59 // Nous sommes en ajout
60 $form->get('submit')->setValue('Ajouter');
61 // Il faut créer un nouveau objet Galerie
62 $galerie = new Galerie;
63 // Garder cette information pour la vue
66 // Nous sommes en modification
67 $form->get('submit')->setValue('Modifier');
68 // Il faut préremplir le formulaire avec les données actuelles
69 $form->bind($galerie);
70 // Garder cette information pour la vue
74 // Récupération de l'objet requête
75 $request = $this->getRequest();
76 if ($request->isPost()) {
77 // Mise en place pour la validation du formulaire
78 $form->setInputFilter($galerie->getInputFilter());
79 $form->setData($request->getPost());
81 // Validation des données
82 if ($form->isValid()) {
83 // Sauvegarde des données
84 $galerie = $form->getData();
86 // Si l'objet n'est pas nouveau, les autres paramètres restent inchangés
87 // Si l'objet est nouveau, il faut renseigner l'id de l'utilisateur courant
88 $galerie->id_user = 1; //TODO: Mettre ici le user connecté
90 $this->_getGalerieTable()->save($galerie);
93 return $this->redirect()->toRoute('galerie');
97 // On prépare l'affichage du formulaire
99 $form->setAttribute('action', $this->url()->fromRoute('galerie/add'));
101 $form->setAttribute('action', $this->url()->fromRoute('galerie/edit', array('id' => $id)));
105 // On passe la main à la vue
106 return new ViewModel(array(
113 public function delAction()
115 return $this->redirect()->toRoute('galerie/view', array(
116 'id' => $this->params()->fromRoute('id', null),
120 public function viewAction()
122 $id = $this->params()->fromRoute('id', null);
123 $galerie = $this->_getGalerieInfoTable()->any($id);
124 return new ViewModel(array(
126 'galerie' => $galerie,