Разрботка расширений для CMS Joomla - Страница 32

Изменить размер шрифта:

Элементы и задают SQL-скрипты, которые должны быть выполнены при установке и удалении расширения. Таким путем в базе данных создаются таблицы, хранящие данные, использующиеся расширением. Атрибут folder задает папку, в которой находятся эти скрипты в установочном пакете, например, "admin". В эти элементы должен быть вложен элемент , содержащий по одному элементу для каждого файла SQL. Атрибуты тега : driver - драйвер базы данных и charset - кодировка базы данных. Например:

sql/install.sql sql/uninstall.sql

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

models views controllers mycomponent.php router.php

Языковые файлы описываются внутри элемента . В установочном пакете эти файлы должны находиться в папке /language/<код языка>. Для каждого из них создается вложенный элемент с атрибутом tag, содержащим код языка в формате :

language/ru-RU/ru-RU.com_mycomponent.ini

Медиа-файлы - изображения, файлы Javascript и CSS, флэш - описываются внутри элемента . Атрибут destination задает название папки, в которую будут скопированы перечисленные файлы. Эта папка должна находиться внутри папки /mediaв корне сайта. Если она не существует, то будет создана при установке расширения.

css images js pic1.jpg

Файлы-манифесты компонентов могут включать элемент . Он содержит такие же элементы и , как и описанные ранее, а также элементы для описания меню компонента в панели управления:

и .

Элемент

, вложенный непосредственно в , описывает пункт в меню " Компоненты", ссылающийся на главную страницу бэкенда компонента. Атрибутом может быть img - относительный путь к пиктограмме пункта меню (по умолчанию будет присвоено значение "class:component").

Элемент может содержать несколько вложенных элементов

, описывающих подпункты этого пункта меню. У таких вложенных тегов может быть несколько атрибутов, среди которых в первую очередь отметим img и link - ссылка, переход по которой произойдет при щелчке на данном пункте меню. Если ссылка задана, то итоговый URL будет сформирован как index.php?<ссылка>. Если же атрибут link не задан, то установщик проверит наличие следующих атрибутов этого же тега: act, task, controller, view, layout, sub и добавит к строке "index.php?option=com_<имя компонента>&" соответствующие пары "имя-значение", разделенные амперсандом. Например, следующие элементы описывают пункт меню с одной и той же ссылкой index.php?option=com_mycomponent&task=edit:

COM_MYCOMPONENT_EDIT COM_MYCOMPONENT_EDIT

Текст пункта меню задается внутри тега

и обязательно должен быть ключом, значение которого должно быть переведено в языковом файле, обычно - /administrator/languages/<код языка>/<код языка>.com_<имя компонента>.sys.ini.

Элемент описывает настройки расширения. Обратите внимание, что для компонентов этот элемент должен находиться не в файле-манифесте, а в отдельном файле config.xmlв корневой директории бэкенда компонента. Для модулей располагается в файле-манифесте и вложен в тег .

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

В или непосредственно в вложен элемент

, соответствующий HTML-элементу
. Каждый
- это группа элементов формы редактирования свойств расширения, например: " Основные настройки", " Расширенные настройки" и т.д. Атрибут name задает имя этого элемента, label - отображаемый текст.

Вложенные в

элементы задают поля формы. Каждый соответствует одной настройке расширения. Допустимые атрибуты:

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.

Оригинальный текст книги читать онлайн бесплатно в онлайн-библиотеке Knigger.com