•  
  •  
  •  
  •  
1 1 1 1 1 1 1 1 1 1 Рейтинг 5.00 (3 Голосов)
Как создать плагин на Joomla 2.5 - 3.x - 5.0 out of 5 based on 3 votes

Разработка компонента для joomla 3 предполагает процесс создания плагинов. Он во многом схож с созданием модулей для joomla, и не отличается особой сложностью. Но не следует забывать, что плагины могут обладать функционалом, доступным целому компоненту, и способны решать различные задачи. Их создание должно удовлетворять ваши нужды. Но следует думать о том, что статья будет сложной.

Разработка компонентов для joomla 3 позволяет показать процесс создания плагинов для удовлетворения контента (разработка социальных закладок на примере своего плагина). Мы займемся рассмотрением многих особенностей плагинов, что обеспечит вам надежную базу для расширения собственного плагина, чтобы он имел максимальный функционал.

Начиная создание плагина, когда ведется разработка компонентов joomla 3, нам часто необходимо перерывать горы материала в поисках полезных статей и заметок, объясняющих то, как создать свой плагин. Но даже при нахождении подходящего текста мы сталкиваемся с огромным количеством вопросов, на которые не можем дать ответы. Следует учитывать тот факт, что начинающим разработчикам приходится самостоятельно на практике изучать определенные вопросы из-за отсутствия правильного описания их работы. Такие моменты требуют разбора родных плагинов либо дописывания своего кода, чтобы иметь понимание того, как создать плагин на  Joomla 2.5 - 3.x. Если в процессе изучения материала некоторые моменты останутся неясны для вас, то не стоит отчаиваться, главным является начало.

Теоретическая часть

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

1. Плагин выступает в качестве дополнительного расширения для компонентов. Он отличается автоматическим исполнением совместно с компонентом. Подобное расширение может вызываться во время работы программы, или обеспечивать задание действий для определённого фрагмента кода. К примеру, на замену текста при  обнаружении соответствующего фрагмента {myplagin}, либо совершение действий над изображением, формой, видеозаписью и прочее.

2. Категории плагинов отличаются разнообразием. Могут использоваться с контентом, для редактора, расширения и прочее.

Аутентификация (Authentication)

Joomla обеспечивает различные методы прохождения авторизации: GMail, Joomla!, LDAP, OpenID. К тому же, могут быть созданы собственные способы, которые обеспечат авторизацию пользователей. Данная группа использует единственный метод - onUserAuthenticate В плагин следует установить значение следующих свойств:

Свойство Описание birthdate Дата рождения пользователя country Страна пользователя email E-mail адрес пользователя error_message Сообщение об ошибке или отмена авторизации fullname ФИО gender Пол language Язык postcode Почтовый индекс status Статус авторизации timezone Часовой пояс username Логин

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

Константа Описание JAUTHENTICATE_STATUS_CANCEL Авторизация отменена JAUTHENTICATE_STATUS_FAILURE Ошибка авторизации JAUTHENTICATE_STATUS_SUCCESS Авторизация прошла успешно

Автоматически, в Joomla опубликовывается единственный плагин авторизации - Joomla!. Но вам доступна публикация LDAP, GMAIL и OpenId. onAuthenticate

«Описание» включается в момент авторизации пользователя на ресурсе. Параметры username Логин password Пароль response Ссылка на объект JAuthenticationResponse

3. Captcha (Капча)

С помощью Captcha обеспечивается защита от спама. Пользователь вынужден заняться вводом некоторого текста, в основании которого лежит искаженное изображение. Капчи используются в Joomla после прихода на версию 2.5. Она реализуется тремя возможными событиями: onInit, onDisplay и onCheckAnswer.

4. Content

Плагины, входящие в группу content, обеспечивают обработку элементов контента перед выводом его на монитор. Самым распространенным событием является onPrepareContent.

Существуют определенные отличия в таких обработчиках:

Описание полного списка подобных событий размещено на официальном сайте joomla.

5. За ними размещаются плагины, которые входят в группы Contacts, Editors, Editors-XTD, Extension, Quickicon, Search, System, User. Заниматься описанием всех групп в данном материале не имеет смысла, так как каждая из них нуждается в отдельной статье.

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

Процесс создания плагинов

Вначале следует определиться с тем, для чего создается плагин. Данная статья рассматривает создание для контента - joomla Content. Необходимо произвести создание файлов:

  1. socialjungle.xml
  2. socialjungle.php
  3. socialjungle/twitter-24.png
  4. language/ru-RU/ru-RU.plg_content_socialjungle.ini

В итоге у вас должны получится четыре файла.

Дальше переходим к заполнению файл socialjungle.xml и задаем определенные параметры. Для этого можно использовать административную часть.



