Оцените статью: 5 1 1 1 1 1 Рейтинг 5.00 (1 Оценка)

Здравствуйте, по теме разработки компонентов написано не так много статей. В основном более-менее хорошие материалы написаны на английском. На русском же, скорее всего, вы найдёте не очень хорошие переводы этих самых английских текстов или же решения, которые предлагаются как статьи для обучения, но учиться по ним - это всё равно, что разбирать исходные коды Joomla!, потому что каких-либо объяснений очень часто не прилагается.

В моём цикле статей я хочу вам представить основы разработки Joomla! 2.5 компонентов на базе серии статей из официальной документации Joomla!.

Вступление

Фреймворк Joomla! 2.5 построена с использованием 3 приложений:

  1. Установка - используется для установки CMS (класс JInstallation).
  2. Администрирование - панель администратора для управления контентом (класс JAdministrator).
  3. Сайт - сайт, который представляется пользователю (фронтенд - класс JSite).

Все приложения представляют классы, унаследованные от абстрактного класса JApplication. Приложение установки используется 1 раз - при установке Joomla!. После установки CMS необходимо удалить директорию installation, которая содержит это приложение.

Части администрирования и фронтенда используют концепцию компонентов. Каждый компонент имеет 2 точки входа:

  • одна - в директории components (используется для обработки и отображения контента);
  • другая - в директории administrator/components (для управления контентом).

В обоих случаях папка компонента имеет название, сходное со схемой com_componentname и файл входа в компонент - componentname.php. Префикс com_ приобретён исторически.

Что ж, приступим к созиданию компонента HelloWorld. Приёмы, описанные в этом руководстве, справедливы и для разработки других компонентов. Пробуйте, тестируйте различные приёмы, используемые для разработки.

Создание папок для файлов компонента

Создайте 2 папки для размещения структуры файлов и каталогов компонента:

  •  фронтенд - components/com_helloworld (создайте в этой папке файл helloworld.php, содержащий строку текста Hello world!);
  •  админка - administrator/components/com_helloworld  (создайте в этой папке файл helloworld.php, содержащий строку текста Hello world admin!).

Чтобы протестировать созданный компонент - наберите в адресной строке браузера:

  • имя сайта/administrator/index.php?option=com_helloworld - доступ к админке компонента;
  • имя сайта/index.php?option=com_helloworld - доступ к фронтенду компонента.

При переходе по вышеприведённым адресам вы получите сообщения об ошибках.                                                    

Не переживайте об этом - это потому, что ваш компонент не зарегистрирован.

Его можно зарегистрировать 2 способами:

  1. Путём внесения вручную записи в таблицу MySQl<префикс БД>_extensions.
  2. Собрав файл установки для компонента.


Сборка установочного пакета

Если вы работали с Joomla! до этого, то могли заметить, что расширения - это архивные файлы. Они вмещают в себя всё необходимое для установки и удаления расширения.

Для создания установочного пакета для своего компонента создайте где-либо директорию, которая содержит следующие файлы и папки:

Эта директория должна обязательно содержать 2 папки и 1 файл:


В каждой директории компонента должен размещаться файл index.html, контент которого - произвольный (можно вообще пустой файл). Он используется из соображений безопасности для предотвращения возможности просмотра содержимого директории на сервере, используя абсолютный URL.

Файл admin/sql/updates/mysql/0.0.1.sql пока что оставьте пустым - этот файл используется для инициализации схемы версий расширения.

Содержимое файла helloworld.xml выглядит следующим образом:

<?xmlversion="1.0"encoding="utf-8"?>

<extensiontype="component"version="2.5.0"method="upgrade">

<name>HelloWorld!</name>

<!-- Эти элементы необязательны и могут иметь какой угодно формат -->

<creationDate>November 2009</creationDate>

<author> Author </author>;

<authorEmail>Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.</authorEmail>

<authorUrl>http://www.example.org</authorUrl>

<copyright>Copyright Info</copyright>

<license>License Info</license>

<!-- Номер версии записывается в таблицу компонента -->

<version>0.0.1</version>

<!-- Описание необязательно и по умолчанию - такое же как и имя <name> -->

<description>Description of the Hello World component ...</description>

       <update><!-- Скрипты исполняются при обновлении -->

               <schemas>

                       <schemapath type="mysql">sql/updates/mysql</schemapath>

               </schemas>

       </update>

      
         <!-- Указывает какие файлы и папки будут скопированы в директорию компонента на фронтенде -->

       <filesfolder="site">

               <filename>index.html</filename>

               <filename>helloworld.php</filename>

       </files>

       <administration>

               <!-- Меню в админ панели -->

               <menu>Hello World!</menu>

               <!-- Administration Main File Copy Section -->

               <!-- Файлы и папки, которые должны быть скопированы в директорию админ части компонента -->

               <filesfolder="admin">        

                       <filename>index.html</filename>

                       <filename>helloworld.php</filename>

                       <folder>sql</folder>

               </files>

       </administration>

</extension>

Теперь переименуйте корневую папку именем com_helloworld и заархивируйте в файл в одном из форматов (zip, tar, tar.gz, bz2). Таким образом, вы получаете установочный файл для компонента. Можете попробовать установить новосозданный компонент, используя установщик в панели управления.


Похожие статьи

Интересные статьи

Самые читаемые статьи



Рекомендуем хостинг

BeGet

 30 дней бесплатно!

Домены на .ru в подарок