SimplaCMS: подключаем Яндекс Турбо для новостей
Создадим новый файл RssView.php в папке /view/ со следующим содержимым:
<?PHP
require_once('View.php');
class RssView extends View
{
public function fetch()
{
$items_per_page = 20;
$params = array();
$params['visible'] = 1;
$params['limit'] = $items_per_page;
switch($this->request->get('type', 'string')) {
default:
$items = $this->blog->get_posts($params);
$category = 'Статьи компании';
$cat_url = $this->config->root_url.'/blog';
$base_url = $this->config->root_url.'/blog/';
}
header("Content-Type: application/rss+xml; charset=UTF-8");
$p = $items[0];
$rssfeed = '<?xml version="1.0" encoding="UTF-8"?>';
$rssfeed .= '<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">';
$rssfeed .= '<channel>';
$rssfeed .= '<title>'.$this->settings->site_name.'</title>';
$rssfeed .= '<link>'.$cat_url.'</link>';
$rssfeed .= '<description>'.$this->settings->company_name.'</description>';
$rssfeed .= '<language>ru-ru</language>';
$rssfeed .= '<category>' . $category . '</category>';
$rssfeed .= '<copyright>Copyright '.date('Y').' '.$this->settings->company_name.'</copyright>';
$rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</pubDate>';
$rssfeed .= '<lastBuildDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</lastBuildDate>';
foreach($items as $p) {
$rssfeed .= '<item turbo="true">';
$rssfeed .= '<guid isPermaLink="true">'. $base_url . $p->url . '</guid>';
$rssfeed .= '<link>'. $base_url . $p->url . '</link>';
$rssfeed .= '<turbo:content>';
$rssfeed .= '<![CDATA[';
$rssfeed .= '<header>';
$rssfeed .= '<h1>' . $p->name . '</h1>';
$rssfeed .= '</header>';
$rssfeed .= '<p>'. ($p->text) . '</p>';
$rssfeed .= '<div data-block="share" data-network="twitter, facebook"></div>';
$rssfeed .= ']]>';
$rssfeed .= '</turbo:content>';
$rssfeed .= '<title>' . $p->name . '</title>';
$rssfeed .= '<description><![CDATA[' . ($p->annotation) . ']]></description>';
$rssfeed .= '<comments>'. $base_url . $p->url . '#comments</comments>';
$rssfeed .= '<pubDate>' . date("D, d M Y H:i:s O", strtotime($p->date)) . '</pubDate>';
$rssfeed .= '</item>';
}
$rssfeed .= '</channel>';
$rssfeed .= '</rss>';
print($rssfeed);
exit();
}
}
Далее откроем в корне сайта .htaccess и после строчки
RewriteRule ^blog(.*)$ /news$1 [L,R=301]
Добавим в него новое правило:
RewriteRule ^rss?$ index.php?module=RssView [L,QSA]
Теперь у вас есть RSS лента, оптимизированная под Яндекс.Турбо по адресу ваш_сайт.ру/rss
Далее откроем Вебмастер Яндекса, откроем раздел Турбо Страницы -> Источники и добавим ссылку на ваш RSS-канал:
Нажимаем кнопку добавить и ждём когда канал загрузится в систему. После этого проверяем, чтобы всё работало без ошибок и нажимаем кнопку Вкл:
Теперь нужно несколько часов на модерацию вашего источника, а после завершения ваши новости будут в формате Яндекс Турбо ;-)