2.10 - ошибка RSS

InstantCMS 2.X
#1 18 мая 2018 в 12:39
Обновился до 2.10, теперь RSS-лента сайта стала работать с ошибкой (отображается так в яндекс-браузере):

This page contains the following errors: error on line 12 at column 995: Entity 'laquo' not defined Below is a rendering of the page up to the first error.

Текст ошибки

При этом в опере все отображается нормально, в гугле просто исходный код ленты показывается, в мозилле пустая лента. Кто-нибудь сталкивался с такой проблемой?
#2 18 мая 2018 в 16:05
Методом тыка выяснилось, что читалкам не нравятся спецсимволы html в коде.
Вроде как файл feed.tpl.php некорректный, но могу ошибаться — может быть сам компонент.
Типограф пробовал как включать, так и отключать, ленту НЕ кеширую.
Заметил, что на другом сайте, на котором пользовался RSS ранее, после обновления на 2.10 теперь та же самая ошибка выскакивает. Думаю, это коснулось всех, просто не все пользуются RSS.
#3 18 мая 2018 в 22:41


Методом тыка выяснилось, что читалкам не нравятся спецсимволы html в коде.
Вроде как файл feed.tpl.php некорректный, но могу ошибаться — может быть сам компонент.
Типограф пробовал как включать, так и отключать, ленту НЕ кеширую.
Заметил, что на другом сайте, на котором пользовался RSS ранее, после обновления на 2.10 теперь та же самая ошибка выскакивает. Думаю, это коснулось всех, просто не все пользуются RSS.

AndroS

Подтверждаю
#4 19 мая 2018 в 09:05
"Похерачили" всю ленту, теперь и на сервисе отправки push уведомлений SendPulse ни одна из rss лент не может пройти проверку валида
#5 19 мая 2018 в 09:22
Да на 2.10 не работает
#6 19 мая 2018 в 11:29

Методом тыка выяснилось, что читалкам не нравятся спецсимволы html в коде.

AndroS
system/controllers/rss/hooks/content_befory_category.php
system/controllers/rss/hooks/content_befory_profile.php
строку
  1.  
  2. $link_tag = '<link title="'.html($feed_title, false).'" type="application/rss+xml" rel="alternate" href="'.$feed_url.'">';
  3.  
попробовать заменить на
  1. $link_tag = '<link title="'.htmlspecialchars($feed_title).'" type="application/rss+xml" rel="alternate" href="'.$feed_url.'">';
И вероятно в шаблоне нужно пробовать вместо функции html указать htmlspecialchars
#7 19 мая 2018 в 11:47
Старый балбес, не помогло, к сожалению (((
#8 19 мая 2018 в 11:58

Подтверждаю

@kami

Да на 2.10 не работает

@kami
Выявляется все же закономерность, потому создал тему на гите, дабы уважаемый Fuze не упустил проблему в следующем релизе.
#9 19 мая 2018 в 16:48


Методом тыка выяснилось, что читалкам не нравятся спецсимволы html в коде.

AndroS
system/controllers/rss/hooks/content_befory_category.php строка 20
system/controllers/rss/hooks/content_befory_profile.php строка 16
строку
  1.  
  2. $link_tag = '';
  3.  
заменить на
  1. $link_tag = '';

Старый балбес

не помогло к сожалению, интересно как скоро разрабы заметят столь критичную проблему, как мне кажется.
#11 19 мая 2018 в 17:21


@kami, надо здесь сделать как здесь

Loadырь
Увы, уважаемый Loadырь ((

Вот проверка валидатором что выдаёт:



This feed does not validate.

line 12, column 213: XML parsing error: <unknown>:12:213: undefined entity [help]

… желание бороться и стремиться к лучшему:« Я рисую лет с пяти. Увы, ...
^
In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendation.

line 2, column 0: Use of unknown namespace: news.yandex.ru [help]

<rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.c ..

.
#12 19 мая 2018 в 17:30
@kami, какой символ у вас стоит фиде в line 12, column 213?
#13 19 мая 2018 в 18:01


@kami, какой символ у вас стоит фиде в line 12, column 213 ?

Loadырь

Так понимаю, это кавычки, только "текстовая фраза" замененные на «текстовая фраза»

вот какие коды символов в ленте есть:

  1.  
  2. - &amp;nbsp; - не знаю ))
  3. - &laquo; - кавычки
  4. - &raquo; - кавычки
  5. - &ndash; - дефис
  6.  
#14 19 мая 2018 в 18:29
Тоже сталкивался в одном из своих компонентов с тем что некоторые редакторы добавляют &nbsp; вместо &_nbsp; (без подчёркивания).
Надо как-то так
  1. <description><?php html(preg_replace(array('/&amp;nbsp;/', '/&nbsp;/'), ' ', $item[$feed['mapping']['description']])); ?></description>
#15 19 мая 2018 в 18:32


Тоже сталкивался в одном из своих компонентов с тем что некоторые редакторы добавляют &nbsp; вместо &_nbsp; (без подчёркивания).
Надо как-то так

Loadырь

это куда вставлять по подробнее пожалуйста можно…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожие темы

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.