Разработка

Создаём собственный компонент на Joomla

Joomla
Добавление в избранное
Сохранить

Создаем собственный Joomla компонент

Создание компонента на Joomla является достаточно сложной задачей, требующей знаний API Joomla, MVC шаблонов, отладки ошибок PHP и т.д. По этой причине большинство разработчиков сайтов не рассматривают вопрос о создании собственного расширения, а вместо этого ищут подходящее функциональным требованиям расширение на JED, настраивают его и переделывают под свои нужды.

Но сейчас ситуация меняется. Инструменты вроде JFoobar ликвидируют необходимость в глубоких навыках программирования под Joomla путем автоматизации процесса сборки каркаса компонента и, таким образом, позволяя веб-мастерам, не обладающим знаниями в области разработки, получать компоненты с настраиваемыми данными, параметрами и разметкой шаблона.

Эта статья поможет вам научиться разрабатывать собственные компоненты и вы почуствуете силу и мощь фреймворка и, как следствие, начнете создавать высококачественные сайты на Joomla. Мы последовательно разберем следующие этапы:

  • Установка JFoobar
  • Создание своего компонента с помощью JFoobar
  • Проверка результата

 

Установка JFoobar

создать компонент joomla, скачать jFoobar

Для начала давайте скачаем JFoobar с сервиса Github.

создать компонент joomla, Установка jFoobar

Следующим шагом устанавливаем JFoobar как обычное расширение Joomla.

Создание своего компонента с помощью JFoobar

После установки перейдем в меню Компоненты-JFoobar Component Builder в панели администратора. Перед нами предстанет инструкция по дальнейшим действиям.

создать компонент joomla, Установка jFoobar

Процесс создания компонента достаточно прост. Давайте подберем название создаваемому компоненту с учетом множественного и единственного чисел. Добавляем эти значения в ссылку, после чего копируем ее в адресную строку браузера и запускаем выполнение JFoobar.

Другими словами, в панели администрирования мы заходим в компоненты > JFoobars Component Builder, копируем в буфер обмена следующую ссылку:

http://вашсайт.ru/administrator/option=com_jfoobar&singular=cat&plural=cats

  • где singular=cat - cat заменяем на название нашего компонента в единственном числе.
  • где plural=cats - вместо cats название компонента во множественном числе.

Скопировав эту строку и запустив выполнение конструктора, создающего пустой компонент, мы переходим на следующий этап.

Но прежде чем продолжить описание, следует добавить, что мы можем создавать столько компонентов сколько нужно. После того, как необходимые компоненты будут созданы, можно деинсталлировать JFoobar как и любое другое расширение Joomla.

Проверка результата

Итак, что нам делать после того, как искомый компонент создан при помощи JFoobar? К счастью, новый полнофункцинальный компонент уже доступен и JFoobar избавляет нас от рутины и трудоемкости при ручном создании Joomla компонента.

создать компонент joomla

Создана таблица с именем, аналогичным компоненту. Менеджер объектов и категорий, панель инструментов, фильтры и другие необходимые элементы созданы автоматически. Прелестно, не надо тратить время на рутинные операции.

создать компонент joomla

Менеджер объектов тоже создан автоматически, теперь можно создавать и редактировать элементы. В нижней части экрана вы найдете дерево ACL, уже запрограммированное для работы с вашим компонентом.

Уделим особое внимание блокам «Parameter» и «Custom Field» в правой части экрана при создании объекта. Вот где все преимущество такого подхода к разработке. Вы можете настроить ваши поля и параметры и они будут автоматически отображаться в данных областях.

создать компонент joomla

Менеджер объектов уже готов к работе. Весь код, отвечающий за публикацию, состояние, архивацию, удаление, перемещение, копирование, сортировку, отображение и другие действия, подготовлен. Зайдите в раздел «Настройки» на панели инструментов чтобы увидеть, какой функционал уже заложен.

создать компонент joomla

При создании пункта меню вы увидите, что уже существует возможность создания ссылок трех типов. Создайте пункт меню для каждого типа и изучите результат отображения на сайте (предварительно создайте несколько демонстрационных категорий и объектов). При этом ссылки на сайте будут создаваться с учетом готового роутера (отпадает еще одна необходимость изобретать велосипед для получения стандартного SEF). И удивительно – разделение прав доступа в соответствии с ACL тоже работает!

Пользовательский компонент

