Zend Framework, создание RSS фидов и редиректа для Feedburner
Размещено 2009-05-01
в разделе Программирование | Метки:
Zend Framework, PHP, Feedburner
<?php
class RssController extends Zend_Controller_Action
{
public function articlesarticlesAction()
{
$articles_table = new articlesTable();
$articles_data = $articles_table->getLatest(10); // Получаем последние 10 статей (этот класс самим надо писать)
$base_url = 'http://www.yoururl.ru/';
$pubDate = date('Y-m-d');
$feedArray = array(
'title' => 'Новые статьи',
'link' => $base_url . 'rss/recent-articles/',
'description' => 'Новые статьи, добавленные на сайте.',
'language' => 'ru-ru',
'charset' => 'utf-8',
'pubDate' => $pubDate,
'generator' => '1000 specially trained monkeys',
'entries' => array()
);
foreach ($articles_data as $article_data) {
$feedArray['entries'][] = array(
'title' => trim($article_data['name']),
'link' => $base_url . 'articles/detail/id/' . $article_data['id'],
'guid' => $base_url . 'articles/detail/id/' . $article_data['id'],
'description' => $article_data['contents'],
'pubDate' => $article_data['added'],
);
}
$user_agent = $this->_request->getHeader('User-Agent'); // Получаем User-agent посетителя
$skip_useragents = isset($user_agent) ? preg_match('/feedburner|feedvalidator/i', $user_agent) : FALSE; // Проверяем не явлеется ли посетитель ботом Feedburner
if (!$skip_useragents) {
$this->getResponse()->setRedirect('http://feeds2.feedburner.com/yourwebsite-new-articles', 307); // Если это не бот Feedburner то редиректим на фид Feedburner
}
// Если это таки бот Feedburner подсовываем ему фид
$this->_helper->viewRenderer->setNoRender();
$feed = Zend_Feed::importArray($feedArray);
$feed->send();
}
}
?>