socialjungle 2013-03-26 Ваня mail@mail.ru

http://joomla-umnik.ru

Copyright (C) 2013 Social jungle

http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL

1.0

Плагин Social jungle это плагин социальных закладок для joomla.

socialjungle.php
socialjungle



language/ru-RU/ru-RU.plg_content_socialjungle.ini





PLG_EXTENSION_SOCIALJUNGLE_TWITTER_OF

PLG_EXTENSION_SOCIALJUNGLE_TWITTER_ON

PLG_EXTENSION_SOCIALJUNGLE_TEXTALIGN_LEFT

PLG_EXTENSION_SOCIALJUNGLE_TEXTALIGN_CENTER

PLG_EXTENSION_SOCIALJUNGLE_TEXTALIGN_RIGHT

PLG_EXTENSION_SOCIALJUNGLE_POSITION_ONE

PLG_EXTENSION_SOCIALJUNGLE_POSITION_TWO

PLG_EXTENSION_SOCIALJUNGLE_POSITION_THREE



Задание имен для этих полей разрешается любое. Они расположены в таблице бд ваш префикс_extensions. Здесь же необходимо задать описание, подсказку и параметры. Мы обладаем лишь тремя параметрами - кнопкой социальной закладки, выбором позиции (влево, вправо, по центру) и положением на странице.

Код плагина socialjungle.php

Код плагина размещается лишь в 1 файле. Большее количество файлов может использоваться лишь при создании библиотек js, jquery. В joomla 2.5 используется if ($menu->getActive() == $menu->getDefault()) { } если joomla 3.0 то вместо == используйте !=

 

loadLanguage();

           }

 

/*

А это непосредственно работа самого плагина! Мы описываем функцию которую впоследствии вызовем в нужном нам месте.

*/

//Вывод в начале статьи, функции как читали в статье могут быть своими так и

//родными событиями onContentAfterDelete, onContentAfterDisplay, onContentAfterSave и.т.д

//В данном случае мы выводим в начале статьи наш плагин.

          public function onContentBeforeDisplay($context, &$row, &$params, $page=0)

          {

//Выводим перменную которая получит урл и title нашей страницы.

$document = JFactory::getDocument();

//Список параметров

$twitter=$this->params->def('twitter', '');

//Параметр позиция кнопок, посередине, влево, вправо

$textalign=$this->params->def('textalign', '');

//Позиция нашего плагина вверху или внизу страницы, или и там и там.

 

//Это получение самих параметров

$pisition=$this->params->def('pisition', '');

//Проверяем чему равно значение, если 0 то выводим вначале, если 2 то так же выводим внизу а скрипт ниже имеет такую же структуру

//За счёт этого плагин можно вывести в 2 местах одновременно.

if($pisition==0 or $pisition==2){

//Запрет вывода плагина на главной странице

$app = JFactory::getApplication();

$menu = $app->getMenu();

if ($menu->getActive() == $menu->getDefault()) { }

 

else {

//Запрет вывода плагина в блоге категорий, это нужно для того что бы плагин не дублировался

if(JRequest::getVar('view') == ('category')) { }

else {

//Декодируем ссылку

$uri = &JFactory::getURI();

urlencode($uri);

$a .= '

';

if ($twitter==1)

{ $a .= "Twitter"; }

 

$a .= '';

//Вернуть значение, если использовать echo то может получиться так что значение выведется раньше.

return $a;

 

}}}}

 

//Вывод в конце статьи

           public function onContentAfterDisplay($context, &$row, &$params, $page=0)

          {

$document = JFactory::getDocument();

//Список параметров

$twitter=$this->params->def('twitter', '');

$textalign=$this->params->def('textalign', '');

$pisition=$this->params->def('pisition', '');

 

if($pisition==1 or $pisition==2){

$app = JFactory::getApplication();

$menu = $app->getMenu();

if ($menu->getActive() == $menu->getDefault()) {}

 

else{

 

if(JRequest::getVar('view') == ('category')) { }

else {

//Декодируем ссылку

$uri = &JFactory::getURI();

urlencode($uri);

 

$a .= '

';

 

if ($twitter==1) {

$a .= "Twitter"; }

 

$a .= '';

return $a;

}}}}

 

 

}

 

Как можно убедиться, код отличается простотой. Но мы занимаемся рассмотрением базового примера, но плагин может обладать сложной структурой, которая включает различные параметры, а они отличаются разнообразием.

Языковой файл ru-RU.plg_content_socialjungle.ini

Языковому файлу ничем свойственна схожесть с языковым файлом модуля, компонента, либо шаблона.

PLG_EXTENSION_SOCIALJUNGLE_TWITTER_ON="Опубликовано"

