Задача сниппета — удалять директорию «номера» на хосте и записей в таблице 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