Удаление изображения при удалении страницы

Материал из Umicms
Версия от 15:26, 28 июня 2018; Kublan (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Статья предоставлена партнером UMI.CMS Шириевым Артуром

Актуально для версии 18.

Назначаем обработчик события:

new umiEventListener('systemDeleteElement', 'catalog', 'onRemoveItem');

Задаем права доступа к макросу:

$permissions = array('view' => array('onRemoveItem'));

Непосредственно обработчик:

/**Удаление изображений при удалении страницы
 * @param iUmiEventPoint $oEventPoint
 * @return bool
 */
public function onRemoveItem(iUmiEventPoint $oEventPoint) {
    if ($oEventPoint->getMode() === "after") {
        $element = $oEventPoint->getRef("element");
        $photo = @ $element->getValue('photo');
        if ($photo instanceof umiImageFile)
            $photo->delete();
    }
    return true;
}