PHP скрипты доступны в модуле начиная с версии SimplePars v4.6
Данная функция предназначена для расширения стандартных возможностей модуля SimplePars до бесконечности ;-)
Если у вас есть необходимость в реализации особой логики работы парсера, которая выходит за рамки стандартного функционала SimplePars тогда, вы пришли по адресу.
Предисловие
Техническая поддержка модуля не осуществляется при включенных собственных скриптах. То есть, если вы используете собственные скрипты в модуле, то пока вы их не отключите, тех поддержка не осуществляется.
Это связано с тем, что собственные скрипты не ограничены ничем, и вы при помощи скриптов можете не только расширить возможности модуля, так же занести ошибку из за которой модуль не сможет продолжить работу.
Фатальная ошибка в вашем PHP скрипте приведет к полному зависанию работы модуля.
Если пользователи будут пренебрегать этим правилом и писать мне что парсер не работает, а потом окажется что у вас включена работа с собственными скриптами, будет вам АЯЯЙ, буду злиться. Очень!
Основные требования.
- Не совсем требование это факт. При включении работы через собственные скрипты модуль будет работать исключительно в однопоточном режиме.
- Скрипт не должен выводить информацию на экран. (Можете выводить куда то в собственный файл логов.)
- Скрипт должен выполнить совою работу за ограниченное время. Ограничение указано в настройках php max_execution_time . Обратите внимание что в стандарте на хостинге это значение равно 30сек. Так же в это время должен полностью завершить работу сам модуль. И в это же время входит пауза парсинга. Не забывайте об этом.
- Скрипт не должен содержать ошибок, исключений. Он должен всегда корректно завершаться.
Основы работы собственных скриптов.
При использовании собственных скриптов модуль SimplePars в определенные моменты будет отступать от выполнения стандартной логики и передавать управления вашему скрипту.
Именно по этой причине ошибка в вашем скрипте будет приводить к зависанию всего модуля.
Как это визуально выглядит.
То есть, модуль выполняет свою работу, а в определенные моменты передает управления вашим скриптам. Скрипты помечены красным квадратом с подписью SC
После удачного завершения работы вашего скрипта управления отдается обратно модулю и он продолжает свою работу.
Интерфейс.
После перехода в вкладке PHP скрипты вы увидите окно с выбором порядка выполнения скриптов.
- Включения/Отключения использования PHP скриптов в модуле SimplePars. (Именно этот переключатель нужно установить в положение выкл если вам нужна тех поддержка. Тех поддержка с включенными скриптами не предоставляется)
- Кнопка сохранения выбранных настроек.
- Вкл/Выкл работы определенного скрипта.
- Выбор какой именно скрипт запускать. Как их создавать мы поговорим дальше в статье.
- Когда выполнять скрипты. То есть в какой момент модуль передаст управления вашему скрипту.
- Очередь выполнения скриптов. Определяет порядок выполнения если у вас два и больше скрипта назначены на один и тот же момент.
- Краткий комментарий к этому скрипту. Что бы знать зачем его запрограммировали. Для себя.
- Удалить задание.
В какой момент можно использовать PHP скрипты.
На данный момент вы можете запустить выполнения своих скриптов на таких этапах:
- Перед отправкой ссылки на парсинг - В данном случае модуль достанет из базы ссылку которую нужно спарсить, и перед тем как отправить запрос на парсинг этой ссылки, вы можете выполнить свой скрипт.
- Перед Парсинг в ИМ - После того как модуль произведет поиск замену, подготовит все данные, и перед тем как начнется выполнятся добавления или обновления товара, вы сможете использовать свой скрипт.
- После Парсинга в ИМ - После того как модуль загрузит или обновит товар.
- Перед Парсинг в CSV - После того как будет выполнен поиск замена всех границ парсинга, будут составлены данные для записи в CSV и перед тем как произведется запись, вы можете выполнить свой скрипт.
- После Парсинг в CSV - После того как модуль запишет составленные данные в CSV.
Я не просто так сделал такое количество возможностей когда вы можете использовать PHP скрипты, так как в каждом из случаев в ваш скрипт будет передаваться разный набор данных, которые вы можете использовать в своих нуждах, или модифицировать и возвращать обратно в стандартную логику SimplePars.
В этой статье я не буду описывать все эти возможности, про это вы сможете прочитать в статье
PHP скрипты, максимальные возможности
Здесь я только приведу пример:
Перед Парсинг в ИМ - В вашем скрипте будет возможность получить доступ ко всем составленным границам парсинга, перед тем как модуль запишет их значения в товар. Вы сможете с ними делать все что угодно, в том числе модифицировать, и вернуть обратно модулю.
То есть, полная свобода действий. Так же у вас будет доступ к остальным настройкам модуля, и ко всем его функциям и методам.
Работа с скриптами.
Все скрипты хранятся по адресу /admin/simplepars/scripts/
А значит, вы можете написать скрипт и разместить его через FTP, либо же воспользоваться интерфейсом модуля для работы с скриптами.
Буду честен, встроенный интерфейс по написанию скриптов годится только для мелких правок, что то серьезное там не удобно писать, так что, можно и вручную загружать свои скрипты. Модуль их автоматически подхватит.
Интерфейс.
Здесь вы можете как создавать новые скрипты, так и редактировать существующие.
Обратите внимание, что все скрипты должны иметь открывающие и закрывающие теги PHP .
В боковом меню будут доступны все скрипты расположенные по адресу /admin/simplepars/scripts/
Так же обратите внимание, что имя скрипта может содержать только латинские буквы и два типа тире _ -
Вывод.
При помощи данной функции вы сможете дописать свою логику в модуль, и расширить его возможности не прибегая к переписыванию самого кода модуля.
Основные сценарии использования
Я вижу основными сценариями решения таких задач как.
- Адаптация под разные модули.
- Увеличение возможностей работы над данными, теперь доступны все инструменты языка программирования PHP
- Увеличение возможностей по поиску данных на странице донора.
- Ведения собственной статистики выполнения работы, или же уведомлений на почту при обнаружении каких либо данных на странице.
- И не побоюсь это написать, теперь вы можете написать свой мега скрипт который будет заполнять данные не только в Опенкарт, но и в любую другую CMS, то что вы так часто писали, теперь вы можете сами это написать.