Нужен сниппет - удаление директории

1 1 000
Задача сниппета — удалять директорию «номера» на хосте и записей в таблице user_files при запуске

Есть таблица в бд от компонента user_files

путь к файлам есть в таблице user_files, в поле path
room-Идномера/moddocument/1001/имя файла

файлы лежат фактически в
/assets/userfiles/rooms/room-$res_id/moddocument/1001/
в пути менятся только id номера

выборку из бд делать в таблице user_files по полю list, там записи вида room-XXXX
и source, его значение всегда 7

Сниппет есть, но перестал удалять директории на хосте и записи в таблице user_files
Возможно после обновления userfiles

код для справки

<?php
$res_id=(int)$_GET['resid'];
$modx->addPackage(
    'rooms', 
    MODX_CORE_PATH . 'components/rooms/model/', 
    'префикс_'
);

if($doc = $modx->getObject('RoomsContent',$res_id)) {
    if($doc->remove()==false){
        echo 'Ошибка удаления';  
        $modx->cacheManager->refresh();
    } 
	/*нужная часть отсюда начинается*/
	else {
        $q = $modx->newQuery('UserFile');
        $q->where(array('source'=>'7', 'list:LIKE' => '%$res_id%' ));
        if($UserFiles = $modx->getCollection('UserFile', $q)) {
            $dir = null;
            foreach($UserFiles as $UserFile) {
            	if ($UserFile->initialized() AND $UserFile->mediaSource) {
            	    $path = $UserFile->getFilePath();
                    if(!empty($path) ||  $path != '/') {
                        $pathArr = explode('/', $path);
                        if(empty($pathArr[0]) || $pathArr[0] == '/' || $pathArr[0] == 'room') {
                            $rmSlug = $path;
                        } else {
                            $rmSlug = $pathArr[0];    
                        }
                        
                        @$UserFile->mediaSource->removeContainer($UserFile->mediaSource->getBasePath().$rmSlug);
                    }
            	} 
                            $UserFile->remove();
            }
        }
        
        echo '<p>Номер успешно удален</p>';
    }
}
Контакты телеграм
t.me/vanodk
Иван Фролов
18 ноября 2019, 13:41
modx.pro
349
0

Комментарии в этом разделе отключены, так что вы должны указать свои контакты прямо в объявлении, или активировать отправку сообщений из профиля.

Обратите внимание, что modx.pro не несёт никакой ответственности за выполнение работы или оплату заказа. Это просто доска объявлений, дальше вы общаетесь за пределами нашей площадки.