Автосоздание папок в файловой системе для ресурсов
Добрый день.
Появилась задача по созданию для каждого ресурса своей отдельной папки и ограничению просмотра в файл-менеджере именно этой папки при редактировании ресурса. Вопрос как это реализовать.
Задача вроде простая — при создании ресурса для него должна создаваться отдельная папка в ФС и доступ должен быть только к ней (анпример при закгрузке картинок в tinyMCE). Причина такого ограничения банальна — девочки менеджеры в легкую удаляют целые каталоги несмотря на кучу предупреждений, поэтому давать им доступ к папке с файлами всех ресурсов очень чревато, в то же время запрещать удаление не хочется т.к. файлы периодически обновляются и замусоривать папки не хочется.
Явное решение — опираться на id ресурса. И для редактирования уже существующего ресурса оно вполне подходит (mediasource + сниппет из migx). Но проблема в том что для новых ресурсов не существует id.
Варианты решений:
1) прятать редактор текста и tv при создании ресурса и показывать при редактировании (после сохранения). Вариант некрасивый и не очень удобный так как не все ресурсы будут содержать какие либо файлы.
2) автосохранять ресурсы при нажатии «создать новый ресурс». тоже не очень красиво, но в принципе терпимо. Проблема в том на событие OnDocFormRender нам не приходит resource и мы не можем документ сразу сохранить. Можно конечно вызвать яваскриптом клик по кнопке сохранить, но хотелось бы поизящнее.
3) Автосохранять документ только при попытке вызвать файлменеджер. Не придумал как отловить это событие :-[
4) Пожалуй самое незаметное решение — добавить скрытый tv в который при создании нового документа будет генерироваться уникальное значение, на все аякс запросы добавить параметр с этим значением и соответственно в сниппете генерировать папку на основе этого значения…
Собственно вопрос кто что думает и может подскажет? Мне почему то кажется что я изобретаю велосипед и где-нибудь есть решение поставленной задачи, но я к сожалению ничего не нашел :(
Появилась задача по созданию для каждого ресурса своей отдельной папки и ограничению просмотра в файл-менеджере именно этой папки при редактировании ресурса. Вопрос как это реализовать.
Задача вроде простая — при создании ресурса для него должна создаваться отдельная папка в ФС и доступ должен быть только к ней (анпример при закгрузке картинок в tinyMCE). Причина такого ограничения банальна — девочки менеджеры в легкую удаляют целые каталоги несмотря на кучу предупреждений, поэтому давать им доступ к папке с файлами всех ресурсов очень чревато, в то же время запрещать удаление не хочется т.к. файлы периодически обновляются и замусоривать папки не хочется.
Явное решение — опираться на id ресурса. И для редактирования уже существующего ресурса оно вполне подходит (mediasource + сниппет из migx). Но проблема в том что для новых ресурсов не существует id.
Варианты решений:
1) прятать редактор текста и tv при создании ресурса и показывать при редактировании (после сохранения). Вариант некрасивый и не очень удобный так как не все ресурсы будут содержать какие либо файлы.
2) автосохранять ресурсы при нажатии «создать новый ресурс». тоже не очень красиво, но в принципе терпимо. Проблема в том на событие OnDocFormRender нам не приходит resource и мы не можем документ сразу сохранить. Можно конечно вызвать яваскриптом клик по кнопке сохранить, но хотелось бы поизящнее.
3) Автосохранять документ только при попытке вызвать файлменеджер. Не придумал как отловить это событие :-[
4) Пожалуй самое незаметное решение — добавить скрытый tv в который при создании нового документа будет генерироваться уникальное значение, на все аякс запросы добавить параметр с этим значением и соответственно в сниппете генерировать папку на основе этого значения…
Собственно вопрос кто что думает и может подскажет? Мне почему то кажется что я изобретаю велосипед и где-нибудь есть решение поставленной задачи, но я к сожалению ничего не нашел :(
Комментарии: 6
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
надеюсь донёс идею.
1) ставим пакет mixedimage который создает поле загрузки файлов с расширенными параметрами
2) создаем поле TV из mixedimage и указываем в настройках путь до файла {id}/ и теперь загружаться фотка будет в отдельную папку с номером ID ресурса
3) создаем новый плагин и выбираем событие OnResourceDelete, и прописываем такой код: