Если в UMI.CMS объекты не кладутся в корзину, а удаляются сразу — есть решение

В некоторых версиях UMI.CMS с объектами каталога и их виртуальными копиями происходят странные вещи: при удалении (в административной зоне) объекты не помещаются в корзину, а сразу удаляются. Это доставляет много неприятных моментов, особенно в момент нечаянного удаления целой ветки каталога.

Обычно подобного рода симптомы возникают в UMI.CMS, выгруженной из клайда. Конечно, на последних версиях это обычно не сказывается, ибо ошибку эту уже поправили. Но, на ранних выгрузках (скажем, 2012 года и старше) это точно присутсвует. Сами нарвались на подобную ситуацию у одного из клиентов, чей сайт начинался как выгруженный из umi.ru.

Решить проблем с автоматическим удалением объектов в ЮМИ достаточно легко.

Для начала вам необходимо отследить событие systemDeleteElement. Искать следует в подпапках каталога: /classes/modules/. Имменно по данному событию происходит пре- и пост-обработка всех удаляемых объектов. Скорее всего вы найдете привязанную к этому событию функцию. В большинстве случаев она называется onDeleteCatalogObject. О том как функции привязываются к событиям написано тут: События (event) в UMI CMS.

После того, как вы все это обнаружили у вас есть 2 варианта:
1. снять привязку события и функции — это не позволит запускать функцию очистки корзины в момент удаления объекта
2. закомментировать само удаление объектов из корзины.

Я поступил вторым способом, ибо, помимо удаления объекта, в функции происходила очистка кеша, а это бывает весьма полезно.

PS: Если вы подумали о параметре в eip.fake-delete в config.ini, то, на самом деле, этот параметр указывает только на правила удаления в режиме EIP. Вот описание параметра:

eip.fake-delete = "0"
Описание
Настройки удаления через edit-in-place.
Возможные значения
0 — Страницы будут перемещены в корзину. Объекты — удалены.
1 — Удаления не произойдет — страницы и объекты станут неактивными.

Конкретно в этом случае он не поможет, но может быть полезен, если ваша проблема не решается указанным способом.

Простой и понятный online-курс для обучения XSLT-программиста с любого базового уровня

Ваш отзыв