3 namespace Galerie\Controller;
5 use Zend\Mvc\Controller\AbstractActionController;
6 use Zend\View\Model\ViewModel;
8 use Galerie\Model\Galerie;
10 class IndexController extends AbstractActionController
13 private $_galerieTable;
14 private $_galerieInfoTable;
15 private $_galerieForm;
20 private function _getGalerieTable()
22 if (!$this->_galerieTable) {
23 $sm = $this->getServiceLocator();
24 $this->_galerieTable = $sm->get('Galerie\Model\GalerieTable');
26 return $this->_galerieTable;
29 private function _getGalerieInfoTable()
31 if (!$this->_galerieInfoTable) {
32 $sm = $this->getServiceLocator();
33 $this->_galerieInfoTable = $sm->get('Galerie\Model\GalerieInfoTable');
35 return $this->_galerieInfoTable;
38 private function _getTranslator()
40 if (!$this->_translator) {
41 $sm = $this->getServiceLocator();
42 $this->_translator = $sm->get('translator');
44 return $this->_translator;
47 private function _getGalerieForm()
49 if (!$this->_galerieForm) {
50 $sm = $this->getServiceLocator();
51 $this->_galerieForm = $sm->get('Galerie\Form\GalerieForm');
53 return $this->_galerieForm;
58 public function indexAction()
60 return new ViewModel(array(
61 'galeries' => $this->_getGalerieInfoTable()->all(),
65 public function editAction()
67 // Création du formulaire
68 $form = $this->_getGalerieForm();
70 // Récupération de l'objet de travail
71 $id = $this->params()->fromRoute('id', null);
75 $galerie = $this->_getGalerieTable()->any(array('id' => $id));
78 // Sommes-nous en ajout ou en édition ?
80 // Nous sommes en ajout
81 $form->get('submit')->setValue('Ajouter');
82 // Il faut créer un nouveau objet Galerie
83 $galerie = new Galerie;
84 // Garder cette information pour la vue
87 // Nous sommes en modification
88 $form->get('submit')->setValue('Modifier');
89 // Il faut préremplir le formulaire avec les données actuelles
90 $form->bind($galerie);
91 // Garder cette information pour la vue
95 // Récupération de l'objet requête
96 $request = $this->getRequest();
97 if ($request->isPost()) {
98 // Mise en place pour la validation du formulaire
99 $form->setInputFilter($galerie->getInputFilter());
100 $form->setData($request->getPost());
102 // Validation des données
103 if ($form->isValid()) {
104 // Sauvegarde des données
105 $galerie = $form->getData();
107 // Si l'objet n'est pas nouveau, les autres paramètres restent inchangés
108 // Si l'objet est nouveau, il faut renseigner l'id de l'utilisateur courant
109 $galerie->id_user = 1; //TODO: Mettre ici le user connecté
111 $this->_getGalerieTable()->save($galerie);
114 return $this->redirect()->toRoute('galerie');
118 // On prépare l'affichage du formulaire
120 $form->setAttribute('action', $this->url()->fromRoute('galerie/add'));
122 $form->setAttribute('action', $this->url()->fromRoute('galerie/edit', array('id' => $id)));
126 // On passe la main à la vue
127 return new ViewModel(array(
134 public function delAction()
136 return $this->redirect()->toRoute('galerie/view', array(
137 'id' => $this->params()->fromRoute('id', null),
141 public function viewAction()
143 $id = $this->params()->fromRoute('id', null);
144 $galerie = $this->_getGalerieInfoTable()->any($id);
145 return new ViewModel(array(
147 'galerie' => $galerie,