Перейти к содержимому


Фотография
- - - - -

Удаление файла в элементе download при удалении материала


Лучший Ответ SmetDenis , 13 August 2015 - 13:52

Удаление в JBImage работает через системное событие "item:deleted"

Самое простое решение - это вызывать функцию удаления у элемента download сразу после удаления материала.

Это можно сделать тут
media\zoo\applications\jbuniversal\framework\events\jbevent.item.php
tjo7_200x0.png

По аналогии с картинкой (у вас это уже должно быть)

        // execute item trigger
        $jbimageElements = $item->getElements();
        foreach ($jbimageElements as $element) {
            if (method_exists($element, 'triggerItemDeleted')) {
                $element->triggerItemDeleted();
            }
        }
Соответственно, в элементе должна существовать функция triggerItemDeleted(), которая по факту будет заниматься удалением.

Функция deleted() вызывается с помощью системных событий Zoo самим фреймворком.
О них вы можете узнать тут - http://jbzoo.ru/docs...k-system-events Перейти к сообщению


  • Закрытая тема Тема закрыта
В теме одно сообщение

#1 fafnir999

fafnir999

Отправлено 12 August 2015 - 13:46

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

 

Хочу немного доделать элемент download, чтобы при удалении материала удалялся и файл, связанный с этим материалом. Так как подобный функционал есть в элементе jbimage, хотел сделать так же, но не разобрался как он работает. Не похоже, чтобы он вызывался через event удаления итема.  Функцию для удаления вроде нашел - называется triggerItemDeleted(), но не могу понять, откуда она вызывается. В общем хотелось бы, чтобы вы вкратце пояснили, как там что работает - по крайней мере откуда вызывается код для удаления файла.


  • 0

#2 SmetDenis

SmetDenis

Отправлено 13 August 2015 - 13:52   Лучший Ответ

Удаление в JBImage работает через системное событие "item:deleted"

Самое простое решение - это вызывать функцию удаления у элемента download сразу после удаления материала.

Это можно сделать тут
media\zoo\applications\jbuniversal\framework\events\jbevent.item.php
tjo7_200x0.png

По аналогии с картинкой (у вас это уже должно быть)
        // execute item trigger
        $jbimageElements = $item->getElements();
        foreach ($jbimageElements as $element) {
            if (method_exists($element, 'triggerItemDeleted')) {
                $element->triggerItemDeleted();
            }
        }
Соответственно, в элементе должна существовать функция triggerItemDeleted(), которая по факту будет заниматься удалением.

Функция deleted() вызывается с помощью системных событий Zoo самим фреймворком.
О них вы можете узнать тут - http://jbzoo.ru/docs...k-system-events
  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!