Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как записывать в БД все блоки из Rss ленты при помощи модуля AutoRss?

Как записывать в БД все блоки из Rss ленты при помощи модуля AutoRss?


     31.03.2019    tags, AutoRSS, теги    Общие вопросы, Общие вопросы по PHP, Модули, Ламерские вопросы    2601

вопрос
Здравствуйте!
Есть вопрос по AutoRss. Возможно кто-то уже решал подобный вопрос.
На одном из новостных сайтов стоит данный модуль, который периодически наполняет новостями ресурс, добавляя при этом теги, но он берет первый тег из строки в rss (...). Но часто в лентах есть несколько подобных блоков, как возможно брать все данные блоки, объединять и выводить в теги (1, 2, 3)?

Ответил: Тимур


Может кому пригодится
Находим это
		$tags    = $item->get_category();
		$rssTags = false;
		if ($tags) {
			$rssTags = entryDecode($tags->get_term());
		}
Меняем на это
		$rssTags = '';
		foreach ($item->get_categories() as $tags)
			{
				$rssTags .= $tags->get_label() . ',';

			}
Отредактировал 2-04-2019, 23:56 - Flash
Причина: Грамматические ошибки

3 комментария

Тимур
Юзер

Тимур - 31 марта 2019 15:40 -

На одном из новостных сайтов стоит данный модуль, который периодически наполняет новостями ресурс, добавляя при этом теги, но он берет первый тег из строки в rss
<category>...</category>
. Но часто в лентах есть несколько подобных блоков, как возможно брать все данные блоки, объединять и выводить в теги (1, 2, 3)?

tcse
Юзер

tcse - 1 апреля 2019 14:45 -

в актуальной версии AutoRSS https://github.com/tcse/DLE-AutoRSS
категории RSS фида добавляются все, через запятую.

378 строка

// Категории источника (они же теги)
		$tags    = $item->get_category();
		$rssTags = false;
		if ($tags) {
			$rssTags = entryDecode($tags->get_term());
		}
		$_rsst  = explode(', ', $rssTags);
		$_itags = explode(', ', $rssItem['tags']);
		$_rsst  = (trim($_rsst[0]) != '' && $rssItem['allowRssTags'] == 1) ? $_rsst : array();
		$_itags = (trim($_itags[0]) != '') ? $_itags : array();
		$_atags = array_merge($_itags, $_rsst);
		$mergedRssTags = implode(', ', $_atags);
		$newsItem['tags'] = $mergedRssTags;


копать, если что тут.

Тимур
Юзер

Тимур - 1 апреля 2019 15:57 -

В том то и дело что не добавляются.
Решил вопрос другим способом.
		$rssTags = '';
		foreach ($item->get_categories() as $tags)
			{
				$rssTags .= $tags->get_label() . ',';

			}
		$_rsst  = explode(', ', $rssTags);
		$_itags = explode(', ', $rssItem['tags']);

		$_rsst  = (trim($_rsst[0]) != '' && $rssItem['allowRssTags'] == 1) ? $_rsst : array();
		$_itags = (trim($_itags[0]) != '') ? $_itags : array();
		$_atags = array_merge($_itags, $_rsst);

		$mergedRssTags = implode(', ', $_atags);

		$newsItem['tags'] = $mergedRssTags;

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх