Просмотры
Материал из База знаний Joomla.
Содержание |
Вступление
В данной небольшой статье я покажу как можно создать самый простой компонент для Joomla ветки 1.0. Просто костяк, на который потом можно "наращивать свое мясо".
Инсталляция любого компонента, модуля или мамбота как таковая это zip-файл, содержащий в себе несколько файлов и директорий в которых может находиться программный код, изображения или другие элементы, необходимые для работы вашего компонента. На самом деле не обязательно всегда сразу предусматривать что же у вас будет заложено в компоненте, что он будет использовать. Главное - выбрать для него имя и создать обязательные файлы.
Все остальное - можно вносить уже после установки, во время процесса разработки, всего лишь модифицируя xml-файл и добавляя в него новые, необходимые вам, элементы. А сборку производить простым копированием в одну директорию файлов из админ- и фронт-части компонента и архивируя это в zip-файл.
Поехали
Предположим вы создаете компонент по вводу данных о бабочках для продвинутых биологов-экологов. Я бы выбрал для него самое простое имя butterfly, и скорее всего бы не прогадал, потому что мало кому придет в голову называть так компоненты. Но вот называть компонент именем test или shop не правильно, потому что вполне может сложиться ситуация, когда другой разработчик создал одноименный компонент и при установке двух таких расширений на один сайт может возникнуть конфликт.
Итак. Создаем директорию com_butterfly и файл butterfly.php в ней. Первое имя для удобства, второе - по необходимости. Далее нам нужно описать наш инсталляционный пакет. Для этого используются специальным образом отформатированные xml-файлы. Например, такой:
<?xml version="1.0" encoding="windows-1251"?> <mosinstall type="component"> <name>butterfly</name> <author>Who am I</author> <authorUrl>google.com</authorUrl> <version>1.0</version> <description>Учет миграции бабочек</description> <files> <filename>butterfly.php</filename> <filename>images/index.html</filename> </files> </mosinstall>
В файл butterfly.php напишем примерно следующее:
<? echo "Привет всем бабочкам"; ?>
Вам наверняка стало интересно, а что это за папка images и зачем в ней создан файл index.html. Дело в том, что это такой трюк, который применяется, если нам надо, что бы установщик компонента создал какую-либо нужную нам директорию. В данном конкретном примере, мы можем хранить в ней фотографии добавляемых в каталог бабочек. Но. Фотографии добавляются уже после установки, а потому мы заранее должны определиться с местом их хранения. Пускай это будет именно эта папка. А файл index.html нам не повредит, даже если он будет совершенно пустой, потому что он всего лишь нужне для обозначения того, что папка будет создана.
Итак, полная сборка архива компонента включает:
- butterfly.php
- butterfly.xml
- Папка images и файл index.html в ней
Установка и проверка
Полученный архив устанавливаем стандартным способом через админку. Но. Помните - в данном компоненте нет административной части, потому что мы ее не создали. Не обязательная она, а потому и в выпадающем меню компонентов его тоже не будет. И найти его можно лишь во фронт-части. Для этого заходим на сайт, где установлена Joomla и пишем в адресной строке:
index.php?option=com_butterfly
Административная часть
Если она все-таки нужна, то нам необходимо модифицировать xml-файл компонента, добавив сразу после закрытого тэга files следующий текст:
... </files> <administration> <menu>Бабочки</menu> <submenu> <menu task="">Действие по умолчанию</menu> <menu task="view_catalog">Просмотр каталога</menu> </submenu> <files> <filename>admin.butterfly.html.php</filename> <filename>admin.butterfly.php</filename> </administration> </mosinstall>
И создать два (можно даже пустых) файла admin.butterfly.html.php и admin.butterfly.php. Описание создания админ-интерфейса - повод для большой и отдельной статьи и потому здесь рассматриваться не будет. Главное понять что в тэге menu содержится текст, который будет помещен в выпадающее меню. В submenu - следующие уровни выпадающих меню, когда к строке запроса будет приписываться заданная переменная task. Например:
index2.php?option=com_butterfly&task=view_catalog
А перечисленные в секции files файлы являются обязательными. В принципе можно в них включить xml-файл, но он должен скопироваться автоматически. Но лучше на это не надеяться. Возможно, в будущих версиях Joomla, такое поведение по умолчанию будет изменено.
Действия с базой данных
Если при установке компонента вам жизненно необходимо создать рабочие таблицы или изменить существующие, то для этого есть специальная секция xml-файла. Можно ее поместить сразу после закрытого тэга files и до administration.
... </files> <queries> <query> CREATE TABLE IF NOT EXISTS `#__batt_list` ( id BIGINT UNSIGNED NOT NULL auto_increment PRIMARY KEY, name VARCHAR(255) ) TYPE=MyISAM; </query> </queries> </mosinstall>
В данном случае мы создаем одну таблицу, в которой, по всей видимости и будем хранить данные о бабочках. Например, их имена.
Последнее изменение этой страницы: 15:02, 27 марта 2009.



