Параметры расширений Joomla! 1.5 и их использование

  • 28.09.2009

При написании своих расширений зачастую требуется внести некие ветвления функциональности продукта определяемые извне (из административной части расширения).
Создание параметров, их типов и имен осуществляется с помощью описания их в XML-файле расширения и последующего использования внутри расширения.

Параметры описанные в XML-файле шаблона/модуля/плагина/компонента действуют одинаково.
Разнятся лишь методы вызова параметров внутри расширения.

Разберем основные атрибуты параметра
Например

<param name="jtsimple" type="text" default="type text here" label="Simple Textfield" description="No description"/>

name="jtsimple"
Имя передаваемого параметра (в данном случае - jtsimple).

type="text"
Тип параметра (подробно о типах ниже).

default="type text here"
Значение по умолчанию (в данном случае type text here).

description="No description"
Описание поля, выводится при наведении в текстовом блоке (см. ниже)
Всплывающая подсказка к атрибуту DESCRIPTION

Описания типов.
Описанные ранее атрибуты упоминаться будут, только если только в этом возникнет необходимость


{mospagebreak title=Календарь}

1. Календарь

<param name="jtcalendar" type="calendar" default="9-11-2009" label="Select a date" description="" format="%d-%m-%Y" />

format="%d-%m-%Y"
Это формат даты, соответствующий формату используемому в функции PHP strftime

Календарь
{mospagebreak title=Категория}

2. Категория

<param name="jtcategory" type="category" label="Select a category" description="" section="3" />
<param name="jtcategory2" type="category" label="Select a category" description=""/>

Дополнительным, но необязательным атрибутом является section
Если он присутсвует, то в выпадающем списке присутствуют категории только из указанного раздела (рис. 1.1)
В случае если атрибут отсутствует, выводятся все категории с указанием разделов (рис. 1.2)

Выпадающий список категорий
{mospagebreak title=Редактор}

3. Редактор

<param name="jteditor" type="editors" default="none" label="Select an editor" />

Выбор визуального редактора. Отображаются все редакторы установленные на сайте

Выбор редактора
{mospagebreak title=Список файлов}

4. Список файлов

<param name="jtfile" type="filelist" default="" label="Select a file" description="" directory="administrator" filter="" exclude="" stripext="" />

Специфичные, но необязательные, для этого параметра атрибуты:
directory - папка относительно корня сайта(при отсутствии атрибута используется корень сайта).
filter - фильтр (для фильтрации используются регулярные выражения).
exclude - исключенные файлы (для исключения используются регулярные выражения).
Сначала срабатывает фильтр, затем из оставшегося производится исключение.
stripext - скрывать расширение файла (0,пустое значение или отсутствие атрибута - не скрывать[на картинке слева], 1 - скрывать[на картинке справа]).
hide_none - скрывать -Не использовать- в выпадающем списке(0,пустое значение или отсутствие атрибута - не скрывать, 1 - скрывать).
hide_default - скрывать -Использовать по умолчанию- в выпадающем списке(0,пустое значение или отсутствие атрибута - не скрывать, 1 - скрывать).

Список файлов
{mospagebreak title=Список директорий}

5. Список директорий

<param name="jtfolder" type="folderlist" default="" label="Select a folder" directory="administrator" filter="" exclude="" />

Полностью аналогичен списку файлов.
Исключение составляет атрибут stripext, который в контексте директории не имеет смысла.


{mospagebreak title=Сайт помощи}

6. Сайт помощи

<param name="jthelpsite" type="helpsites" default="" label="Select a help site" description="" />

Выбор сайта справки.
Список сайтов хранится в /administrator/help/helpsites-15.xml

Список сайтов справки
{mospagebreak title=Скрытый параметр}

7. Скрытый параметр

<param name="jtsecretvariable" type="hidden" default="555" />

Данный параметр аналогичен полю типа hidden в HTML формах.


{mospagebreak title=Список изображений}

8. Список изображений

<param name="jtimage" type="imagelist" default="" label="Select an image" description="" directory="images" exclude="" stripext="" />

Отображаются файлы с расширениями .png, .gif, .jpg, .bmp, .ico
Во всем остальном параметр аналогичен filelist


{mospagebreak title=Локализация}

9. Локализация

<param name="jtlanguage" type="languages" client="site" default="ru-RU" label="Select a language" description="" />

Выбор языка.
В обязательном атрибуте client могут использоваться значения site и administrator, устанавливая значения локализации для сайта и админ-панели сооответственно

Список доступных языков
{mospagebreak title=Список}

10. Список

<param name="jtlist" type="list" default="1" label="List" description="">
  <option value="1">Parameter One</option>
  <option value="0">Parameter Zero</option>
</param>

Список предопределенных параметров.

Список
{mospagebreak title=Список меню}

11. Список меню

<param name="jtmenu" type="menu" default="mainmenu" label="Select a menu" description="Select a menu" />

Список всех меню на сайте.

Список меню
{mospagebreak title=Список пунктов меню}

12. Список пунктов меню

<param name="jtmenuitem" type="menuitem" default="45" label="Select a menu item" description="Select a menu item" />

список всех пунктов меню сайта сгрупированный по имени меню.

Список меню
{mospagebreak title=Пароль}

13. Пароль

<param name="jtpassword" type="password" default="secret" label="Enter a password" description="" size="15" />

Текстовое поле закрываемое "звездочками".

Пароль
{mospagebreak title=Радиокнопка}

14. Радиокнопка

<param name="jtradiovalue" type="radio" default="0" label="Select an option" description="">
  <option value="0">1</option>
  <option value="1">2</option>
  <option value="2">3</option>
</param>

Радиопереключатель.

Радиопереключатель
{mospagebreak title=Разделы}

15. Разделы

<param name="оеsection" type="section" default="" label="Select a section" description="" />

Отображает список разделов сайта

Разделы
{mospagebreak title=Разделитель}

16. Разделитель

<param type="spacer" />
<param type="spacer" default="<b>Advanced parameters</b>" />

Атрибут default не является обязательным. Но при его использовании можно вместо разделителя выводить текст.
Сверху без default, снизу с закодированными HTML тегами.

Разделитель
{mospagebreak title=SQL}

17. SQL

Данный список формируется посредством SQL запроса указанного в атрибуте query
Возможны несколько типов формирования списка:
1. MySQl запрос должен вернуть список пар результатов с названиями полей value(значение) и значением атрибута name

 
<param name="jtsqlfield" type="sql" default="10" label="Select an article" query="SELECT id AS value, title AS jtsqlfield FROM #__content" />
2. Запрос формируется как нам удобно, а поля значения/текста указывается в дополнительных атрибутах key_field и value_field
<param name="jtsqlfield" type="sql" default="10" label="Select an article" query="SELECT id, title FROM #__content" key_field="id" value_field="title" />
В запросах можно использовать всю силу 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. Текст

<param name="jttextvalue" type="text" default="Some text" label="Enter some text" description="" size="10" class="myclass" />

Текстовое поле ввода.
Атрибут size задает ширину поля в символах
class - добавляет класс CSS к полю

Текстовое поле
{mospagebreak title=Текстовое поле}

19. Текстовое поле

<param name="jttextarea" type="textarea" default="default" label="Enter text" description="" rows="10" cols="40" />

Многострочное текстовое поле.
Атрибут cols задает ширину поля в символах
rows - задает высоту поля в строках class - добавляет к полю CSS класс

Многострочное текстовое поле
{mospagebreak title=Часовой пояс}

20. Часовой пояс

<param name="jttimezone" type="timezones" default="-3" label="Select a timezone" description="" />

Отображает временные зоны.

Часовой пояс
{mospagebreak title=Пользовательские группы}

21. Пользовательские группы

<param name="jtusergroups" type="usergroup" default="" label="Select a user group" description="" />

Отображает пользовательские группы.

Пользовательские группы
Для того, чтоб оставить комментарий, авторизуйтесь через социальные сети.

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Скачать Joomla! 3.9.5 Документация Joomla! CMS Свернуть

Расширения Joomla

Новости портала

Новое в блогах