mCataloger | Каталогизатор для удобной работы с папками и файлами в MODx
По умолчанию в MODx пользователи сами создают и управляют структурой файлов в файловом менеджере. В случае если перестать следить за структурой, при обильной работе и большом количестве файлов, в структуре становится тяжело работать. Помимо прочего, неопытные менеджеры любят загружать файлы в корень, если разработчик не предусмотрит изоляцию работы менеджера из корня сайта.
По этой (и не только) причине я решил что необходимо структурировать работу менеджеров в файловой системе. Задача стоит не только в изоляции менеджеров от важных папок, но и обеспечить полную автоматизацию, чтобы менеджер не замечал работу пакета и в то же время в файловой структуре был порядок. Поразмыслив над реализацией, я составил небольшой roadmap.
Минусы пакета
P.S.
Пакет уже две недели находится на трех (клиентских) сайтах и никаких проблем не обнаружилось, так же пакет протестировали 4-е человека (помимо меня). Но тем не менее, пока что mCataloger находится в alpha версии.
По этой (и не только) причине я решил что необходимо структурировать работу менеджеров в файловой системе. Задача стоит не только в изоляции менеджеров от важных папок, но и обеспечить полную автоматизацию, чтобы менеджер не замечал работу пакета и в то же время в файловой структуре был порядок. Поразмыслив над реализацией, я составил небольшой roadmap.
Road Map пакета
- Плагин работает только для контекста mgr.
- Плагин работает только для типов ресурсов, которые будут указаны в системной настройке mcataloger_class_keys.
- При удалении ресурса, удаляется и его папка со всем содержимым. Данная опция регулируется настройкой mcataloger_delete_folders.
- Для каждого пользователя нужно создать источник файлов, название источника должно полностью совпадать с username пользователя.
- В созданном источнике файлов, создаем 2 параметра:
- sourceFilesPath — Путь уже существующей папки. Например assets/.
- user_id — Идентификатор менеджера, для которого создается источник.
- Каждый менеджер должен работать только в своем источнике файлов, чтобы не мешать другим менеджерам. Посему для каждого менеджера нужно переопределить системную настройку default_media_source. В ней нужно указать источник файлов, который вы создали для пользователя.
Настройки mCataloger
- mcataloger_activate — Включает или отключает работу пакета.
- mcataloger_class_keys — Список class_key ресурсов через запятую, которые будут обрабатываться плагином. По умолчанию включены: modDocument,TicketsSection,Ticket.
- mcataloger_delete_folders — Если включить эту опцию, то при удалении ресурса будет удаляться папка, название которой совпадает с идентификатором ресурса. По умолчанию включена.
- mcataloger_managers_id — Список идентификаторов менеджеров через запятую, у которых будет свой источник файлов и для которых будет функционировать плагин.
- mcataloger_sources_name — Список названий источников файлов через запятую. Название источника файлов должно полностью совпадать с username пользователя (включая заглавные буквы), для которого этот источник будет установлен по умолчанию.
Минусы пакета
- Находясь в папке ресурса, менеджер не сможет зайти в другие папки в файловой структуре (хотя с моей стороны это скорее плюс). Т.к. идет жесткая привязка id ресурса = папка с id ресурса.
- Пакет завязан на id & username пользователя + источник файлов пользователя. Так что если изменить username пользователя, плагин перестанет для него работать.
- Необходимо произвести настройки на уровне создать источник файлов, два параметра в нем, системную настройку пользователя и системную настройку mCataloger (возможно в будущем я автоматизирую это)
P.S.
Пакет уже две недели находится на трех (клиентских) сайтах и никаких проблем не обнаружилось, так же пакет протестировали 4-е человека (помимо меня). Но тем не менее, пока что mCataloger находится в alpha версии.
Поблагодарить автора
Отправить деньги
Комментарии: 9
Не думали, что менеджеры иногда чужие материалы редактируют?
- Менеджер заходит в ресурс, с например, идентификатором 125
- Если по пути assets/resources/ еще нет папки 125, она создается (певая часть пути assets/, задается в источнике файлов пользователя)
- Если папка 125 уже есть (она создается в момент первого рендера ресурса), пользователь при попытке открыть файловый менеджер. попадает прямо в неё и видит там все файлы.
- Находясь в папке assets/resources/125/, пользователь не может перейти в другие папки, потому как идет привязка к id ресурса.
Что вы имеете ввиду под «материалами» и «редактировать материалы»? 95% работы с файлами это загрузить / удалить файл. Мой пакет не нарушает эту логику, он лишь автоматически структуру создает.
Ели менеджеру придется редактировать чужой материал, что с файлами будет? Не могу понять логику привязки файлов к пользователю. Логичней привязка к ресурсу, как в Tickets или msGallery.
Моему пакету пофиг чужой материал или нет. Логика плагина примерно такая:
Результат работы, вы можете увидеть на моем сайте, прямо в примере документации. Обратите внимание на пути изображений, они на всем сайте рассортированы по папкам с id ресурса. А в самом низу результат работы пакета.
Если и так не понятно, то установите пакет на modhost и посмотрите его логику. Привязка идет к id ресурса.
Результат работы, вы можете увидеть на моем сайте, прямо в примере документации. Обратите внимание на пути изображений, они на всем сайте рассортированы по папкам с id ресурса. А в самом низу результат работы пакета.
Если и так не понятно, то установите пакет на modhost и посмотрите его логику. Привязка идет к id ресурса.
Все сделал как в вашем подробном руководстве, но вот дальше-то что делать? Директории для ресурсов создаются. Как настроить TVшки? Прописать им источник одного менеджера?
Запутался, помогите плиз.
Запутался, помогите плиз.
А что вы хотите делать дальше? TV и так будет работать по настройкам моего компонента, если только вы не задали TV свой источник файлов.
У меня по умолчанию на tv ставится filesystem и mCataloger не работает. Только если принудительно ставить источник созданный для юзера.
После настройки плагина, необходимо" завершить все сеансы" а снова авторизироваться в админку. Если проблема сохраняется, пишите мне в личку и доступы дайте.
Да действительно, с TV мой компонент не работает, я у себя на сайте вручную менял источник файлов у TV. Проблема в том, что TV не работает с системной настройкой default_media_source и не подхватывает её переопределение. TV работает со своим источником файлов, который жестко ему задан, плагин конечно можно доработать и источник файлов будет меняться автоматически, но это создаст больше проблем (т.к. зачастую у TV должен быть именно свой источник файлов). К тому же, смену источника файлов у TV будут видеть все, а не только менеджер 3, что создаст еще больше проблем и нарушит логику работы компонента.
Посему заключение врача: mCataloger работает только с источником файлов в самом ресурсе, работу с источником файлов у TV не подхватывает.
Посему заключение врача: mCataloger работает только с источником файлов в самом ресурсе, работу с источником файлов у TV не подхватывает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.