Каждому пользователю отдельная папка для изображений в Joomla

Для одного из проектов понадобилось сделать форму добавления материалов. Так же нужно было добавить поле с intro картинкой. При выборе изображения у нас отображается общая папка для всех пользователей, что не есть хорошо, т.к. каждый сможет посмотреть фото других пользователей. Попытаемся это исправить.

К сожалению, придется затронуть исходники компонента. При обновлении код может затереться, придется его заново прописывать.

1. Для начала надо настроить медиа-менеджер. Заходим в его настройки

Окно настроек медиа-менеджера

 

2. В «Путь к каталогу с изображениями» прописываем нужную папку, где будут лежать файлы для каждого отдельного пользователя и в конце добавляем /$id.

Идея такая — мы будем искать строку /$id и менять ее на id пользователя.

3. Отправляемся к файлу /components/com_media/media.php. В joomla 3 используется один файл для админки и сайта, править надо /components/administrator/com_media/media.php.

Ищем строку

После нее добавляем

Здесь мы считываем параметр, который указали в настройках. Заменяем $id на id текущего пользователя и переписываем значение параметра.

4. После тестирования обнаружилось, что после того, как изображение загружено и мы хотим его сменить — у нас некорректно отображается список файлов в папке. (для joomla 3 этот пункт пропускаем)

Поправить это можно в файле /libraries/joomla/form/fields/media.php

После

Добавляем

Все!

Недостаток в данном случае, что ограничение получают абсолютно все пользователи.