+ 'title' => $title,
+ 'username' => $username,
+ 'galeries' => $galeries,
+ ));
+ }
+
+
+ public function excelAction() {
+ // Récupération des informations brutes
+ $modelManager = $this->_getGalerieInfoTable();
+ $datas = $modelManager->all();
+
+ $exporter = $this->_getGalerieInfoExporter();
+ $exporter->build($datas);
+
+ // Renvoi d'une réponse vide pour désactiver le rendu de la vue
+ return $this->getResponse();
+ }
+
+
+ public function mailAction()
+ {
+ //Construction du courriel au format HTML.
+ $mail_viewmodel = new ViewModel(array(
+ 'who' => 'World',
+ ));
+ $mail_viewmodel->setTemplate('galerie/mail/test');
+ $renderer = new PhpRenderer;
+ $renderer->setResolver($this->_getViewResolver());
+ $body_html = $renderer->render($mail_viewmodel);
+
+ // Envoi du courriel
+ $mailSender = $this->_getGalerieMailSender();
+ $mailSender->send(
+ 's.chazallet@gmail.com', 'Moi',//'sender@example.com', 'Moi',
+ 's.chazallet@gmail.com', 'Toi',//'to@example.com', 'Toi',
+ 'Test', 'Hello World 4.', $body_html
+ );
+
+ // Création de la réponse
+ $response = $this->getResponse();
+ $response->setStatusCode(200);
+ $response->setContent('Mail Sent.');
+
+ 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
+ $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 = '<a href="%s">%s</a><a href="%s">%s</a><a href="%s">%s</a>';
+ $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(
+ "<strong>{$g->name}</strong><em>{$g->description}</em>",
+ $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,
+ ));