Не отображаются фото в rss

Вместо фотографий в канале новостей rss

#1 10 января 2012 в 21:35
Здравствуйте, Уважаемое сообщество!
Давно обратил внимание, что в каналах rss не отображаются фотографии, а выглядит это все вот так:
  1. Кто придумал «Человека разумного»?10 января 2012 г. 10:39Шведский врач Карл Линней принадлежит к числу знаменитых исследователей и первооткрывателей тайн природы. Линней разработал новую систематику растений и животных, лучшую и более современную и совершенную, чем та, которой пользовались ученые до него.
  2.  
  3. Медиа файлы article947.jpg (3.0 КБ)
Вот здесь можно посмотреть: tanat.info/rss/content/1/feed.rss

Я пытался найти решение, но поиск ничего не дал, может быть дело не в поиске, а в том, что я просто плохо искал, может быть кто-то знает решение данной проблемы?

Спасибо большое!
#2 10 января 2012 в 23:46
все очень банально смотрите файл /components/rssfeed/frontend.php в частности вот такой код
  1. if (isset($item['description'])){
  2. $rss .= '<description><![CDATA['.strip_tags($item['description']).']]></description>' ."\n";
  3. }
из которого видно что стоит функция strip_tags, которая режет все html теги. нужно ее убрать и добавить в формирование дескрипшена саму фотографию.
#3 11 января 2012 в 10:35
Спасибо, Уважаемый maxisoft. Не могли бы Вы подсказать, как добавить эту фотографию в дискрипшен. Я правда в этом ничего не смыслю? zstИ какой смысл его блокировать...???? scratch
#4 11 января 2012 в 12:53
Интересное решение предложил maxisoft. Обгуглился, но другой возможности всунуть изображение в rss не нашел ). Если только пользоваться сторонним сервисом FeedBurner.
Thanatognozija, чтобы вставить фото в rss, нужно будет покопаться в файле prss.php нужного вам компонента. В цикле while ($item = $inDB->fetch_assoc($rs)){} нужно найти переменную $items[$id]['description'] или создать, если нет. И в эту переменную уже добавить строку с html кодом изображения. Например, так:
  1. $image_file = PATH.'/images/photos/small/article'.$id.'.jpg';
  2. $image_url = $rooturl . '/images/photos/small/article'.$id.'.jpg';
  3.  
  4. $items[$id]['description'] .= file_exists($image_file) ? '<img src="'.$image_url.'">' : '';
Пример для компонента content.
#5 11 января 2012 в 13:17
Дело в том, что я это хочу сделать для FeedBurner, который не показывает картинки. Он выводит их как MEDIA ENCLOSURE: tanat.info/images/photos/small/article948.jpg

Скажите, пожалуйста, а куда надо вставить данный код?
  1. $image_file = PATH.'/images/photos/small/article'.$id.'.jpg';
  2. $image_url = $rooturl . '/images/photos/small/article'.$id.'.jpg';
  3.  
  4. $items[$id]['description'] .= file_exists($image_file) ? '<img src="'.$image_url.'">' : '';
#6 11 января 2012 в 14:41

Скажите, пожалуйста, а куда надо вставить данный код?

Thanatognozija
Если для компонента content, то строки:
  1. $image_file = PATH.'/images/photos/small/article'.$id.'.jpg';
  2. $image_url = $rooturl . '/images/photos/small/article'.$id.'.jpg';
там уже есть. Находите строку 73 в файле prss.php компонента content
  1. $items[$id]['image'] = file_exists($image_file) ? $image_url : '';
и заменяте на
  1. $items[$id]['description'] .= file_exists($image_file) ? '<img src="'.$image_url.'">' : '';
И всё. Не забудьте подправить в файле /components/rssfeed/frontend.php строка 85
  1. $rss .= '<description><![CDATA['.trim(htmlspecialchars(strip_tags($item['description']))).']]></description>' ."\n";
Лучше заменить вот так:
  1. $rss .= '<description><![CDATA['.trim(strip_tags($item['description'], '<img>')).']]></description>' ."\n";
То есть убираем, htmlspecialchars(), а strip_tags() оставляем. Просто вносим второй параметр '<img>', который показывает, что тег <img> не нужно убирать. Если в разметке будете использовать ещё какие-то теги, то просто добавьте в этот второй параметр. Это будет безопаснее, чем просто убирать strip_tags().
#7 11 января 2012 в 14:55
Спасибо Всем огромное. Все получилось, но решил оставить без картинок, но и без сслыки на нее… потому, что они стали отображаться как-то хаотично, без форматирования слева, например…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.