use Zend\View\Renderer\PhpRenderer;
+use Zend\Session\Container;
+
+use Zend\Feed\Writer\FeedFactory;
use Galerie\Model\Galerie;
+use Galerie\Graph\Test as TestPie;
class IndexController extends AbstractActionController
{
private $_galerieInfoExporter;
private $_galerieMailSender;
private $_viewResolver;
+ private $_galeriePairTable;
private $_translator;
+ private $_log;
+ private $_rss;
private function _getGalerieTable()
return $this->_galerieInfoTable;
}
+ private function _getGalerieInfoRssTable()
+ {
+ if (!$this->_galerieInfoTable) {
+ $sm = $this->getServiceLocator();
+ $this->_galerieInfoTable = $sm->get('Galerie\Model\GalerieInfoRssTable');
+ }
+ return $this->_galerieInfoTable;
+ }
+
private function _getTranslator()
{
if (!$this->_translator) {
return $this->_viewResolver;
}
+ private function _getGaleriePairTable()
+ {
+ if (!$this->_galeriePairTable) {
+ $sm = $this->getServiceLocator();
+ $this->_galeriePairTable = $sm->get('Galerie\Model\GaleriePairTable');
+ }
+ return $this->_galeriePairTable;
+ }
+
+ private function _getLog()
+ {
+ if (!$this->_log) {
+ $sm = $this->getServiceLocator();
+ $this->_log = $sm->get('Zend\Log');
+ }
+ return $this->_log;
+ }
+
+ private function _getRss()
+ {
+ if (!$this->_rss) {
+ $sm = $this->getServiceLocator();
+ $config = $sm->get('Config');
+ $this->_rss = FeedFactory::factory($config['rss']);
+ }
+ return $this->_rss;
+ }
+
public function indexAction()
{
- return new ViewModel($this->MessageGetter());
- }
+ $this->_getLog()->info('Acces à la liste des galeries');
+ $session = new Container('test');
+ if ($session->offsetExists('last')) {
+ $last = $email = $session->offsetGet('last');
+ } else {
+ $last = null;
+ }
+ return new ViewModel(array('last' => $last));
+ }
+
+ public function rssAction() {
+ // Récupération des informations brutes
+ $modelManager = $this->_getGalerieInfoRssTable();
+ $datas = $modelManager->all();
+
+ // Création du fil RSS
+ $rss = $this->_getRss();
+
+ foreach($datas as $d) {
+ $entry = $rss->createEntry();
+ $entry->setTitle($d->name);
+
+ $entry->setLink($this->url()->fromRoute('galerie/view', array('id' => $d->id)));
+ $entry->addAuthor(array(
+ 'name' => $d->username,
+ ));
+ $date = new \DateTime();
+ $entry->setDateModified(
+ $date->setTimestamp(intval($d->updated))
+ );
+ $entry->setDateCreated(
+ $date->setTimestamp(intval($d->created))
+ );
+ $entry->setDescription($d->description);
+ $entry->setContent("{$d->nb} photos.");
+ $rss->addEntry($entry);
+ }
+
+ //echo '<pre>'; print_r($rss->export('rss')); die('</pre>');
+
+ // Création de la réponse
+ $response = $this->getResponse();
+ $response->setStatusCode(200);
+
+ // Modification des entêtes
+ $headers = $this->getResponse()->getHeaders();
+ $headers->addHeaderLine('Content-Type', 'application/rss+xml; charset=utf-8');
+
+ $response->setContent($rss->export('rss'));
+
+ return $response;
+ }
public function csvAction() {
// Récupération des informations brutes
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
} 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()) {
{
$id = $this->params()->fromRoute('id', null);
$galerie = $this->_getGalerieInfoTable()->any($id);
+
+ $pairs = $this->_getGaleriePairTable()->all();
+ unset($pairs[$id]);
+
+ $session = new Container('test');
+ $session->offsetSet('last', $id);
+
return new ViewModel(array(
'id' => $id,
'galerie' => $galerie,
+ 'pairs' => $pairs,
));
}