Куда идем?

В этой статье я опишу последнее из сложных основных полей SEBLOD – поле загрузки файлов. Для чего оно может понадобится? Например, для создания файлового архива на SEBLOD, или прикрепление файла в форме обратной связи, или в форме заказа. Много чего можно придумать. Иметь в своем арсенале такое поле просто необходимо.

Поле File. Описание

Как и поле Image, поле File имеет некоторые особенности. Оно подразумевает два места хранения: база данных и файловая система. Сам файл храниться в файловой системе, а информация о том, где именно он находится – в базе данных. Это следует учитывать перед тем, как начинать работать с полем.

Поле File. Настройки

Рассмотрим основные настройки поля File:

Поле SEBLOD 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», то ничего показываться не будет. Выглядит это примерно так:

Поле SEBLOD File

Show Delete Checkbox – аналогично предыдущей опции, позволяет показать отметку для удаления файла. Вообще, реализация удаления файлов сделана очень неудобно. Обычному пользователю сложно понять как этим пользоваться. Но с другой стороны, обычные пользователи и не должны удалять файлы.

Поле SEBLOD File

Show Custom Path – аналогично двум предыдущим опциям, позволяет показать путь к файлу при его редактировании. Не знаю зачем это может понадобиться, но все же.

Поле SEBLOD File

Size – размер(длина) этого поля.

Advanced Mode – позволяет выбрать расширенный режим. Таким образом, данные этого поля будут храниться в формате JSON. Это позволит отдельно задавать для каждого загружаемого файла заголовок(опция Show Title).

Поле SEBLOD File

Вот, собственно, и всё. Теперь немного поговорим о безопасности.

Поле File. Безопасность

Во-первых, никогда не разрешайте загрузку исполняемых файлов. К таковым относятся, например, .exe, .php, .js, и др. Последствия таких разрешений могут быть весьма плачевными для вас и вашего сайта.

Во-вторых, если вы планируете, что загружаться будут некоторые приватные файлы, то учитывайте то, что по умолчанию, зная название файла и путь к нему, любой желающий сможет его скачать. Путь узнать очень просто. Он становится понятен после получения нескольких ссылок на скачивание разных файлов. По ним можно понять общую структуру хранения. Останется только подобрать правильное имя файла. К сожалению, разработчики не позаботились о безопасности этого поля. Поэтому убедитесь, что с этим нет проблем.

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

-----------

Кстати, так или иначе, советую получше изучить PHP. Это не только позволит повысить общий уровень работы с Joomla и Seblod, но и значительно облегчит ваше дальнейшее развитие в создании сайтов. Почитать много разного, нужного и интересного о PHP можно на http://www.cyberforum.ru/php/. Это очень популярный форум программистов и сисадминов.

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.
Добавить комментарий

Комментарии  
3
Спасибо за Интересный материал. Жду продолжения.
1
Спасибо за интересные и полезные стати. Реально, по этой теме в рунете больше ни чё нормального нет... хоть садись и мануал на оф сайте переводи
Вот только долго новые выходять статейки... хочется по быстрей, всего, и сразу ^_^
0
Дружище, а когда будет продолжение, я тут начал на себлоде сайт делать, и много вопросов по реализации замыслов... я думаю, что дальнейшие статьи привнесут ясность... Вы не смотрите. что мало человек пишет, читает Вас большая куча народа... С уважением.
1
Василий, скоро будут. Seblod - сложная штука и на написание даже одной статьи уходит очень много времени, которого и так в обрез + нужна ротация тем, поскольку все-таки не всем читателям интересен Seblod. Напишу новую статью при первой возможности. Запаситесь терпением :-).
1
загрузил себлод на свой шаблон (разумеется тиснутый), создал поля, в статье заполнил их содержимое, нажал сохранить и поля очистились. Я не понял. повторил несколько раз, не сохраняется содержание полей. Загрузил себлод на чистую джумлу, все сделал то же самое. Не сохраняет содержание полей. В чем может быть дело? Спасибо за ответ.
1
не запоминаются содержания полей, если папка для размещения отличная от названия "квик фолдер" в чем дело? Может надо выполнить какое то условие?
1

Цитирую Василий:

не запоминаются содержания полей, если папка для размещения отличная от названия "квик фолдер" в чем дело? Может надо выполнить какое то условие?


Поддерживаю вопрос - поля не сохраняются. где поискать связь таблиц БД и APP folder???
0
Что будет если установить Seblod на сайт на котором уже есть статьи?... У меня кулинарный блог, хочу расширить функционал статьи, не покорёжит ли Себлод мой сайт?...
0
Антон, SEBLOD не будет работать с уже созданными статьями, если вы не откроете каждую из них через него и не сохраните заново. Дело в том, что для каждой единицы контента SEBLOD создает отдельную запись у себя в таблице. Без нее он не увидит данную единицу контента в типах поиска. А вообще, вы можете установить SEBLOD на уже действующий сайт.
0
Спасибище огромное, очень познавательные статьи. Жду с нетерпением новых!