aggregator и HTML сущности

Главные вкладки

Аватар пользователя job job 4 апреля 2008 в 9:20

Здравствуйте господа!

Хочу поделиться с сообществом своей проблемой и, на мой взляд, ее решением, в работе со сборщиком новостей.

Агрегатор, при импорте новостей, зачастую выводит и спецсимволы:
&, ", ', <, > '

Вопрос. Как от этого избавиться?

Я не нашел лучшего способа, чем сделать небольшой хак к модулю aggregator:

1. В самый конец файла aggregator.module вставляем следующую функцию:
<?php
function xmlentities($value) {
return str_replace ( array ( '&' , '"', ''' , '<' , '>', ''' ), array ( '&', '"', "'", '<', '>', '�' ), $value );
}
?>

2. В файле aggregator.pages.inc вставляем дополнительные строки:

после каждого названия "title"
<?php
$variables['feed_title'] = check_plain($item->title);
?>
вставляем стороку
<?php
$variables['feed_title'] = xmlentities($item->title);
?>
после каждого описания "description"
<?php
$variables['content'] = review_filter_xss($item->description);
?>
вставляем стороку
<?php
$variables['content'] = xmlentities($item->description);
?>

Все! Радуйтесь красивому отображению Ваших новостей.

Указанную операцию можно совершить в обратном направлении, нужно только поменять местами array() в приведенной функции.
Демо: http://job.org.ua/kino

Комментарии

Аватар пользователя Troll Troll 9 мая 2008 в 20:51

Подскажите пожалуйста где лежит файл aggregator.pages.inc?

В папке Modules я вижу только: aggregator.css, aggregator.info, aggregator.module и aggregator.install.install

Аватар пользователя Химический Али Химический Али 11 июня 2008 в 19:37

Кстати, да. Насколкьо я помню, стандарт RSS2.0 требует мнемонизации спецсимволов. Я вроде столкнулся с этим косячком в друпале, но тогда не обратил внимания. Удивился, что в php (по крайне мере версии 4) нету функции, обратной htmlspecialchars или htmlentities,