name - имя type - тип default - значение по умолчанию label - текст, который будет выводиться рядом с соответствующим элементом управления на форме description - описание, которое будет выводиться во всплывающей подсказке.
Некоторые стандартные типы полей:
calendar - текстовое поле, рядом с которым выводится пиктограмма для вывода календаря; category - выпадающий список категорий; editors - выпадающий список доступных WYSIWYG-редакторов; filelist - выпадающий список файлов из заданной директории; folderlist - выпадающий список папок из заданной директории; imagelist - выпадающий список файлов изображений из заданной директории; languages - выпадающий список установленных языковых файлов фронтенда или бэкенда; list - выпадающий список каких-либо строк; password - поле для ввода пароля; radio - переключатель; spacer - разделитель; sql - выпадающий список элементов, полученных в результате выполнения заданного SQL-запроса; text - текстовое поле; textarea - многострочное текстовое поле; timezones - список часовых поясов.
Для списков и переключателей в тег
Например, так описывается выпадающий список для выбора порядка сортировки - по возрастанию или по убыванию:
Для таких элементов, как filelist, folderlist, imagelist, вложенные элементы
Для создания собственного типа поля необходимо создать файл <имя типа>.phpи в нем описать класс, производный от одного из классов подпакета Form: JFormFieldList, JFormFieldMedia и др. (полный ссылка: список классов- http://docs.joomla.org/Subpackage_Form/1.6см. в документации). В классе должен быть перегружен метод родительского класса, отвечающий за вывод поля формы. Простой ссылка: пример- http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5_-_Part_06приведен в документации Joomla.
Практика
В таблицах #__extensions и #__modules, в которые мы добавляли записи о наших расширениях, есть поле params, позволяющий хранить значения параметров. Например, для модуля mod_myquestions в этом поле хранится значение наподобие {"random":"0","items":"3","maxlen":"100","author":"1","date":"1"}. Нетрудно заметить, что данная строка представляет собой совокупность пар " ключ - значение". Таким образом, заданные значения настроек расширений сохраняются в базе данных. Наша задача - предоставить администратору сайта интерфейс для изменения этих значений.
Кроме того, мы создадим установочные пакеты для модуля и для компонента, представляющие собой ZIP-архивы определенной структуры.
Манифест для компонента
Настройки компонента
Зададим два параметра компонента myquestions - адреса электронной почты администратора сайта и эксперта.
Создайте файл /administrator/components/com_myquestions/config.xml:
Добавьте в файл /administrator/language/ru-RU/ru-RU.com_myquestions.iniкод:
COM_MYQUESTIONS_CONFIGURATION="Настройки системы «вопрос – ответ»" COM_MYQUESTIONS_FIELDSETCONFIG_LABEL="Настройки системы" COM_MYQUESTIONS_FIELDSETCONFIG_LABEL_DESC="Настройки системы" COM_MYQUESTIONS_FIELD_EMAILADMIN_LABEL="E-mail администратора" COM_MYQUESTIONS_FIELD_EMAILADMIN_LABEL_DESC="На этот адрес будут приходить уведомления о новых вопросах, и с этого адреса будут отправляться уведомления экспертам и пользователям" COM_MYQUESTIONS_FIELD_EMAILEXPERT_LABEL="E-mail эксперта" COM_MYQUESTIONS_FIELD_EMAILEXPERT_LABEL_DESC="На этот адрес будут приходить уведомления о новых вопросах, отправленные модератором"
Для отображения в панели инструментов кнопки " Настройки" используется метод JToolBarHelper::preferences. Измените функцию TOOLBAR_myquestions::_DEFAULT в файле /administrator/components/com_myquestions/toolbar.myquestions.html.phpследующим образом: