Очистка справочника Незарегистрированный покупатель по cron — различия между версиями
Alelekov (обсуждение | вклад) (Новая страница: «'''Актуально для версии 20''' == Задача == Проводить очистку справочника "Незарегистрированн…») |
Alelekov (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
== Задача == | == Задача == | ||
− | Проводить очистку справочника "Незарегистрированный покупатель" при запуске cron. | + | Проводить очистку справочника "Незарегистрированный покупатель" при запуске [http://dev.docs.umi-cms.ru/nastrojka_sistemy/cron/ cron]. |
== Решение == | == Решение == |
Версия 16:21, 23 мая 2019
Актуально для версии 20
Задача
Проводить очистку справочника "Незарегистрированный покупатель" при запуске cron.
Решение
В первую очередь, нам необходимо назначить обработчик события запуска cron в файле ~/classes/components/config/custom_events.php (если файла нет - необходимо создать его). Обработчик назначается таким образом:
<?php
new umiEventListener('cron', 'config', 'deleteUnregisteredCustomers');
Затем нам нужно описать функцию, которая будет очищать справочник. В файле ~/classes/components/config/customMacros.php создаём функцию, которую мы назначили на обработку события запуска cron. В нашем случае это функция deleteUnregisteredCustomers, выглядит она вот так:
public function deleteUnregisteredCustomers(iUmiEventPoint $e)
{
if ($e->getMode() == 'process') {
// Получить объекты справочника
$unregisteredCustomersData = umiObjectsCollection::getInstance()->getGuidedItems(<здесь нужно указать идентификатор справочника>);
// Массив содержит значения вида идентификатор => значение
$ids = array_keys($unregisteredCustomersData);
$objectsCollection = umiObjectsCollection::getInstance();
// Проходимся по всем найденным объектам в справочнике "Незарегистрированный покупатель" и удаляем их
// Тут можно настроить кол-во удаляемых за раз объектов, заменив foreach на for и указав ограничения
foreach($ids as $id)
{
$objectsCollection->delObject($id);
}
}
}
Обратите внимание, что в функции необходимо указать идентификатор справочника "Незарегистрированный покупатель", а не какого-либо другого, иначе можно удалить другие, возможно, нужные Вам данные другого справочника. Идентификатор справочника Вы можете узнать, открыв справочник "Незарегистрированный покупатель" для просмотра и посмотрев последнее число в адресной строке. В нашем случае это число 88:
После всех этих действий справочник "Незарегистрированный покупатель" будет очищаться каждый раз по запуску cron.