Дмитрий

Дмитрий

С нами с 05 ноября 2018; Место в рейтинге пользователей: #363

Перезапуск скрипта процессора из админки автоматически

Здравствуйте.

Разрабатываю дополнение по импорту большого кол-ва товаров в минишоп2. Импорт запускается из админки. За импорт отвечает файл процессора synch.class.php.

Столкнулся с проблемой времени выполнения скрипта. Нужно грузить картинки со стороннего сайта, а это по примерным подсчётам на первый импорт всех товаров уйдёт около 2 часа работы. Ясное дело, что php не позволит так долго работать скрипту из браузера. Через консоль сервера запускать скрипт не получится, т.к. клиенту этого не объяснишь.

Думаю может получится как-то организовать автоматический перезапуск скрипта процессора с того места, на котором остановился, через, например, 20-50 товаров, либо через 20 секунд работы скрипта.

В связи с этим вопрос разработчикам дополнений: возможно ли отправлять в админку из процессора такой запрос, который автоматически в админке будет обрабатываться и перезапускать скрипт с нужного места, на котором остановились?

Решение под катом

Павел Гвоздь
06 июня 2015, 14:08
modx.pro
2
2 122
+1

Сниппет Declension для склонения слов

Предлагаю вашему вниманию небольшой сниппет для вывода склонения. Работает как фильтр вывода, использовать нужно примерно так:
[[+balls]] [[+balls:declension=`балл,балла,баллов`]]

Как видите, он применяется к любым тегам с числами, а в options нужно указать три формы слова (1 яблоко, 2 яблока и 10 яблок) для русского, или 2 (1 ticket, 2 tickets) для английского.

Для экспериментов можно повызывать сниппет с произвольными числами:
15 [[*id:input=`15`:declension=`яблоко,яблока,яблок`]]
Полный код под катом.
Василий Наумкин
22 января 2015, 06:44
modx.pro
28
7 338
+15

Полный путь к изображению в pdoMenu

Здравствуйте!
Проблема с дополнительным полем типа «Изображение». В параметрах поля источником файлов указан мною созданный источник «Icons», который ссылается на папку assets/img/ico/. Как мне получить полный путь к файлу из чанка? Сейчас вызов [[+Имя_дополнительного_поля]] выдает просто имя файла.
hypertonyc
27 ноября 2014, 06:26
modx.pro
1
1 170
0

Как узнать, какие переменные передаются в плагин

Доброго времени суток. Понадобилось сделать свое определенное действие при активации пользователя на сайте, и вот уже достаточно долгое время пытаюсь понять, как работать с данными которые передаются в плагин. Например узнать id того же пользователя что был активирован. Спасибо.
Николай
06 ноября 2014, 12:35
modx.pro
2
1 396
0

Перезагрузить страницу при сохр. ресурса в админке

Добрый день!

Подскажите, как можно перезагрузить страницу при сохранении ее в админке, также как это происходит при первом сохранении ресурса.

Т.е. при первом сохранении ресурса MODx перегружает страницу, а при последующих — только лишь отправляет ajax запрос на ее обновление. Вот тут мне и нужно при определенных условиях заставить MODx перезагрузить страницу, так как я в плагине в этот момент изменяю поля ресурса и эти изменения не видны.
Алексей
11 апреля 2013, 10:55
modx.pro
2
3 453
0

Как не хакать сторонние классы

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

Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.
Василий Наумкин
30 июня 2012, 12:21
modx.pro
53
7 730
0

Процессоры в MODX

В MODX есть файлы-процессоры, это php скрипты, которые выполняют определенные функции. Загляните в /core/model/modx/processors, и вы увидите, как их много.

Работать с процессорами можно из любого сниппета или плагина при помощи метода runProcessor:
$response = $modx->runProcessor('action/path/to/processor',$arrayOfProperties,$otherOptions);
В ответ мы получаем объект modProcessorResponse, со всеми его методами.
Василий Наумкин
20 июня 2012, 04:13
modx.pro
24
16 899
0