Gerando feeds rss com sfFeed2Plugin
Vou mostrar nesse post uma maneira que utilizo para gerar RSS de notícias publicadas.
Primeiramente, precisamos ter instalado o plugin sfFeed2Plugin
Considere um schema.yml parecido com esse
propel:
artigo:
_attributes: { Artigo }
id:
titulo: varchar(200)
data: date
resumo: varchar(200)
texto: longvarchar
…
Estou usando também uma rota para os links de noticias. O apps/APLICACAO/config/routings.yml precisa ser configurado para isso. Essa rota será utilizada no link para o artigo.
noticiaver:
url: /noticia/:id
param: { module: noticias , action: ver }
Dentro do módulo noticias, vamos adicionar no apps/APLICACAO/modules/noticias/actions/actions.class.php
public function executeRss() {
$feed = new sfAtom1Feed();
$feed->initialize(array(
‘title’ => ‘RSS – Notícias’,
‘link’ => ‘http://www.link-do-titulo-do-rss.com.br/’
));
// selecionando os artigos de 5 em 5
$c = new Criteria;
$c->addDescendingOrderByColumn(ArtigoPeer::DATA);
$c->setLimit(5);
$artigos = ArtigoPeer::doSelect($c);
foreach ($artigos as $artigo)
{
$item = new sfFeedItem();
$item->initialize(array(
‘title’ => $artigo->getTitulo(),
‘link’ => ‘@noticiaver?id=’.$artigo->getId(),
‘pubDate’ => $artigo->getData("U"),
‘uniqueId’ => $artigo->getId(),
‘description’ => $artigo->getResumo(),
));
$feed->addItem($item);
}
$this->feed = $feed;
$this->setLayout(false);
}
No template apps/APLICACAO/modules/noticias/templates/rssSuccess.php precisamos ter somente
Pronto. Você terá o RSS das notícias em um endereço parecido com esse, www.seusite.com.br/noticias/rss.
