Одни и те же файлы для разных форм в Tickets
Есть несколько форм по добавлению тикетов в разные разделы через сниппет TicketForm. У всех у них есть возможность загружать файлы.
Проблема: если загрузить файлы в одну форму и не сохраняя перейти в другую форму, то файлы из первой формы будут видны во второй и в третьей и т.д.
Вопрос: как отменить сохранение файлов после перезагрузки страницы?
UPD:
Решил плагином на OnWebPageInit который удаляет файлы текущего пользователя из нулевой папки при обновлении:
Проблема: если загрузить файлы в одну форму и не сохраняя перейти в другую форму, то файлы из первой формы будут видны во второй и в третьей и т.д.
Вопрос: как отменить сохранение файлов после перезагрузки страницы?
UPD:
Решил плагином на OnWebPageInit который удаляет файлы текущего пользователя из нулевой папки при обновлении:
<?php
$user = $modx->user->id;
$username = $modx->user->username;
$q = $modx->newQuery('TicketFile');
$q->where(array('createdby' => $user, 'parent' => 0));
$collection = $modx->getIterator('TicketFile', $q);
foreach ($collection as $item) {
$file = $item->toArray();
if($item->remove()) {
$result = array('name'=>$file);
$modx->log(1, "Успешно удалён файл пользователя ".$username.": ".$file['name'] );
} else {
$modx->log(1, "Ошибка при удалении файла пользователя ".$username.": ".$file['name'] );
}
}
Поблагодарить автора
Отправить деньги
Комментарии: 5
Надеюсь формы тут не повязаны каким-то хитрым образом на Sisyphus?
Нет.
А в чём проблема-то? Зачем удалять файлы, которые пользователь загрузил, но не удалил сам? У него же есть такая возможность.
А в чём проблема-то? Зачем удалять файлы, которые пользователь загрузил, но не удалил сам? У него же есть такая возможность.
Сколько времени они будут висеть на сервере, допустим если пользователь их загрузит, и забудет про них, а через месяц вернётся. Он их увидит?
Например если одна форма только для загрузки сертификатов, другая только для загрузки портфолио, а третья для чего-то ещё.
Или ещё пример: Я пишу одну статью в категорию о кошках, и вдруг мне нужно написать в другой раздел через другую форму статью о экскаваторах, а там уже показаны кошки. Это может вводить в заблуждение.
Ситуация усложняется, если таких форм для разных логических типов на сайте несколько десятков.
Может мне в таком случае как-то перехватить плагином на какое-то действие и удалять вручную фотки пользователя? Например на событие обновления страницы.
А в чём проблема-то?Я не возражаю, это действительно удобно. Просто из-за специфичности проекта это может мешать.
Например если одна форма только для загрузки сертификатов, другая только для загрузки портфолио, а третья для чего-то ещё.
Или ещё пример: Я пишу одну статью в категорию о кошках, и вдруг мне нужно написать в другой раздел через другую форму статью о экскаваторах, а там уже показаны кошки. Это может вводить в заблуждение.
Ситуация усложняется, если таких форм для разных логических типов на сайте несколько десятков.
Может мне в таком случае как-то перехватить плагином на какое-то действие и удалять вручную фотки пользователя? Например на событие обновления страницы.
Он их увидит?Конечно — они принадлежат ему, неважно, прикрепил он их к тикету или нет.
Может мне в таком случае как-то перехватить плагином на какое-то действие и удалять вручную фотки пользователя?Да вроде никто не мешает. Это файлы на диске и записи в БД. Разберись и делай с ними, что хочешь.
Спасибо.
Набросал плагин на OnWebPageInit который удаляет файлы текущего пользователя из нулевой папки при обновлении:
Набросал плагин на OnWebPageInit который удаляет файлы текущего пользователя из нулевой папки при обновлении:
<?php
$user = $modx->user->id;
$username = $modx->user->username;
$q = $modx->newQuery('TicketFile');
$q->where(array('createdby' => $user, 'parent' => 0));
$collection = $modx->getIterator('TicketFile', $q);
foreach ($collection as $item) {
$file = $item->toArray();
if($item->remove()) {
$result = array('name'=>$file);
$modx->log(1, "Успешно удалён файл пользователя ".$username.": ".$file['name'] );
} else {
$modx->log(1, "Ошибка при удалении файла пользователя ".$username.": ".$file['name'] );
}
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.