diff options
| author | 2013-03-20 22:56:17 +0100 | |
|---|---|---|
| committer | 2013-03-20 22:56:17 +0100 | |
| commit | bf24aa601f96d184f9635fa72377d7521b324b4f (patch) | |
| tree | 647e17c2a22c0e861c5dbe8f4efef1ea86bf8084 /app | |
| parent | 80d4f5cf3d2d48fb095d0a2c7013dc3d99ae0065 (diff) | |
Ajout controller Rss pour export au format RSS (très très basique) #34 + ajout lib text pour gérer le bbcode
Diffstat (limited to 'app')
| -rw-r--r-- | app/App_FrontController.php | 1 | ||||
| -rwxr-xr-x | app/controllers/rssController.php | 35 | ||||
| -rwxr-xr-x | app/views/rss/public.phtml | 31 |
3 files changed, 67 insertions, 0 deletions
diff --git a/app/App_FrontController.php b/app/App_FrontController.php index 55bcfc167..0ff7bf182 100644 --- a/app/App_FrontController.php +++ b/app/App_FrontController.php @@ -20,6 +20,7 @@ class App_FrontController extends FrontController { require (LIB_PATH . '/lib_phpQuery.php'); require (LIB_PATH . '/lib_rss.php'); require (LIB_PATH . '/lib_simplepie.php'); + require (LIB_PATH . '/lib_text.php'); } private function loadModels () { diff --git a/app/controllers/rssController.php b/app/controllers/rssController.php new file mode 100755 index 000000000..1f66f4517 --- /dev/null +++ b/app/controllers/rssController.php @@ -0,0 +1,35 @@ +<?php + +class rssController extends ActionController { + public function firstAction() { + header('Content-Type: text/xml'); + header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + + $this->view->_useLayout (false); + } + + public function publicAction () { + $entryDAO = new EntryDAO (); + $entryDAO->_nbItemsPerPage (-1); + + $items = $entryDAO->listPublic ('low_to_high'); + + try { + $page = Request::param('page', 1); + $nb = Request::param('nb', 15); + $this->view->itemPaginator = new Paginator($items); + $this->view->itemPaginator->_nbItemsPerPage($nb); + $this->view->itemPaginator->_currentPage($page); + } catch(CurrentPagePaginationException $e) { + Error::error( + 404, + array('error' => array('La page que vous cherchez n\'existe pas')) + ); + } + } + + public function getNbNotReadAction() { + } +} diff --git a/app/views/rss/public.phtml b/app/views/rss/public.phtml new file mode 100755 index 000000000..04a035699 --- /dev/null +++ b/app/views/rss/public.phtml @@ -0,0 +1,31 @@ +<?php echo '<?xml version="1.0" encoding="UTF-8" ?>'; ?> +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <title><?php echo View::title(); ?></title> + <link><?php echo Url::display(); ?></link> + <description>Flux public de <?php echo View::title(); ?></description> + <language>fr</language> + <pubDate><?php echo date('D, d M Y H:i:s O'); ?></pubDate> + <lastBuildDate><?php echo gmdate('D, d M Y H:i:s'); ?> GMT</lastBuildDate> + <atom:link href="<?php echo Url::display(array('a' => 'rss')); ?>" rel="self" type="application/rss+xml" /> +<?php +$items = $this->itemPaginator->items (); +foreach ($items as $item) { +?> + <item> + <title><?php echo htmlspecialchars(html_entity_decode($item->title ())); ?></title> + <link><?php echo $item->link (); ?></link> + <?php $author = $item->author (); ?> + <?php if ($author != '') { ?> + <dc:creator><?php echo $author; ?></dc:creator> + <?php } ?> + <description><![CDATA[<?php + echo html_entity_decode($item->notes (false, false)); +?>]]></description> + <pubDate><?php echo date('D, d M Y H:i:s O', $item->date (true)); ?></pubDate> + <guid><?php echo $item->guid (); ?></guid> + </item> +<?php } ?> + + </channel> +</rss> |
