The author
Павел
Packages
18
Downloads
5 479
Автор дополнения
Packages
18
Downloads
5 479
Version 1.4.0-beta2
Release date 08.06.2017
Downloads 82
Views 25
Warning! This component requires PHP version 5.3 or higher! If your site uses PHP less than required, the installation of this package could break it.
Warning! This package requires MODX not less than 2.3 !
When adding tape fields that need to be parsed, instead of the field title (title or enclosure[url]) you can specify the @INLINE chunk to be processed by Fenom. Thanks to this, it is possible to build absolutely any logic in these fields, up to the creation of new sections «on the move».

More about the work


The task was to simplify the interaction with the component as much as possible.

Add a task

Go to the component page, click Add Task => Add RSS Feed.
On the Basic tab, fill in something like this:



Switch to the Configuration tab, where you can specify:
  • the template for created resources,
  • the context,
  • the parent container within the selected context,
  • you can configure the download of media content,
  • if necessary, to change the base tape tag and the base record tag.


The media content extensions and folders for saving each of the extensions are specified in JSON.

Click Save — the task has been added.

Add fields for parsing

On the newly added task, we right-click and select task fields:



A list of the tasks fields is opened, and it is still empty.

In addition to adding a task, we can view the feed values array — this is a printed array with the data from the first tape entry:



Remember the fields names that we need to parse on the site and click Add field. A window opens with the option to specify:

  1. The System field. A drop-down list of system resource fields and TV fields.
  2. The Source field. The text field, in which you need to enter the tag name in the RSS-feed.
    You can specify @INLINE chunk to be processed by Fenom from pdoTools. The chunk contains placeholders of all possible fields from the RSS-feed, which are in the record between the tags item, as well as an array with the tasks settings $_task.
    Due to the introduction of Fenom into this field, it will be possible to make a selection from the category (for example in RSS Lenta.ru) on the resource base, in search of an ID of a similar category on our site, and if not found, to add.
  3. The enclosure tag and the like are either specified via the chunk: «@INLINE {$enclosure['url']}», or as a CSS selector: «enclosure[url]».If not specified, or the value for this field in the tape is empty, then the value for theSystem field will be taken from the next field — Default value.
  4. The default value. In this field, you can specify the value that will be recorded in the System field. For example, if we chose class_key in the System field then in order to create Tickets, we write «Ticket» in the Default value field, and leave a blank in the Source Field.
    The same «magic» can be done with the field published, indicating the default «1». Then the resource on the site will be added immediately published.



In addition to the basic fields with data that need to be uploaded to the site, we also need to add a field according to which the package will understand that this entry is already on the site. To do this, add a new field, leave the System field empty, and in the Source Fieldsource write, for example, «guid» (because it is the least subject to change). It must be something like this:



Save. In the fields list on this field we put the indicator Unique field (button with a star on the left):



Everything is ready for parsing, both one-time and one-minute (the component has a script to run quests from the CRON)

Thread in MODX.PRO community.

1.4.0-beta2 (04.08.2017)

  • Поправлена проверка на уникальность по хешу

1.4.0-beta (02.08.2017)

  • Добавлена поддержка пагинации на доноре

1.3.0-beta3 (02.08.2017)

  • Добавлена передача языка клиента (ru-RU) в заголовках при обращении к источнику

1.3.0-beta2 (10.02.2017)

  • Восстановлена совместимость с PHP 5.3

1.3.0-beta (10.02.2017)

  • Добавлен выбор синтаксиса в конфигурации HTML задания
  • Добавлен синтаксис регулярных выражений
  • Исправлено некорректное получение списка всех заданий при парсинге кроном: теперь подзадания исключаются

1.2.4-beta (05.02.2017)

  • Добавлена возможность указать скачивание медиа для конкретного поля задания
  • Исправлена некорректная подстановка схемы УРЛ для сторонних УРЛов вида //domain.zone/path/

1.2.3-beta (01.02.2017)

  • Добавлена переменная $_pls в параметры @INLINE чанка в системном поле, которая содержит массив значений, для получения нестандартных полей, например с двоеточием в ключе
  • Переписан метод xmlToArray на основе DOMDocument
  • Исправлен баг некорректного получения поля из XML с двоеточием в ключе
  • Исправлен баг с одновременным получением атрибутов и контента поля из XML

1.2.2-beta (19.01.2017)

  • Добавлена возможность указания кодировки страницы-источника

1.2.1-beta (17.01.2017)

  • Исправлен баг в подзадачах с переключением контекста на пустой
  • Исправлен баг в подзадачах с выборкой среза элементов массива

1.2.0-beta (15.01.2017)

  • Добавлена возможность совмещения заданий (запуск одного задания из другого)

1.1.2-beta (06.01.2017)

  • Исправлен баг с некорректным проставлением свойства "Показывать в дереве" у Тикетов
  • Добавлены системные поля: isfolder, show_in_tree, uri, uri_override

1.1.1-beta (05.01.2017)

  • Исправлен некорректный слив картинок с запятой и с кириллицей в УРЛе
  • Исправлен баг с записью уникального хеша ресурса в properties, если это ресурс Tickets
  • Исправлен баг с сохранением ТВ в ресурс Tickets
  • Исправлен баг HTML заданий, когда данные источника не клонировались

1.1.0-beta (28.12.2016)

  • Добавлен парсер HTML контента
  • Добавлено поле "От" и "Кол-во" для заданий
  • Переписаны процессоры добавления/обновления заданий
  • Переписаны грида/окна заданий на ExtJS
  • Переписан принцип связи объекта xpTask с субобъектами (xpTaskRss|xpTaskHtml)
  • Исправлен баг при парсинге RSS, когда в ленте есть только 1 запись
  • Рефакторинг кода класса xpParser

1.0.3-beta2 (02.12.2016)

  • Исправлена ошибка с длинным индексом поля url у объекта xpTaskRss

1.0.3-beta (02.12.2016)

  • В процессор mgr/task/parse добавлена логика для использования процессора из компонента Scheduler
  • Скрипт cron/parser.php переписан в соответствии с новой логикой процессора mgr/task/parse
  • В комплект добавлена библиотека mtdowling/cron-expression для обработки Cron синтаксиса в параметре "cron" при запуске процессора mgr/task/parse из компонента Scheduler
  • Исправлена ошибка добавления ресурса в отличный от web контекст, при запуске скрипта из консоли

1.0.2-beta2 (21.11.2016)

  • Исправлена ошибка перезаписи всего контента поля, если в нём найдена ссылка на медиа-контент и включён параметр "Скачивать медиа-контент"

1.0.2-beta (21.11.2016)

  • В параметры @INLINE чанка в системном поле добавлен параметр $_task с массивом задания
  • Исправлена ошибка переназначения parent и template, когда они указаны в виде поля задания
  • Исправлена ошибка присвоения ресурсу уникального хеша на основе выбранного поля в задании

1.0.1-beta (17.11.2016)

  • Добавлена возможность указать уникальное поле задания, по которому будет проверяться существование ресурса в базе

1.0.0-beta (14.11.2016)

  • Start