cotonti.com : Проблема со временем в RSS https://www.cotonti.com Laatste forum onderwerpen Cotonti en Sat, 10 Jan 2026 06:39:20 -0000 jcrush Смотрю разговор о Я.новостях...

можно кстати жестко зону прописать в файле рсс.

]]>
Di, 10 Apr 2012 12:07:52 -0000
Trustmaster В спецификации RSS нет ни единого упоминания <fulltext>. Обычно используется description + обрезка по more.

]]>
Wo, 29 Feb 2012 06:31:20 -0000
staleo

RSS_ROW_DESCRIPTION - не ошибка, в RSS этот тег <description> называется.

В том-то и штука, что в <description> именно транслируется не весь текст новости, а ее лид, краткое саммари, а полный текст выводится в теге <fulltext>. А в .tpl {RSS_ROW_DESCRIPTION} выводит полный текст страницы.

]]>
Di, 28 Feb 2012 19:37:20 -0000
Trustmaster RSS_ROW_DESCRIPTION - не ошибка, в RSS этот тег <description> называется. Вот то, что мы там по умолчанию htmlspecialchars не применяем - это ошибка.

]]>
Di, 28 Feb 2012 08:04:47 -0000
Dayver Хаки - нехорошо (при первом же обновлении поймете), все же лучше было бы использовать колбекa в шаблоне.

А то что модуль RSS не знаком с экстраполями - уже упущение надо бы тикет забабахать

]]>
Ma, 27 Feb 2012 22:47:18 -0000
staleo Решил проблему так: в rss.php строку #253

'RSS_ROW_DESCRIPTION' => cot_convert_relative_urls($item['description']),

поменял на

'RSS_ROW_DESCRIPTION' => htmlspecialchars($item['description']),

htmlspecialchars — это и есть функция, которая переводит все символы, которые могут быть интерпретированы как часть синтаксиса, в HTML-коды символов. Дайверу опять спасибо. :)

Если я правильно понял, cot_convert_relative_urls конвертирует относительные урлы в абсолютные, а мне это не нужно, поэтому функцию выкинул.

Кстати, а то, что текст новости называется RSS_ROW_DESCRIPTION — это точно не ошибка? А то можно спутать со названием поля DESC для страницы.

Ну и опять к вопросу возвращусь: можно ли заставить RSS-овский .tpl подхватывать экстраполя? Дело в том, что Яндекс.Новости не хочет подсасывать картинки в тексте если они не вставлены в таком виде внутри <item>:

<enclosure url="http://www.rossiyskie-novosti.ru/2003/03/25/yandex.jpg" type="image/jpeg"/>

А это фигово.

]]>
Ma, 27 Feb 2012 22:02:38 -0000
esclkm из собственного опыта: я вставляю все пользовательские функции в php файл темы оформления

]]>
Ma, 27 Feb 2012 16:40:49 -0000
Dayver Поскольку фид формируется посредством шаблона то не вижу никакой проблемы настоить его как только яндексу угодно. Если прочитать мануал по шаблонизатору http://www.cotonti.com/docs/ext/themes/cotemplate_statements то увидим раздел про Callbacks - тоесть внутри шаблона к переменной можно применить любую функцию .... ищем в мануале по пхп функцию которая делает из символов их в HTML сущности и ...... ииии все тока тс-с-с никому не расказывайте что все так просто что даже лезть в пхп файлы и что то хакать не нужно 

Добавлено вечность спустя:

Кстати еще для просветления массам полезно знать что касательно ссылок то котовская функция cot_url умеет это делать(замену спец символов в их HTML сущности) автоматом если ее вызвать с 4-тым параметров равным true

/**
* Transforms parameters into URL by following user-defined rules.
* This function can be overloaded by cot_url_custom().
*
* @param string $name Module or script name
* @param mixed $params URL parameters as array or parameter string
* @param string $tail URL postfix, e.g. anchor
* @param bool $htmlspecialchars_bypass If TRUE, will not convert & to &amp; and so on.
* @param bool $ignore_appendix If TRUE, $cot_url_appendix will be ignored for this URL
* @return string Valid HTTP URL
*/
function cot_url($name, $params = '', $tail = '', $htmlspecialchars_bypass = false, $ignore_appendix = false)
]]>
Ma, 27 Feb 2012 06:52:59 -0000
staleo Спасибо, заработало!

