Нужен сниппет - удаление директории
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
код для справки
t.me/vanodk
Есть таблица в бд от компонента 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
Комментарии в этом разделе отключены, так что вы должны указать свои контакты прямо в объявлении, или активировать отправку сообщений из профиля.
Обратите внимание, что modx.pro не несёт никакой ответственности за выполнение работы или оплату заказа. Это просто доска объявлений, дальше вы общаетесь за пределами нашей площадки.