Статьи / Настройка макросов 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" только для первого макроса. С другой стороны, если указать настройку для нескольких макросов, ничего страшного не произойдет.