Skip to content

Instantly share code, notes, and snippets.

@Isa3v
Last active February 24, 2023 10:20
Show Gist options
  • Save Isa3v/5275d6c9d1a8be02ab08fdb6d6144fd7 to your computer and use it in GitHub Desktop.
Save Isa3v/5275d6c9d1a8be02ab08fdb6d6144fd7 to your computer and use it in GitHub Desktop.
Яндекс Турбо-страницы (cms netcat)

Яндекс Турбо-страницы (cms netcat)

Делаем через новый шаблон

Вроде в NetCat есть возможность подключить rss канал в настройках компонента, но у меня не работало и редиректило на главную
  • Создаем новый пустой шаблон
  • В header добавляем код из template.php
  • Настраеваем компоненты по комментам из кода
  • После создаем страницу с нашим шаблоном (Например RSS называем)
  • При переходе, сформируется список

Если страница долго грузится и выбивает 500 ошибку, то возможно суммарное кол-во страниц > 1000 и скрипт не может обработать столько запросов.
Пробуем тогда не обьединять запросы к бд, а по отедельности в новых шаблонах. Например:

  • RSS News
  • RSS service

Вариант 2: Попробуйте в php.ini (файл конфигурации) выставить:
ini_set("max_execution_time", "200");
или файл .htaccess:
php_value max_execution_time 200

<?
set_time_limit (999);
//Объявляем шаблон как xml документ
header('Content-Type: application/xml; charset=utf-8');
//УРЛ сайта (Можно и через $_SERVER (у меня просто был сайт, который в админке выдавал другой url)
$site_url = 'http://www.renessans-samara.ru';?>
<? echo '<?xml version="1.0" encoding="utf-8"?>';?>
<rss xmlns:yandex="http://news.yandex.ru"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:turbo="http://turbo.yandex.ru"
version="2.0">
<channel>
<?php
//Подклоючаем новости и акции
$component_db = 'Message2009'; //Название таблицы в бд (номер компонента (не раздела)) + Message
$component_id = str_replace('Message', '', $component_db);
$nc_core->db->query("
//Поля которые нам нужны для выгрузки (Они могут быть разные у компонента)
SELECT `Image`,`Message_ID`,`Name`,`ncTitle`, `text`, `LastUpdated`
//Ну тут наша таблица
FROM `".$component_db."`
//Тут проверяем включен ли объект
WHERE `Checked` =1
");
$arr_news = $nc_core->db->last_result;
if(isset($arr_news)){
//Разбираем массив с элементами
foreach($arr_news as $key=>$item){?>
<item turbo="true">
<link><?=$site_url?><?= nc_message_link($item->Message_ID, $component_id)?></link>
<title><?=$item->Name?></title>
<pubDate><?=$item->LastUpdated?></pubDate>
<turbo:content>
<![CDATA[
<?=($item->Image ? '<img src="'.nc_file_path($component_id, $item->Message_ID, 'Image').'">' : '')?>
<?=$item->text?>
]]>
</turbo:content>
</item>
<?}
}?>
</channel>
</rss>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment