В данной статье мы с Вами создадим простейший компонент для CMS Joomla. По традиции любая книга по изучению языка программирования начинается с написания простейшей программы Hello World на этом языке. Давайте и я не буду отступать от традиций и мы с Вами создадим простейший компонент Hello world, который будет выводить на экран надпись в public части сайта “Hello World”, а в админ части “Hello World administrator”. В дальнейшем мы конечно же изменим функционал нашего компонента CMS Joomla, а сейчас наша главная цель разобраться в структуре самого компонента. Ну, что ж приступим...
В начале создадим на Вашем диске папку com_helloworld. Папка должна называться именно так потому, что первая часть названия “com_” обозначает, что наше расширение относиться к компоненту, а вторая часть - это название компонента.
Вообще компонент состоит из двух частей: первая часть для public и вторая для админ панели. Давайте так и сделаем, в папке com_helloworld создадим две подпапки “site” и “admin”. В папке “site” будут находиться элементы нашего компонента, которые отвечают за public часть сайта, т.е. ту, которая доступна для просмотра нашим посетителям. А в папке “admin” будут находиться те элементы компонента, которые отвечают за вывод и настройки компонента в админ панели.
Переходим в папку “site”. В этой папке создаем файл helloworld.php - это основной файл нашего компонента. Называться он должен строго, как наш компонент и как вторая часть папки, в которой он находиться. И создадим еще один файл index.html - файл заглушку.
Следующим шагом переходим в папку “admin”. Тут мы создаем два файла: index.html - файл заглушку и файл helloworld.php - основной файл компонента, который отвечает за данные в админ панели. Так же нам в этой папке нужно создать подпапку “sql”, которая нам пригодиться в будущем. В подкаталоге sql создаем файл заглушку index.html и подкаталог “updates”. В свою очередь в подпапке “updates” создадим index.html и подпапку “mysql”. А уже в подпапке “mysql” создадим два файла: index.html и файл 0.0.1.sql.
В дальнейшем Вы поймете для чего мы это сделали, поэтому не пропускайте выход статей из моего блога. А для этого необходимо просто подписаться на обновления данного блога или следить за мной в twitter.
Перейдем в корневой каталог “com_helloworld” нашего компонента helloworld и создадим в нем два файла: первый файл заглушку index.html и файл описания helloworld.xml.
Переходим к наполнению наших файлов.
Содержание index.html
<!DOCTYPE html><title></title>
Содержание файла helloworld.xml
Как правильно составить файл описаний я уже писал в статье “Файлы объявления в CMS Joomla. Правила составления xml файла в Joomla.” поэтому подробно я не буду описывать какой тег за что отвечает.
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="1.6.0" method="upgrade">
<name>Hello World!</name>
<!-- Данные об авторе компонета -->
<creationDate>2011</creationDate>
<author>zloykolobok</author>
<authorEmail></authorEmail>
<authorUrl>http://zloykolobok.blogspot.com</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- Какая версия нашего компонента -->
<version>0.0.1</version>
<!-- Описание компонента-->
<description>Мой первый учебный компонент, созданный по материалам блога zloykolobok.blogspot.com</description>
<update> <!-- Этот тег выполняется в 1.6 и выше -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Куда будет скопирован основной файл компонента-->
<files folder="site">
<filename>index.html</filename>
<filename>helloworld.php</filename>
</files>
<administration>
<!-- Административное меню-->
<menu>Hello World!</menu>
<!-- Куда будет скопирован основной файл компонента, отвечающий за админку-->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>helloworld.php</filename>
<!-- секция SQL файлов -->
<folder>sql</folder>
</files>
</administration>
</extension>
На этом файл описаний закончен (пока закончен, в дальнейшем мы его конечно же расширим)
Содержание файла helloworld.php, находящийся в папке site
Hello World
Содержание файла helloworld.php, находящийся в папке admin
Hello World administrator
Остальные файлы оставим, пока, пустыми. Помещаем все это в zip-архив. Все компонент готов :). Давайте проверим, для этого установим наш компонент в CMS Joomla. Если Вы не знаете как это сделать, то я Вам рекомендую почитать серию статей по интерфейсу Joomla. Переходим в меню “Компоненты” и вуаля мы видим новый пункт меню “hello-world”. Переходим по нему и видим сообщение “Hello World administrator”, именно то, что хотели сделать. Проверим работоспособность нашего компонента для public части нашего сайта, для этого в адресной строке набираем “<ваш сайт>/index.php?option=com_helloworld” и …. Видим надпись hello world. Наш компонент работает. На этом пока все ждите выхода следующих статей. Если у Вас что-то не получается Вы можете скачать готовый компонент из данного урока по ЭТОЙ ССЫЛКЕ (перед установкой переименуйте архив в com_helloworld.zip) и задавать вопросы в комментариях, я постараюсь обязательно на них ответить. Всем удачи и приятной разработки сайтов на CMS Joomla. В следующей статье мы добавим немного функциональности для нашего расширения "Создание расширения для CMS Joomla 1.7. Часть 2"
В начале создадим на Вашем диске папку com_helloworld. Папка должна называться именно так потому, что первая часть названия “com_” обозначает, что наше расширение относиться к компоненту, а вторая часть - это название компонента.
Вообще компонент состоит из двух частей: первая часть для public и вторая для админ панели. Давайте так и сделаем, в папке com_helloworld создадим две подпапки “site” и “admin”. В папке “site” будут находиться элементы нашего компонента, которые отвечают за public часть сайта, т.е. ту, которая доступна для просмотра нашим посетителям. А в папке “admin” будут находиться те элементы компонента, которые отвечают за вывод и настройки компонента в админ панели.
Переходим в папку “site”. В этой папке создаем файл helloworld.php - это основной файл нашего компонента. Называться он должен строго, как наш компонент и как вторая часть папки, в которой он находиться. И создадим еще один файл index.html - файл заглушку.
Следующим шагом переходим в папку “admin”. Тут мы создаем два файла: index.html - файл заглушку и файл helloworld.php - основной файл компонента, который отвечает за данные в админ панели. Так же нам в этой папке нужно создать подпапку “sql”, которая нам пригодиться в будущем. В подкаталоге sql создаем файл заглушку index.html и подкаталог “updates”. В свою очередь в подпапке “updates” создадим index.html и подпапку “mysql”. А уже в подпапке “mysql” создадим два файла: index.html и файл 0.0.1.sql.
В дальнейшем Вы поймете для чего мы это сделали, поэтому не пропускайте выход статей из моего блога. А для этого необходимо просто подписаться на обновления данного блога или следить за мной в twitter.
Перейдем в корневой каталог “com_helloworld” нашего компонента helloworld и создадим в нем два файла: первый файл заглушку index.html и файл описания helloworld.xml.
Переходим к наполнению наших файлов.
Содержание index.html
<!DOCTYPE html><title></title>
Содержание файла helloworld.xml
Как правильно составить файл описаний я уже писал в статье “Файлы объявления в CMS Joomla. Правила составления xml файла в Joomla.” поэтому подробно я не буду описывать какой тег за что отвечает.
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="1.6.0" method="upgrade">
<name>Hello World!</name>
<!-- Данные об авторе компонета -->
<creationDate>2011</creationDate>
<author>zloykolobok</author>
<authorEmail></authorEmail>
<authorUrl>http://zloykolobok.blogspot.com</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<!-- Какая версия нашего компонента -->
<version>0.0.1</version>
<!-- Описание компонента-->
<description>Мой первый учебный компонент, созданный по материалам блога zloykolobok.blogspot.com</description>
<update> <!-- Этот тег выполняется в 1.6 и выше -->
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
</schemas>
</update>
<!-- Куда будет скопирован основной файл компонента-->
<files folder="site">
<filename>index.html</filename>
<filename>helloworld.php</filename>
</files>
<administration>
<!-- Административное меню-->
<menu>Hello World!</menu>
<!-- Куда будет скопирован основной файл компонента, отвечающий за админку-->
<files folder="admin">
<!-- Admin Main File Copy Section -->
<filename>index.html</filename>
<filename>helloworld.php</filename>
<!-- секция SQL файлов -->
<folder>sql</folder>
</files>
</administration>
</extension>
На этом файл описаний закончен (пока закончен, в дальнейшем мы его конечно же расширим)
Содержание файла helloworld.php, находящийся в папке site
Hello World
Содержание файла helloworld.php, находящийся в папке admin
Hello World administrator
Остальные файлы оставим, пока, пустыми. Помещаем все это в zip-архив. Все компонент готов :). Давайте проверим, для этого установим наш компонент в CMS Joomla. Если Вы не знаете как это сделать, то я Вам рекомендую почитать серию статей по интерфейсу Joomla. Переходим в меню “Компоненты” и вуаля мы видим новый пункт меню “hello-world”. Переходим по нему и видим сообщение “Hello World administrator”, именно то, что хотели сделать. Проверим работоспособность нашего компонента для public части нашего сайта, для этого в адресной строке набираем “<ваш сайт>/index.php?option=com_helloworld” и …. Видим надпись hello world. Наш компонент работает. На этом пока все ждите выхода следующих статей. Если у Вас что-то не получается Вы можете скачать готовый компонент из данного урока по ЭТОЙ ССЫЛКЕ (перед установкой переименуйте архив в com_helloworld.zip) и задавать вопросы в комментариях, я постараюсь обязательно на них ответить. Всем удачи и приятной разработки сайтов на CMS Joomla. В следующей статье мы добавим немного функциональности для нашего расширения "Создание расширения для CMS Joomla 1.7. Часть 2"
При установке расширения выдает ошибку: "Error building Admin Menus". Вроде уже пробовал по-разному ставить кодировку UTF-8 в xml-файле.
ОтветитьУдалитьА исходники можно глянуть?
ОтветитьУдалитьА я собственно и пытался установить тот, который выложен у тебя.
ОтветитьУдалитьЕсли исходник брал мой, то там все в кодировке UTF-8, но это не влияет. Работаешь на Windows или Linux? С правами все нормально?
ОтветитьУдалитьНе могу скачать ни один файл (пробовал три первых урока). Ожидание минуту, потом открывает адрес http://dl.upload.com.ua///
ОтветитьУдалитьИсходник к этому уроку перезалил. К следующим чуть позже. Я извиняюсь за неудобства. Не доверяйте сервису upload.com.ua ))
Удалить1.Откуда в меню админки взялась надпись hello-word?
ОтветитьУдалить2.Каким образом тексты из файлов site/helloworld.php и admin/ helloworld.php оказались на своих местах?
Кстати о кодировке: сначала компонент не устанавливался, но после "Преобразовать в UTF-8 без BOM" в Notepad++ XML файл - установился.
1.Откуда в меню админки взялась надпись hello-word?
ОтветитьУдалитьВзялось из Hello World! путем отсекания ! и замены пробела минусом
Есть один неприятный ньюанс.
Hello World!
Так вот если в этом поле стоит надпись на русском и присутствует буква я,
то ошибка инсталляции :((
По крайней мере у меня. Чистая 2.5.3
<name>Hello World!</name>
ОтветитьУдалить