Rajout d'un lecteur de flux RSS
authorSébastien CHAZALLET <s.chazallet@gmail.com>
Sun, 2 Dec 2012 16:18:33 +0000 (17:18 +0100)
committerSébastien CHAZALLET <s.chazallet@gmail.com>
Sun, 2 Dec 2012 16:18:33 +0000 (17:18 +0100)
module/Galerie/config/module.config.php
module/Galerie/src/Galerie/Controller/IndexController.php
module/Galerie/view/galerie/index/rsscheck.phtml [new file with mode: 0644]

index d2e661e..066f630 100644 (file)
@@ -24,7 +24,9 @@ return array(
             'galerie/index/view' =>
                        __DIR__ . '/../view/galerie/index/view.phtml',  
             'galerie/mail/test' =>
-                       __DIR__ . '/../view/galerie/mail/test.phtml', 
+                       __DIR__ . '/../view/galerie/mail/test.phtml',  
+            'galerie/index/rsscheck' =>
+                       __DIR__ . '/../view/galerie/index/rsscheck.phtml', 
         ), 
         'template_path_stack' => array(
             'galerie' => __DIR__ . '/../view',
@@ -170,6 +172,16 @@ return array(
                         ),
                         'verb' => 'get',
                     ),
+                    'rsscheck' => array(
+                        'type'    => 'Literal',
+                        'options' => array(
+                            'route'    => '/rsscheck',
+                            'defaults' => array(
+                                'action' => 'rsscheck',
+                            ),
+                        ),
+                        'verb' => 'get',
+                    ),
 /*
                     'default' => array(
                         'type'    => 'Segment',
index fef7968..c2bd5f7 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;
@@ -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() {
diff --git a/module/Galerie/view/galerie/index/rsscheck.phtml b/module/Galerie/view/galerie/index/rsscheck.phtml
new file mode 100644 (file)
index 0000000..6422b76
--- /dev/null
@@ -0,0 +1,11 @@
+<p>CHECK RSS <em>back-office</em> d&rsquo;une <strong>galerie</strong>&nbsp;: view</p>
+
+<h1><?php echo $title; ?></h1>
+<p><?php echo $username; ?></p>
+
+<ul>
+<?php foreach($galeries as $g): ?>
+<li><?php echo $g; ?></li>
+<?php endforeach; ?>
+</ul>
+