From 7054185396fe453db27a958653a70d76c1186c21 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20CHAZALLET?= Date: Sun, 2 Dec 2012 17:18:33 +0100 Subject: [PATCH] Rajout d'un lecteur de flux RSS --- module/Galerie/config/module.config.php | 14 +++++++++- .../src/Galerie/Controller/IndexController.php | 27 +++++++++++++++++++- module/Galerie/view/galerie/index/rsscheck.phtml | 11 ++++++++ 3 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 module/Galerie/view/galerie/index/rsscheck.phtml diff --git a/module/Galerie/config/module.config.php b/module/Galerie/config/module.config.php index d2e661e..066f630 100644 --- a/module/Galerie/config/module.config.php +++ b/module/Galerie/config/module.config.php @@ -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', diff --git a/module/Galerie/src/Galerie/Controller/IndexController.php b/module/Galerie/src/Galerie/Controller/IndexController.php index fef7968..c2bd5f7 100644 --- a/module/Galerie/src/Galerie/Controller/IndexController.php +++ b/module/Galerie/src/Galerie/Controller/IndexController.php @@ -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 index 0000000..6422b76 --- /dev/null +++ b/module/Galerie/view/galerie/index/rsscheck.phtml @@ -0,0 +1,11 @@ +

CHECK RSS back-office d’une galerie : view

+ +

+

+ + + -- 1.7.10.4