Diverses corrections
[zf2.biz/galerie.git] / module / Galerie / src / Galerie / Controller / IndexController.php
index fef7968..488e437 100644 (file)
@@ -12,6 +12,7 @@ use Zend\View\Renderer\PhpRenderer;
 use Zend\Session\Container;
 
 use Zend\Feed\Writer\FeedFactory;
+use Zend\Feed\Reader\Reader as FeedReader;
 
 use Galerie\Model\Galerie;
 use Galerie\Graph\Test as TestPie;
@@ -137,7 +138,7 @@ class IndexController extends AbstractActionController
 
     public function indexAction() 
     {
-        $this->_getLog()->info('Acces à la liste des galeries');
+        //$this->_getLog()->info('Acces à la liste des galeries');
         $session = new Container('test');
         if ($session->offsetExists('last')) {
             $last = $email = $session->offsetGet('last');
@@ -159,7 +160,12 @@ class IndexController extends AbstractActionController
             $entry = $rss->createEntry();
             $entry->setTitle($d->name);
             
-            $entry->setLink($this->url()->fromRoute('galerie/view', array('id' => $d->id)));
+            $entry->setLink($this->url()->fromRoute(
+                'galerie/view',
+                array('id' => $d->id)),
+                array('force_canonical' => true)
+            );
+
             $entry->addAuthor(array(
                 'name'  => $d->username,
             ));
@@ -214,6 +220,25 @@ class IndexController extends AbstractActionController
 
         return $response;
     }
+    
+    public function rsscheckAction()
+    {
+        $url = $this->url()->fromRoute('galerie/rss', array(), array('force_canonical' => true));
+        $channel = FeedReader::import($url);
+        $title = $channel->getTitle();
+        $author = $channel->getAuthor();
+        $username = $author['name'];
+        $galeries = array();
+        foreach ($channel as $item) {
+            $galeries[] = "{$item->getTitle()} : {$item->getDescription()}";
+        }
+
+        return new ViewModel(array(
+            'title' => $title,
+            'username' => $username,
+            'galeries' => $galeries,
+        ));
+    }
 
 
     public function excelAction() {
@@ -343,6 +368,9 @@ class IndexController extends AbstractActionController
             $galerie = null;
         } else {
             $galerie = $this->_getGalerieTable()->any(array('id' => $id));
+            if (!$galerie) {
+                return $this->redirect()->toRoute('galerie');
+            }
         }
 
         // Sommes-nous en ajout ou en édition ?
@@ -427,6 +455,10 @@ class IndexController extends AbstractActionController
         $id = $this->params()->fromRoute('id', null);
         $galerie = $this->_getGalerieInfoTable()->any($id);
 
+        if (!$galerie) {
+            return $this->redirect()->toRoute('galerie');
+        }
+
         $pairs = $this->_getGaleriePairTable()->all();
         unset($pairs[$id]);