Создание компонента Joomla

Материал из Newman's WiKi.

Перейти к: навигация, поиск

Содержание

Общая информация

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

Файл установки

Файл установки является текстовым файлом формата XML, с прописаными действиями необходимыми при установе и при удалении компонента. Будем рассматривать синтаксис файла для Joomla версии 1.5.x

В самом общем виде файл имеет следующий вид

<?xml version="1.0" encoding="utf-8"?>
<install type="component" version="1.5.0">
	<name>Component Name</name>
	<author>Alex Newman</author>
	<creationDate>October 2008</creationDate>
	<copyright>Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
	<authorEmail>newman-msk@yandex.ru</authorEmail>
	<authorUrl>www.pws.ru</authorUrl>
	<version>1.5.0</version>
	<description>This string with project descriptiton</description>
</install>

Дополнительные секции добавляются внутри раздела install

Так добавляются файлы для frontend

<files>
	<file>index.html</file>
	<filename>component.php</file>
</files>

Есть возможность целиком указывать каталог с файлами для установки.

<files>
	<folder>views</folder>
</files>

Для контрольной панели есть секция.

<administration>
	<menu>My Component</menu>
	<submenu>
		<menu task="task1">Submenu1</menu>
	</submenu>
	<files>
		<file>index.html</file>
	</files>
</administration>

Эта секция описывает файлы, используемые в контрольной панели и описывает меню, которое будет добавлено в основное меню в раздел "Компоненты" (Components)

Если при установке компонента нужно создать таблицы или произвести какие-то операции с базой данных, то можно использовать следующую секцию.

<install>
	<queries>
		<query>
			CREATE TABLE IF NOT EXISTS `#__helloworld` (
			`id` int(11) NOT NULL default '0',
			.......
			PRIMARY KEY  (`id`)
			) TYPE=MyISAM;
		</query>
	</queries>
</install>

Так же можно использовать инструкции из внешнего файла.

<install>
	<sql>
		<file driver="mysql">install.mysql.sql</file>
	</sql>
</install>

Аналогично секции install существует секция uninstall предназначенная для указания запросов, которые выполняются при удалении компонента.

Запросов может быть любое количество. При обращениее к таблицам нужно использовать префик #__. При исполнении запроса он будет заменяться на системный префикс (по умолчанию "jos_"). Это справедливо не только для установочного файла но и для любого кода исполняемого внутри Joomla

В секции languages указываются файлы с переводом.

<languages>
		<language tag="en-GB">en-GB.com_helloworld.ini</language>
		<language tag="ru-RU">ru-RU.com_helloworld.ini</language>
</languages>

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

<files folder="admin">
<file>index.html</file>
</files>

Файлы и каталоги

Поддержка нескольких языков

Joomla 1.5 имеет встроенную поддержку многоязычности. Подробней: Локализация Joomla

Личные инструменты