|
Это первая и вторая часть из серии статей о создании компонентов к Joomla!. Здесь мы рассмотрим (именно мы, вместе с вами, пошагово) основные моменты создания расширений Joomla!. Начнем с создания простенького компонента "Моя доска объявлений".
В Joomla! (Mambo, Joostina) все компоненты имеют определенный состав. Файлы компонента делятся на обязательные, которые требуются для установки и исполнения и необязательные, которые используются самим компонентом.
Состав компонентов в CMS Joomla!
Обязательные файлы можно разделить на скрипты лицевой части, части администратора и установочные. Установочные файлы: - <название компонента>.xml – содержит краткое описание, версию, список файлов компонента, личные данные автора, SQL-запросы которые должны выполнятся при установке и деинсталляции.
- install. <название компонента>.php
- uninstall. <название компонента>.php
Файлы лицевой части: - <название компонента>.php
Файлы части администратора: - admin.<название компонента>.php
- toolbar.<название компонента>.php
Необязательные файлы могут иметь любое имя. Чтобы их использовать достаточно включить в нужный файл следующую строчку: require_once(‘имя файла’); Более подробно структуру каждого файла рассмотрим в следующих статьях.
Итак, мы рассмотрели состав компонентов в Joomla! 1.0.x. Сначала я думал описать каждый файл компонента в отдельной статье, но пришел к выводу, что это будет не рационально. Пойдем не много другим путем – будем описывать по шаговое создание какого-нибудь не сложного компонента. Наш компонент будет называться «Доска объявлений», в нем мы реализуем следующие возможности: Для пользователей:
- Регистрация в компоненте
- Добавление зарегистрированными пользователями сообщений
- Просмотр сообщений всеми пользователями
Для администратора:
- Просмотр и удаление сообщений
Заранее хочется сказать, что дизайна (внешнего вида) касаться не буду. Упор будет сделан на основные моменты создания компонентов, доступа к базам данных и т.д. Компонент назовем myboard. Первый шаг. Создание файлов (пока пустых). Итак, создаем следующие файлы (естественно лучше в отдельной директории) - myboard.xml
- myboard.php
- admin.myboard.php
- toolbar.myboard.php
Второй шаг. Редактирование файла myboard.xml. Открываем данный файл в любом текстовом редакторе. И вставляем следующий код. Внимание ! Весь текст, написанный курсивом, в файл вставлять не надо, это комментарии: <?xml version="1.0" encoding="iso-8859-1"?> <mosinstall type="component" version="4.5.2"> <name>myboard</name> <creationDate> Дата создания компонента </creationDate> <author> Имя автора</author> <copyright> Копирайт </copyright> <authorEmail> Mail автора </authorEmail> <authorUrl> Сайт автора </authorUrl> <version> Версия компонента </version> <description> Описание </description> <files> В этой секции перечисляются все файлы лицевой части компонента. Имя каждого файла указывается в тегах <filename></filename> <filename>myboard.php</filename> </files> <images> В этой секции перечисляются все изображения лицевой части компонента. Имя каждого файла указывается в тегах <filename></filename> </images> <install> <queries> Секция запросов, которые должны выполнится при установке компонента. Каждый запрос в тегах <query></query> </queries> </install> <uninstall> <queries> Секция запросов, которые должны выполнится при установке компонента. Каждый запрос в тегах <query></query> </queries> </uninstall> <administration> Создание меню в панели администратора <menu>Наша доска</menu> Создание подменю меню Наша доска <submenu> Переменная act – это уникальный идентификатор пункта меню, поэтому повторятся значения этого параметра не должны. Мы создадим подменю: Просмотр и удаление объявлений. <menu act="view_mess"> Просмотр и удаление объявлений </menu> </submenu> <files> Перечисление файлов части администратора имя каждого файла находится в тегах <filename> </filename> <filename>admin.myboard.php</filename> <filename>toolbar.myboard.php</filename> </files> <images> Перечисление изображений части администратора имя каждого файла находится в тегах <filename> </filename> </images> </administration> </mosinstall>
Файл myboard.xml
Итак, отредактировав файл myboard.xml архивируем (zip) все созданные нами файлы (именно файлы а не папку, в которой они находятся). Получаем например файл myboard.zip. Заходим в часть администратора (вводим пароль - логин). Далее меню установка-удаление >> компоненты. Далее ищем кнопку ОБЗОР и выбираем наш созданный только что файл. Нажимаем ЗАГРУЗИТЬ И УСТАНОВИТЬ. Появляется сообщение о успешной установке компонента. Все второй шаг закончен переходим непосредственно к разработке компонента. Шаг третий. Таблицы базы данныхКакие же таблицы (баз данных) нам понадобятся. Ну во-первых смотрим на наши цели: Отдельную регистрацию мы делать не будем, воспользуемся механизмом Joomla!. Объявления будем хранить в таблице вида: id_message (идентификационный номер – ИН объявления), message (непосредственно само объявление), id (ИН пользователя , который объявление разместил), start_date (начало показа), end_date (конец показа). Ну и все на этом. Во-вторых таблицу назовем mdo_message. Шаг четвертый. Снова редактирование файла myboard.xml Во втором шаге мы установили пустой компонент, сделали это лишь для того, чтобы посмотреть правильно ли мы создали файл myboard.xml.
(А так же просто из любопытства). Сейчас, когда снова переходим к
редактированию компонента, установленный компонент нужно удалить. Итак редактируем инсталляционный файл (myboard.xml). Открываем в любом текстовом редакторе и ищем, в созданном нами файле, секцию <install><queries> </queries></install>
Нам нужно, чтобы при установке компонента, в текущей (для Joomla) базе
данных создалась таблица вышеописанного вида. Для этого нужно составить
SQL-запрос, ограничить его обеих сторон тегами <query></query> и поместить в упомянутую выше секцию. Если вы знакомы с PHPMyAdmin, то с помощью него очень просто создать нужный запрос на создание, удаление баз данных, таблиц, записей. Для этого создаем в PHPMyAdmin требуемую таблицу, ключевым полем таблицы будет поле id_message.
После нажатия кнопки сохранить приложение создаст требуемую таблицу и
покажет запрос, с помощью которого эту таблицу можно создать. CREATE TABLE `test117`.`mdo_message` ( `id_message` INT NOT NULL AUTO_INCREMENT , `message` TEXT NOT NULL , `id` INT NOT NULL , `start_date` INT NOT NULL , `end_date` INT NOT NULL , PRIMARY KEY ( `id_message` ) ) ENGINE = MYISAM
Как мы видим из запроса все поля целочисленного типа, кроме поля message. Так же при удалении из Joomla нужно, чтобы все таблицы принадлежащие компоненту были удалены. Для этого находим секцию <uninstall><queries> </queries></uninstall> И вставляем следующий запрос <query>DROP TABLE mdo_message;</query> Данную строчку нужно вставить столько раз, сколько таблиц нужно удалить, не забывая менять имя удаляемой таблицы (mdo_message в данном случае). Итак файл myboard.xml после наших над ним стараний выглядит так:
<?xml version="1.0" encoding="iso-8859-1"?> <mosinstall type="component" version="4.5.2"> <name>myboard</name> <creationDate>2.07.08</creationDate> <author>Брикалов Константин</author> <copyright></copyright> <authorEmail>
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
</authorEmail> <authorUrl>test.ex6.ru</authorUrl> <version>1.0.0.0</version> <description>Доска объявлений</description> <files> <filename>myboard.php</filename> </files> <images> </images> <install> <queries> <query> CREATE TABLE `mdo_message` ( `id_message` INT NOT NULL AUTO_INCREMENT, `message` TEXT NOT NULL , `id` INT NOT NULL , `start_date` INT NOT NULL , `end_date` INT NOT NULL , PRIMARY KEY ( `id_message` ) ) ENGINE = MYISAM; </query> </queries> </install> <uninstall> <queries> <query> DROP TABLE mdo_message; </query> </queries> </uninstall> <administration> <menu>Наша доска</menu> <submenu> <menu act="view_mess"> Просмотр и удаление объявлений </menu> </submenu> <files> <filename>admin.myboard.php</filename> <filename>toolbar.myboard.php</filename> </files> <images> </images> </administration>
</mosinstall>
Теперь
можно снова запаковать файлы компонента, и попробовать установить. Ели
все было сделано правильно компонент установится и таблица mdo_message успешно создастся. Далее удалите компонент и посмотрите удалилась ли таблица. Следующие статьи и серии "Создаем компонент Моя доска объявлений" можно найти по следующей ссылке Создай компонент Joomla свлими руками
© 2008 Created by Dapmoed
|
Комментарии
2008-08-0214:08:07 Замечательная статья. Хотелось бы увидеть здесь продолжение.
2008-08-0404:29:43 Обязательно выложу продолжение