1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Помощь Создание плагина - Выбор типа

Тема в разделе "Joomla", создана пользователем dirdir, 27 авг 2014.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Модераторы: arman29, DMS, Genk0
  1. dirdir

    dirdir Постоялец

    Регистр.:
    19 мар 2012
    Сообщения:
    85
    Симпатии:
    11
    В общем, я не до конца понял как правильно выбирать тип создаваемого расширения.

    Чем с технической точки зрения будет отличаться плагин System от Content?

    По сути, создавая плагин, в классе могу определяться любые методы, как относящиеся к контенту, так и к системным функциям?
    В свою очередь эти функции(методы) будут вызваны при срабатывании триггеров на эти события.



    Так что 2 кода будут работать одинаково???

    1 Плагин Content
    PHP:
    class plgContentMysPlugin extends JPlugin {

    function 
    onBeforeCompileHead()
       {
      }

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

    2 Плагин System
    PHP:
    class plgSystemMysPlugin extends JPlugin {

    function 
    onBeforeCompileHead()
       {
      }

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

    разница будет только
    1) В какой папке будет находится плагин.
    2) Очерёдность его обработки. Плагины системы - первые, плагины, контента потом, и в каких-то глубинных свойствах джумалы.

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

    Есть ёщё что-то что надо знать?
     
  2. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.627
    Симпатии:
    1.330
    В первую очередь нужно почитать доки на оф сайте
    Так же, если плагин делается для "масс", а не только для себя - то нужно быть человеком и делать правильно.
    В сети ТУЧА манов как делать расширения.
    http://docs.joomla.org/Main_Page
    http://joomlablog.ru/dokumentatsiya
     
  3. dirdir

    dirdir Постоялец

    Регистр.:
    19 мар 2012
    Сообщения:
    85
    Симпатии:
    11
    В доках об этом написано не лучше чем в книге Марка Декстера.
    Примерно тоже что я выше написал. Я имею ввиду выбор типа плагина. Основные технологические отличия одних плагинов от других. Так как кроме порядка вызова плагинов, и реализации в самих функциях (триггерах и обработчиках) в платформе джумалы не заметил. Один и тот же плагин с одним и тем же набором функций отлично работает при разных его типах.


    Если есть конкретное место с описанием - просьба дать ссылку (на конкретный раздел)
     
    Последнее редактирование: 30 авг 2014
  4. kolio

    kolio Постоялец

    Регистр.:
    21 фев 2012
    Сообщения:
    101
    Симпатии:
    38
    если плагин в группе content, то он дергается не всегда, а только компонентами которые занимаются выводом контента
    в некоторых модулях и компонентах можно отключить обработку плагинов этого типа - если это ненужно. Но не все это умеют и вообще не парятся особо по этому поводу

    например K2 дергает группу content и потом свою группу k2 плагинов при выводе статей и в коде это продублированно друг за дружкой
    а могли бы и не дергать эти группы плагинов (есть настройка в K2 не дергать свои плагины K2 при выводе контента). Всё исходит от того для чего этот компонент или модуль

    А вообще они не зря поделены на группы
    Единственное чего не сделали - это прерывание выполнения остальных плагинов, если текущий допустим решил, что остальные уже ненужны (это было бы полезно как минимум для плагина кеша, чтобы он был первый и отдавал кеш, и остальные плагины группы system не выполнялись)
     
    dirdir и Genk0 нравится это.