понедельник, 31 октября 2011 г.

Создание расширения для CMS Joomla 1.7. Часть 1

В данной статье мы с Вами создадим простейший компонент для 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"

Понравилась статья? Поблагодарить автора:

Введите e-mail адрес:



9 комментариев:

  1. При установке расширения выдает ошибку: "Error building Admin Menus". Вроде уже пробовал по-разному ставить кодировку UTF-8 в xml-файле.

    ОтветитьУдалить
  2. А я собственно и пытался установить тот, который выложен у тебя.

    ОтветитьУдалить
  3. Если исходник брал мой, то там все в кодировке UTF-8, но это не влияет. Работаешь на Windows или Linux? С правами все нормально?

    ОтветитьУдалить
  4. Не могу скачать ни один файл (пробовал три первых урока). Ожидание минуту, потом открывает адрес http://dl.upload.com.ua///

    ОтветитьУдалить
    Ответы
    1. Исходник к этому уроку перезалил. К следующим чуть позже. Я извиняюсь за неудобства. Не доверяйте сервису upload.com.ua ))

      Удалить
  5. 1.Откуда в меню админки взялась надпись hello-word?
    2.Каким образом тексты из файлов site/helloworld.php и admin/ helloworld.php оказались на своих местах?

    Кстати о кодировке: сначала компонент не устанавливался, но после "Преобразовать в UTF-8 без BOM" в Notepad++ XML файл - установился.

    ОтветитьУдалить
  6. 1.Откуда в меню админки взялась надпись hello-word?
    Взялось из Hello World! путем отсекания ! и замены пробела минусом

    Есть один неприятный ньюанс.

    Hello World!
    Так вот если в этом поле стоит надпись на русском и присутствует буква я,
    то ошибка инсталляции :((
    По крайней мере у меня. Чистая 2.5.3

    ОтветитьУдалить