Итак, нам нужно сделать компонент для ввода и отображения необходимых данных. С использованием нашего подхода, внедряя произвольные поля, параметры и макеты отображения, мы можем использовать получившийся компонент для самых сложный целей.

Административная панель

Административная часть движка Joomla использует иконки изображений для пункта меню и заголовка компонента. Эти изображения можно модифицировать по собственному желанию в каталоге media/NAMEOFYOURCOMPONENT. При этом вам, возможно, придется изменять и оба файла изображений и стили CSS.

Таблицы компонента

Как мы уже говорили, JFoobar автоматически создал таблицу в базе данных с именем, соответствующим названию компонента. Таблица включает в себя обязательный набор полей, как то: идентификатор, связь с категорией, состояние, даты создания-публикации и прочие.

Помимо этого два поля используются для хранения настроек произвольных полей и параметров. Вам не потребуется вносить изменения в структуру таблицы либо в код модели для сохранения и отображения этой информации. Достаточно будет только внести изменения в один XML файл для настройки данных.

Произвольные поля

Чтобы создавать собственные произвольные поля необходимо редактировать XML файл YOURCOMPONENTNAME.xml, расположенные в каталоге /components/com_YOURCOMPONENTNAME/models/forms/. После внесения изменений скопируйте этот файл в каталог components/com_YOURCOMPONENTNAME/models/forms.

создать компонент joomla

Откройте этот файл и найдите раздел пользовательских полей (custom_fields). Все поля в этом блоке относятся к вашим пользовательским. Можете спокойно удалять, добавлять их по необходимости.

Хоть код XML иногда и выглядит пугающе, но вносить требуемые изменения не так страшно, как может показаться. На следующем примере вы увидите, что включает в себя поле: имя поля используемое для отображения в форме и вывод поля в макете..

Создаём собственный компонент Joomla

В данном примере поле имеет тип media. Это означает, что в форме мы увидим поле, содержащие имя файла и кнопку, открывающую диалоговое окно выбора файла.

Существует более 40 типов полей в Joomla, подробную информацию можно получить здесь - Joomla Documentation Wiki. Вы можете скопировать примеры из WIKI в ваш XML файл и проследить за изменениями. Кроме этого вы можете создавать собственные типы полей.

Языковой файл

Наименования системных объектов, полей и других атрибутов заданы в виде языковых строк и хранятся в языковом файле по адресу administrator/components/com_YOURCOMPONENTNAME/language/xx-XX/. При желании и необходимости вы можете вносить в него изменения

Параметры

При использовании параметров компонента вы можете определить, какие данные и каким образом будут показаны в ваших макетах (шаблонах). Если создавать одинаковые параметры в компоненте и в объекте меню, тогда глобальные параметры по умолчанию будут доступны. Возможно, вы поймете, что нуждаетесь в небольшом количестве параметров, так как можете настроить компонент в строгом соответствии с потребностями.

Для создания параметра необходимо изменять тот же XML файл, в котором определены пользовательские поля. Откройте файл и найдите раздел настроек (parameters). Создаём собственный компонент Joomla

Для корректировки настроек используйте тот же подход, что и при создании пользовательских полей. Вкладка с настройками в административной панели сразу отобразит все изменения.

Если же вы хотите изменить параметры самого компонента, то необходимо вносить изменения в файл config.xml в корне папки компонента в каталоге administrator.

Для изменения параметров пункта меню вносите изменения в файл tmpl/layout.xml в каталоге компонента сайта.

Настройка макетов

создать компонент joomla

После создания всех пользовательских полей для хранения данных и настрое последним шагом является настройка макетов отображения.

Если вы работали с макетами (шаблонами) раньше, то следующие действия будут вам знакомы. Достаточно изучить структуру расположения файлов макета компонента и изменять эти файлы по необходимости.

В файлах шаблонов есть закомментированные строки кода, которые помогут вам узнать названия доступных полей. Кроме этого можно найти и элементы цикла для вывода информации. Так что самая главная ваша задача – сосредоточится на том html коде, который будет отображать информацию. Чем больше экспериментов, чем больше испорченных файлов и испорченных массивов – тем быстрей у вас получится действительно качественный продукт, в точности отвечающий вашим требованиям.

Оригинальная статья: Amy Stephen
Beliyadm
Один из первых участников русского сообщества Joomla, программист и волшебник.

Подпишитесь на рассылку новостей CMScafe