PLG_EXTENSION_SOCIALJUNGLE_TWITTER_OF="Не опубликовано"

PLG_EXTENSION_SOCIALJUNGLE_TWITTER="Twitter"

PLG_EXTENSION_SOCIALJUNGLE_TEXTALIGN="Расположение кнопок"

PLG_EXTENSION_SOCIALJUNGLE_TEXTALIGN_LEFT="Слева"

PLG_EXTENSION_SOCIALJUNGLE_TEXTALIGN_CENTER="Центр"

PLG_EXTENSION_SOCIALJUNGLE_TEXTALIGN_RIGHT="Справа"

PLG_EXTENSION_SOCIALJUNGLE_POSITION="Позиция"

PLG_EXTENSION_SOCIALJUNGLE_POSITION_ONE="В начале статьи"

PLG_EXTENSION_SOCIALJUNGLE_POSITION_TWO="В конце статьи"

PLG_EXTENSION_SOCIALJUNGLE_POSITION_THREE="В начале и в конце"

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

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

Портфолио
Память о Вас и Ваших близких на многие поколения
Подробнее
Прокат металла
Подробнее
Интернет-магазин кожи и меха
Подробнее
100% оригинальная парфюмерия в Москве
Подробнее
Вьетнамский ресторан премиум класса
Подробнее
Внедрение информационных систем
Подробнее
Организация международных конференций
Подробнее
Производство молочной продукции
Подробнее
Спортивный сайт
Подробнее
Интернет-магазин мебели и аксессуаров
Подробнее
Интернет-магазин электротранспорта
Подробнее
Сайт института актуальной экономики
Подробнее
Наши клиенты
Парк развлечений Boom Zoom
Алгор
Норбит
Molga Consulting
Metrotile
Нетология
Monqi
Премиум Пак
Aasha Herbals
Аджва
Салон красоты Сударушка
Пава
ТЦ "Панфиловский"
Фитнес Лаборатория
Система Главбух
Vanguard
GoAsia
ТЦ «Солнечный ветер»
Teledoc
Tchernov Cable
Отзывы
Благодарю компанию web-now.pro за помощь в разработке и запуске проекта POLITSECRETS.RU. Перед нами стояла задача – внедрить проект в сжатые сроки и по оптимальной цене. Порадовало то, что мне подроб...
Вера БлашенковаСекреты успешных выборов, Москва... апр.2016
Мне очень понравился подход с которым нас встретили "Ваша задача заниматься бизнесом, наша - сделать Вам представительство в сети". После этого ребята разработали полное тз на проект, мы внесли пожела...
МаксимIT-TASK, Москва... янв.2016
Работа проделана хорошо! Дизайнер и менеджер на отлично. Надеюсь на сотрудничество в дальнейшем. Есть шероховатости в деталях по задачам, но приятно сказывается оперативность и желание исправить, внес...
БруноСоциальная сеть След Жизни, Москва... янв.2016
Работой остались очень довольны. К работе подходят ответственно, аккуратно, открыто. Проект был сдан чуть раньше срока, по ходу работы возникали изменения, все они принимались безоговорочно, работа вы...
ЕвгенийМагазин текстиля, Москва... дек.2015
Сотрудничаем с 2007 года и сделали не один проект. Самое главное - команда умеет отстаивать своё мнение и постоянно развивается.
МарияМеждународные конференции, Москва... дек.2015
Спасибо всему коллективу компании! Разработали красивый и что самое главной рабочий интернет магазин! Реклама настроена и запущена, продажи идут, бизнес развивается! Нам постоянно подсказывают о новых...
ВадимИнтернет магазин Aromatic.pro, Москва... сен.2015
Большое спасибо команде за оперативность, качественные работы, отличный креатив и привлекательные цены!
Виктория, ОАО "Фармстандарт... июль.2015
Здравствуйте уважаемые партнеры! С наступающим Новым Годом! Желаю Вам дальнейшего процветания и успехов в Вашей благородной работе! С вами приятно сотрудничать! Очень благодарен Вам за своевременное о...
Сергей ЮрченкоКинотруд, Москва... дек.2014
Благодарим команду Brand Now и лично Дениса Логинова за оригинальное видение,разнообразие идей, четкость взаимодействия и безукоризненное соблюдение сроков выполнения проекта! Планируем продолжить сот...
ТатьянаBizness Linkerz... июль.2014
Компания КУН выражает благодарность за сотрудничество: непростая задача была выполнена в требуемые сроки и полностью удовлетворила заявленному ТЗ. Приятно удивила готовность Генерального директора нач...
Мария, Компания КУНhttp://www.kuhn.com/... апр.2014
Все отзывы
Добавить отзыв