При написании своих расширений зачастую требуется внести некие ветвления функциональности продукта определяемые извне (из административной части расширения).
Создание параметров, их типов и имен осуществляется с помощью описания их в XML-файле расширения и последующего использования внутри расширения.
Параметры описанные в XML-файле шаблона/модуля/плагина/компонента действуют одинаково.
Разнятся лишь методы вызова параметров внутри расширения.
Разберем основные атрибуты параметра
Например
name="jtsimple"
Имя передаваемого параметра (в данном случае - jtsimple).
type="text"
Тип параметра (подробно о типах ниже).
default="type text here"
Значение по умолчанию (в данном случае type text here).
description="No description"
Описание поля, выводится при наведении в текстовом блоке (см. ниже)
Описания типов.
Описанные ранее атрибуты упоминаться будут, только если только в этом возникнет необходимость
{mospagebreak title=Календарь}
1. Календарь
format="%d-%m-%Y"
Это формат даты, соответствующий формату используемому в функции PHP strftime
{mospagebreak title=Категория}
2. Категория
Дополнительным, но необязательным атрибутом является section
Если он присутсвует, то в выпадающем списке присутствуют категории только из указанного раздела (рис. 1.1)
В случае если атрибут отсутствует, выводятся все категории с указанием разделов (рис. 1.2)
{mospagebreak title=Редактор}
3. Редактор
Выбор визуального редактора. Отображаются все редакторы установленные на сайте
{mospagebreak title=Список файлов}
4. Список файлов
Специфичные, но необязательные, для этого параметра атрибуты:
directory - папка относительно корня сайта(при отсутствии атрибута используется корень сайта).
filter - фильтр (для фильтрации используются регулярные выражения).
exclude - исключенные файлы (для исключения используются регулярные выражения).
Сначала срабатывает фильтр, затем из оставшегося производится исключение.
stripext - скрывать расширение файла (0,пустое значение или отсутствие атрибута - не скрывать[на картинке слева], 1 - скрывать[на картинке справа]).
hide_none - скрывать -Не использовать- в выпадающем списке(0,пустое значение или отсутствие атрибута - не скрывать, 1 - скрывать).
hide_default - скрывать -Использовать по умолчанию- в выпадающем списке(0,пустое значение или отсутствие атрибута - не скрывать, 1 - скрывать).
{mospagebreak title=Список директорий}
5. Список директорий
Полностью аналогичен списку файлов.
Исключение составляет атрибут stripext, который в контексте директории не имеет смысла.
{mospagebreak title=Сайт помощи}
6. Сайт помощи
Выбор сайта справки.
Список сайтов хранится в /administrator/help/helpsites-15.xml
{mospagebreak title=Скрытый параметр}
7. Скрытый параметр
Данный параметр аналогичен полю типа hidden в HTML формах.
{mospagebreak title=Список изображений}
8. Список изображений
Отображаются файлы с расширениями .png, .gif, .jpg, .bmp, .ico
Во всем остальном параметр аналогичен filelist
{mospagebreak title=Локализация}
9. Локализация
Выбор языка.
В обязательном атрибуте client могут использоваться значения site и administrator, устанавливая значения локализации для сайта и админ-панели сооответственно
{mospagebreak title=Список}
10. Список
Список предопределенных параметров.
{mospagebreak title=Список меню}
11. Список меню
Список всех меню на сайте.
{mospagebreak title=Список пунктов меню}
12. Список пунктов меню
список всех пунктов меню сайта сгрупированный по имени меню.
{mospagebreak title=Пароль}
13. Пароль
Текстовое поле закрываемое "звездочками".
{mospagebreak title=Радиокнопка}
14. Радиокнопка
Радиопереключатель.
{mospagebreak title=Разделы}
15. Разделы
Отображает список разделов сайта
{mospagebreak title=Разделитель}
16. Разделитель
Атрибут default не является обязательным. Но при его использовании можно вместо разделителя выводить текст.
Сверху без default, снизу с закодированными HTML тегами.
{mospagebreak title=SQL}
17. SQL
Данный список формируется посредством SQL запроса указанного в атрибуте query
Возможны несколько типов формирования списка:
1. MySQl запрос должен вернуть список пар результатов с названиями полей value(значение) и значением атрибута name
2. Запрос формируется как нам удобно, а поля значения/текста указывается в дополнительных атрибутах key_field и value_field
В запросах можно использовать всю силу MySQL. Например запрос из реального модуля.
query="SELECT `id` as `value`, CONCAT(`name`, ' - ', `menutype` ) as `useItemid` FROM `#__menu` WHERE `link` LIKE '%index.php?option=com_virtuemart%' UNION SELECT '0' AS `value`, '-= Autoselect =-' as `useItemid` ORDER BY `useItemid`"{mospagebreak title=Текст}
18. Текст
Текстовое поле ввода.
Атрибут size задает ширину поля в символах
class - добавляет класс CSS к полю
{mospagebreak title=Текстовое поле}
19. Текстовое поле
Многострочное текстовое поле.
Атрибут cols задает ширину поля в символах
rows - задает высоту поля в строках
class - добавляет к полю CSS класс
{mospagebreak title=Часовой пояс}
20. Часовой пояс
Отображает временные зоны.
{mospagebreak title=Пользовательские группы}
21. Пользовательские группы
Отображает пользовательские группы.