Одни и те же файлы для разных форм в Tickets

Есть несколько форм по добавлению тикетов в разные разделы через сниппет TicketForm. У всех у них есть возможность загружать файлы.
Проблема: если загрузить файлы в одну форму и не сохраняя перейти в другую форму, то файлы из первой формы будут видны во второй и в третьей и т.д.
Вопрос: как отменить сохранение файлов после перезагрузки страницы?

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'] );
    }
}
Василий Столейков
25 ноября 2015, 19:10
modx.pro
2
815
0
Поблагодарить автора Отправить деньги

Комментарии: 5

Василий Столейков
26 ноября 2015, 09:36
0
Надеюсь формы тут не повязаны каким-то хитрым образом на Sisyphus?
    Василий Наумкин
    26 ноября 2015, 10:33
    0
    Нет.

    А в чём проблема-то? Зачем удалять файлы, которые пользователь загрузил, но не удалил сам? У него же есть такая возможность.
      Василий Столейков
      26 ноября 2015, 14:00
      0
      Сколько времени они будут висеть на сервере, допустим если пользователь их загрузит, и забудет про них, а через месяц вернётся. Он их увидит?
      А в чём проблема-то?
      Я не возражаю, это действительно удобно. Просто из-за специфичности проекта это может мешать.

      Например если одна форма только для загрузки сертификатов, другая только для загрузки портфолио, а третья для чего-то ещё.
      Или ещё пример: Я пишу одну статью в категорию о кошках, и вдруг мне нужно написать в другой раздел через другую форму статью о экскаваторах, а там уже показаны кошки. Это может вводить в заблуждение.
      Ситуация усложняется, если таких форм для разных логических типов на сайте несколько десятков.

      Может мне в таком случае как-то перехватить плагином на какое-то действие и удалять вручную фотки пользователя? Например на событие обновления страницы.
        Василий Наумкин
        26 ноября 2015, 14:02
        0
        Он их увидит?
        Конечно — они принадлежат ему, неважно, прикрепил он их к тикету или нет.

        Может мне в таком случае как-то перехватить плагином на какое-то действие и удалять вручную фотки пользователя?
        Да вроде никто не мешает. Это файлы на диске и записи в БД. Разберись и делай с ними, что хочешь.
          Василий Столейков
          26 ноября 2015, 16:49
          +1
          Спасибо.
          Набросал плагин на 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