Читаем Разрботка расширений для CMS Joomla полностью

Далее следует тег files со значением атрибута folder, равным site, т.е. описаны папки и файлы, которые находятся в папке siteустановочного пакета. Обратите внимание, что содержимое подпапок ( modelsи views) не описывается, указывается только имя подпапки.

Содержимое тега описывает языковые файлы. Так как задан атрибут site, то эти файлы будут скопированы из папки siteустановочного пакета.

Оставшуюся часть файла myquestions.xmlзанимает тег . Вложенные в него теги и аналогичны тегам, описывавшим фронтенд, за исключением атрибутов folder, имеющих значение admin. Тег

описывает пункт меню, который появится в меню " Компоненты" панели управления, а также два его подпункта. Обратите внимание, что при задании ссылок для пунктов меню вместо амперсанда необходимо указывать его HTML-эквивалент &.

Добавьте в файл /administrator/language/ru-RU/ru-RU.com_myquestions.sys.iniстроки:

COM_MYQUESTIONS="Моя система «вопрос – ответ»" COM_MYQUESTIONS_XML_DESCRIPTION="Моя система «вопрос – ответ»"

В папку adminскопируйте содержимое папки /administrator/components/com_myquestions, а в папку site- /components/com_myquestions

.

Кроме того, создайте в папке siteпапку language, в ней - папку ru-RU. Скопируйте в нее файл ru-RU.com_myquestions.iniиз language/ru-RU.

Создайте в папке adminпапку language, в ней - папку ru-RUи скопируйте в нее файлы ru-RU.com_myquestions.sys.iniи ru-RU.com_myquestions.iniиз /administrator/language/ru-RU.

Наконец, создайте в папке admin

подпапку sql, а в ней создайте файлы install.sqlи uninstall.sql.

Получившееся дерево папок показано на рис. 8.3.

Рис. 8.3.  Дерево папок установочного пакета

В файл install.sqlвставьте код

DROP TABLE IF EXISTS `#__myquestions`; DROP TABLE IF EXISTS `#__myquestions_categories`; CREATE TABLE `#__myquestions` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `date` DATETIME NOT NULL, `question` TEXT NOT NULL, `city` VARCHAR(50) NULL, `email` VARCHAR(50) NOT NULL, `IP` VARCHAR(15) NOT NULL, `id_cat` INT NOT NULL, `published` TINYINT(1) NULL DEFAULT '1', `expiration_date` DATETIME NULL DEFAULT '0000-00-00 00:00:00', `senttoexpert` TINYINT(1) NULL DEFAULT '0', `answer` TEXT NULL DEFAULT '', `senttoauthor` TINYINT(1) NULL DEFAULT '0' ); CREATE TABLE `#__myquestions_categories` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `desc` TEXT NOT NULL DEFAULT '' ); INSERT INTO `#__myquestions_categories`(`name`, `desc`) VALUES('Без категории','');

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

В таблицу #__myquestions_categories сразу же вставляется запись для категории под названием " Без категории". Так как таблица только что создана, эта запись получит id, равный 1, то совпадающий с id категории, который в нашем компоненте присваивается новому вопросу при добавлении.

Запросы из скрипта uninstall.sqlудаляют обе таблицы:

DROP TABLE `#__myquestions`; DROP TABLE `#__myquestions_categories`;

Упакуйте папки admin, siteи файл myquestions.xmlв архив com_myquestions.zip. Установочный пакет компонента готов. Для проверки его работоспособности создайте новую установку Joomla и установите на нее ваш компонент с помощью менеджера расширений в панели управления.

Манифест для модуля


Настройки модуля

Создайте файл /modules/mod_myquestions/mod_myquestions.xml:

mod_myquestions Me 2012 Copyright (C) 2012 Me

GNU General Public License version 2 or later admin@mysite.ru www.mysite.ru 1.7.0 MOD_MYQUESTIONS_XML_DESCRIPTION

Перейти на страницу:

Похожие книги

Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT