How to add a custom RSS feed to a custom component? - Joomla! Forum - community, help and support
as practice i'm developing custom j2.5 component. it's working far. want add custom rss feed component. i've been reading 'mastering joomla' (it's j1.5, know, it's basic code) , search forum. i've found topic still can't figure out how works.
it's simple event component so: categories, venues , events.
the things i've done far:
made model: feeds.php (in model folder)
made view: view.feed.php (in views/events folder)
and template: default.feeds.php (i know foreach routine overdone, i'm lost. it's way want present feed) in views/events/tmpl folder.
and least, link in webpage wich shows normal eventdata in website:
the output een error 500: view not found[name, type, prefix]: events, feeds, eventmanagerview
can please me further.
thank you
it's simple event component so: categories, venues , events.
the things i've done far:
made model: feeds.php (in model folder)
code: select all
<?php
// no direct access file
defined('_jexec') or die('restricted access');
// import joomla modellist library
jimport('joomla.application.component.modellist');
/**
* feed model
*/
class eventmanagermodelfeeds extends jmodellist
{
protected function getlistquery(){
$db = jfactory::getdbo();
$query = $db->getquery(true);
$query = ' select u.*, a.*, v.* '.
' #__eventmanager_events u '.
' left join #__eventmanager_venues ' .
' on u.venue_id = a.venue_id ' .
' left join #__eventmanager_categories v ' .
' on u.cat_id = v.cat_id ' .
' start_date >= now()-interval 1 day' .
' order start_date'
;
return $query;
}
}
?>made view: view.feed.php (in views/events folder)
code: select all
<?php
// no direct access file
defined('_jexec') or die('restricted access');
// import joomla view library
jimport('joomla.application.component.view');
/**
* eventmanager component rss feed
*
* @package joomla
* @subpackage eventmanager component
* @since 0.9
*/
/**
* feed view
*/
class eventmanagerviewfeeds extends jview
{
function display($tpl = null)
{
$document =& jfactory::getdocument();
$document->setlink(jroute::_('index.php?option=com_eventmanager'));
if ($document->gettype() != 'feed') {
jerror::raiseerror('e999', 'fatal error, document type: "' . $doc->gettype() . '" not supported.');
};
//get data model:
$items = $this->get('items');
//assign value item:
foreach ($items $item) :
$item = new jfeeditem();
$item->title = $feed->title;
$item->location = $feed->a.venue;
$item->description = $feed->e_description;
$item->date = date("l d m", strtotime($feed->start_date));
$item->pubdate = $feed->start_date;
$document->additem($item);
endforeach;
parent::display($tpl);
}
}
?>and template: default.feeds.php (i know foreach routine overdone, i'm lost. it's way want present feed) in views/events/tmpl folder.
code: select all
<?php
// no direct access file
defined('_jexec') or die('restricted access');
// load tooltip behavior
jhtml::_('behavior.tooltip');
require_once jpath_component.'/controller.php';
?>
<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>barflyer agenda</title>
<link>http://www.barflyer.nl</link>
<description>barflyer evenementen</description>
<language>nl-nl</language>
<copyright>2012 barflyer</copyright>
<webmaster>h.van der vliet</webmaster>
<lastbuilddate>04 dec 2012</lastbuilddate>
<image>
<url>http://www.barflyer.nl/images/logo_barflyer.png</url>
<title>barflyer evenementen</title>
<link>http://www.barflyer.nl</link>
<height>95</height>
<width>133</width>
<description>a web development resource center</description>
</image>
<?php
foreach($this->items $i => $item) :
echo '<item>
<title>'.$item['title'].'</title>
<link>'.$item['article_url'].'</link>
<description>'.$item['e_description'].'</description>
<category>'.$item['cat_id'].'</category>
<pubdate>'.$item['start_date'].'</pubdate>
<source url="http://www.barflyer.nl/index.php/evenementen2">barflyer</source>
</item>';
endforeach;
?>
</channel>
</rss>
and least, link in webpage wich shows normal eventdata in website:
code: select all
<a href="<?php echo jroute::_('index.php?option=com_eventmanager&format=feeds');?>" target="_blank">
<?php $feedimage = juri::root() . "components/com_eventmanager/images/barflyer_rss_small2.png"; ?>
<img src="<?php echo $feedimage; ?>" align="right" />the output een error 500: view not found[name, type, prefix]: events, feeds, eventmanagerview
can please me further.
thank you
Comments
Post a Comment