Difference between revisions of "Workshop - week 06"
From mi-linux
Jump to navigationJump to searchLine 52: | Line 52: | ||
</pre> | </pre> | ||
− | + | You also need to create a view for your new controller/action. | |
<pre> | <pre> | ||
+ | |||
+ | <!-- application/views/scripts/feed/index.hhtml --> | ||
+ | |||
Feed Entries: <br /> | Feed Entries: <br /> | ||
<dl> | <dl> | ||
Line 64: | Line 67: | ||
</dl> | </dl> | ||
</pre> | </pre> | ||
+ | |||
+ | == Producing your own web feed == |
Revision as of 14:10, 28 January 2009
Main Page >> Web Frameworks >> Web Frameworks - Workbook >> Workshop - week 06
Consuming an existing web feed
First you need to create a new controller, with just one action (the "index" default one):
<?php // application/controllers/FeedController.php class FeedController extends Zend_Controller_Action { protected $_model; public function indexAction() { // Read remote feed try { $rss = Zend_Feed::import('http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml'); } catch (Zend_Feed_Exception $e) { // feed import failed echo "Exception caught importing feed: {$e->getMessage()}\n"; exit; } // Initialize the channel data array $channel = array( 'title' => $rss->title(), 'link' => $rss->link(), 'description' => $rss->description(), 'items' => array() ); // Loop over each item and store relevant data foreach ($rss as $item) { $channel['items'][] = array( 'title' => $item->title(), 'link' => $item->link(), 'description' => $item->description() ); } // Pass to view $this->view->entries = $channel['items']; } }
You also need to create a view for your new controller/action.
<!-- application/views/scripts/feed/index.hhtml --> Feed Entries: <br /> <dl> <!-- Loop through the entries provided by the controller --> <? foreach ($this->entries as $entry): ?> <dt><?= $this->escape($entry['title']) ?></dt> <dd><?= $this->escape($entry['description']) ?></dd> <? endforeach ?> </dl>