И не отходя от кассы: можно ли заставить RSS-овский .tpl подхватывать экстраполя? Мы за тикетом не постоим!

Добавлено 2 дня спустя:

В общем, всплыла еще одна большая засада.

Мне вообще этот RSS-канал нужен исключительно для Яндекс.Новостей. Был сайт на Genoa, пока переводил на Сиену, Я.Новости выключили импорт с сайта. Ну ладно, думаю, потом обратимся, они включат назад. Все прекрасно заработало, проблема с часовым поясом решена, благодаря Дайверу и Трастмастеру. Пишу в Яндекс: подключайте, мол. А они: а почитайте наши новые требования к оформлению экспортного файла. Открываю требования и вижу:

Встречающиеся в тексте символы < > & ' " необходимо заменять на соответствующие элементы:
& на &amp;
< на &lt;
> на &gt;
' на &apos;
" на &quot;
...
Пример, ссылка "http://some.host.ru/?id=1&page=10" приводится к виду "http://some.host.ru/?id=1&amp;page=10"

Я нереально офигел от такой постановки вопроса. Ранее Я.Новости уже и так не удовлетворял самый простой задокументированный и старый как мир формат RSS-фида, и они заставляли туда пихать, например, этот свой дурацкий тег <yandex:full-text>. Поисковик должен сам подстраиваться под генераторов контента? Не, не слышал. Это пусть тупые Рамблер с Гуглом импортируют новости просто потому, что такие новости пишутся. А мы, Яндекс, — монстры рунета, а монстры рунета могут и не стесняться требовать в 2012 году экспортный файл. Ну да ладно, бог с ним с этим <yandex:full-text>, в конце концов мод RSS под Genoa был небольшой и на 2 минуты.

Но сейчас! Сейчас Яндекс требует и элементы HTML-форматирования менять для экспортного файла. А у меня там, понятно, везде < /br> и все такое. И как с этим быть, я, откровенно говоря, не знаю абсолютно.

У меня пока нет никакого другого решения, кроме как, — тс-с-с, — взять и от руки написать этот rss.php со всеми нужными тегами и всей фигней. Пусть они потом подключат, позаполнять файлик два-три дня, а потом бросить к чертовой матери.

Но вдруг вы знаете, как сделать все красиво и автоматом?

]]>
Thu, 23 Feb 2012 22:50:21 -0000
Trustmaster Проблема несколько глубже. Cotonti использует временную зону GMT по умолчанию и не позволяет её изменять, поскольку все даты в базе хранятся именно в этой зоне. Смещение добавляется уже при отображении для каждого пользователя. Всё это замечательно работает, кроме date('r'), поскольку PHP не знает о временной зоне Cotonti. Приходится фиксить это вручную. Исправление уже на гите.

]]>
Thu, 23 Feb 2012 18:43:09 -0000
Dayver Наверное потому что в страницах дату генерит котовская функция 

... 
'DATE' => cot_date($date_format, $page_data['page_date']),
 ...

а в RSS не так(нативная пхп-шная)

...
$items[$i]['pubDate'] = date('r', $row['page_date']);
...

Если заменить на

...
$items[$i]['pubDate'] = cot_date('r', $row['page_date']);
...

может случится щастье, а может и нет smiley

]]>
Wo, 22 Feb 2012 14:16:39 -0000
staleo Здравствуйте,

Никак не могу победить время, которое плагин RSS выводит тегом {RSS_ROW_DATE}. Сейчас выводится вот что: <pubDate>Tue, 21 Feb 2012 09:01:00 +0000</pubDate>, хотя в datas/config.php проставлено date_default_timezone_set('Europe/Moscow');, то есть вывод всего времени должен идти с корректировкой +0400. Он, собственно говоря, и выходит с такой корректировкой, например, в страницах, а в RSS — никак.

Как тут поступить, не подскажете?

Добавлено 19 часов спустя:

Неужели нет решения?

Ну откуда-то эти +0000 все же берутся же!

]]>
Di, 21 Feb 2012 13:58:16 -0000