В этой статье я опишу последнее из сложных основных полей SEBLOD – поле загрузки файлов. Для чего оно может понадобится? Например, для создания файлового архива на SEBLOD, или прикрепление файла в форме обратной связи, или в форме заказа. Много чего можно придумать. Иметь в своем арсенале такое поле просто необходимо.
Поле File. Описание
Как и поле Image, поле File имеет некоторые особенности. Оно подразумевает два места хранения: база данных и файловая система. Сам файл храниться в файловой системе, а информация о том, где именно он находится – в базе данных. Это следует учитывать перед тем, как начинать работать с полем.
Поле File. Настройки
Рассмотрим основные настройки поля File:
Label – Заголовок поля
Default Value – Значение поля по умолчанию
Folder – путь к папке, в которую будут загружаться файлы на вашем сервере. Обязательно должна заканчиваться на «/», например «files/».
Storage Format – формат хранения пути к файлу в базе данных. Хранится либо полный путь, либо только имя файла.
1 Folder / Content – если эта опция установлена в «Да», то к пути к папке(Folder) будет добавляться подпапка, имеющая название такое же, как ID материала, в котором был загружен файл. Например, если вы загрузили файл в материале с ID 33, а в опции Folder у вас установлено «files/», то файл будет загружен по адресу «files/33/». Папка «33» будет создана автоматически. Таким образом получится, что каждый загружаемый файл(несколько файлов, если в типе контента несколько полей File) будет содержаться в отдельной папке.
1 Folder / User – если эта опция установлена в «Да», то к пути к папке(Folder) будет добавляться подпапка, имеющее название такое же, как ID пользователя, который загружает файл. Например, если файл загрузил пользователь с ID55, а в опции Folder у вас установлено «files/», то файл будет загружен по адресу «files/55/». Папка «55» будет создана автоматически. Таким образом получится, что все файлы, загружаемые одним пользователем, будут содержаться в отдельной папке.
Если и «1 Folder / Content» и «1 Folder / User» установлены в «Да», то применятся оба правила сразу.
Legal Extensions – допустимые типы расширений для загружаемых файлов. Загружены будут только файлы, имеющие эти типы расширений.
Maximum Size – максимальный размер загружаемого файла. Убедитесь, что настройки сервера и PHP позволяют загружать файлы такого размера.
Show Preview – показывать ли превью загруженного файла. Относится к редактированию материала. В этой опции вы можете указать, что именно будет показано: название файла или просто иконка. Если же выбрано «Hide», то ничего показываться не будет. Выглядит это примерно так:
Show Delete Checkbox – аналогично предыдущей опции, позволяет показать отметку для удаления файла. Вообще, реализация удаления файлов сделана очень неудобно. Обычному пользователю сложно понять как этим пользоваться. Но с другой стороны, обычные пользователи и не должны удалять файлы.
Show Custom Path – аналогично двум предыдущим опциям, позволяет показать путь к файлу при его редактировании. Не знаю зачем это может понадобиться, но все же.
Size – размер(длина) этого поля.
Advanced Mode – позволяет выбрать расширенный режим. Таким образом, данные этого поля будут храниться в формате JSON. Это позволит отдельно задавать для каждого загружаемого файла заголовок(опция Show Title).
Вот, собственно, и всё. Теперь немного поговорим о безопасности.
Поле File. Безопасность
Во-первых, никогда не разрешайте загрузку исполняемых файлов. К таковым относятся, например, .exe, .php, .js, и др. Последствия таких разрешений могут быть весьма плачевными для вас и вашего сайта.
Во-вторых, если вы планируете, что загружаться будут некоторые приватные файлы, то учитывайте то, что по умолчанию, зная название файла и путь к нему, любой желающий сможет его скачать. Путь узнать очень просто. Он становится понятен после получения нескольких ссылок на скачивание разных файлов. По ним можно понять общую структуру хранения. Останется только подобрать правильное имя файла. К сожалению, разработчики не позаботились о безопасности этого поля. Поэтому убедитесь, что с этим нет проблем.
На этом описание основных полей SEBLOD заканчивается. Помимо основных полей есть уже множество дополнительных, куда более интересных. Пока они разбросаны по форуму официального сайта, но вскоре должен появиться каталог расширений SEBLOD, тогда все будет упорядоченно и доступно. Далее в серии статей вы узнаете про оформление SEBLOD, различных трюках, а кроме того, мы с вами создадим множество интереснейших пакетов, в том числе и простой интернет-магазин.
-----------
Кстати, так или иначе, советую получше изучить PHP. Это не только позволит повысить общий уровень работы с Joomla и Seblod, но и значительно облегчит ваше дальнейшее развитие в создании сайтов. Почитать много разного, нужного и интересного о PHP можно на http://www.cyberforum.ru/php/. Это очень популярный форум программистов и сисадминов.
Вот только долго новые выходять статейки... хочется по быстрей, всего, и сразу ^_^
Поддерживаю вопрос - поля не сохраняются. где поискать связь таблиц БД и APP folder???