27.11.2018

Статьи / Настройка макросов onerror

Во время парсинга невозможно заранее предугадать удастся ли парсеру собрать указанное в шаблоне количество данных. Например, в шаблоне может быть 5 картинок, а парсер сможет найти только 4. Поведение программы в случае, когда не удается собрать нужное количество данных можно регулировать с помощью настройки onerror.

На данный момент эта настройка работает только для макросов парсера.

С помощью этой настройки мы можем задать 2 сценария поведения для генератора, в случае, если не удалось собрать достаточно данных: skip.mac и skip.post

Первый сценарий, это пропуск макроса. Если парсер не собрал достаточно данных, например, 10 предложений текста вместо 15, то он выведет 10 и перейдет к следующему макросу. Или допустим в текущем месте шаблона нужно вывести картинку, а парсер не смог ее найти, то генератор просто оставит это место пустым.

Второй сценарий, это пропуск статьи. Если парсер не смог найти нужное кол-во данных, то он пропускает статью, оставляет ее в очереди на генерацию и переходит к следующей. В последствии генератор будет возвращаться к пропущенной статье и пытаться собрать для нее нужное кол-во данных снова.

По умолчанию макросы парсера работают по первому сценарию.

Допустим, у нас есть макрос, который парсит 5 предложений текста:

[d-parser.text.asis count="5"]

Если мы добавим в него настройку onerror, то мы сможем регулировать поведение генератора, в случае, если парсеру не удалось собрать 5 предложений. Выглядеть это будет так:

[d-parser.text.asis count="5" onerror="skip.post"]

В таком случае, если парсеру не удалось собрать нужное кол-во текста, то макрос пропустится.

Для одинаковых макросов в шаблоне достаточно указать настройку один раз.

Например, если у нас несколько макросов картинок и нам надо, чтобы в случае, если не удалось найти нужное кол-во картинок, статья не публиковалась, то достаточно указать настройку onerror="skip.post" только для первого макроса. С другой стороны, если указать настройку для нескольких макросов, ничего страшного не произойдет.

www.megastock.com Здесь находится аттестат нашего WM идентификатора 164562048829