Хотів би уточнити як працюють плагіни.

Готові плагіни для Joomla

Хотів би уточнити як працюють плагіни.

Повідомлення bardus » 13 жовтня 2008, 15:40

Виникло таке питання

В джумлі є групи

authentication
content
editors
editors-xtd
search
system
user
xmlrpc

я хоітв би зробити плагін для конкретного компонента
com_phocagallery

Як зрозумів треба зробити групу
phocagallery в плагінах 


In addition to the core groups, we can create plugins that belong to other groups. For
example, if we created a component named Foobar and we wanted to add plugins
speciically for that component we could create a custom plugin group called foobar.

Але не працює.
Питання де іде парсінг виклику плагінів щоб подивится як іде виклик груп?

Рс Або поясніть як  воно працює :)
bardus
Користувач
Користувач
 
Повідомлення: 4
З нами з: 14 серпня 2007, 01:00
Репутація: 0

google adsense
 

Re: Хотів би уточнити як працюють плагіни.

Повідомлення bardus » 29 жовтня 2008, 21:05

Сам жнець сам сівець

Для написання власних плагінів для конретного компонента потрібно.
При проєктуванні компонента встановити місця де будуть відслідковуватись події events

Наприклад я спробував написати
для
com_phocagallery

1 треба ініцілізувати плагін в компоненті
тобто  загрузити слухач
я це зробив в contoller.php це один із перших файлів який оброблюється при звертанні до компонента
хоча в нашому випадку в компоненті  com_phocagallery найперше виклиакається файл
phocagallery.php.
Код: Виділити все
JPluginHelper::importPlugin('phocagallery');


2 Після ініцілізації я ставлю події.
Наприклад завантаження і подальша відправлення на відображення категоріїї картинок
це відбуваеться  в файлі
view.html.php Взагалі такий проміжковий файл що збирає данні з моделі і контролера і відправляє на шаблонізатор. Завжди лежить в підпапках view.
Так от там  я виликаю f,региструю подію

Код: Виділити все
$arguments = array(&$foobarData); // Зверніть увагу на те що данні заганяються в масив.
$result = $mainframe->triggerEvent('onPreparePhocagallery', $arguments);

Місце розташування  на ваш розсуд до виклику

Код: Виділити все
parent::display($tpl);


3 Ось приклад як то робив плгін

Код: Виділити все
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE install SYSTEM
           "http://dev.joomla.org/xml/1.5/plugin-install.dtd">
<install version="1.5" type="plugin" group="phocagallery"> // Зверніть група називається так
само як і компонент. В папці плагін створюється папка phocagallery
    <name>Image description</name>
    <author>Bardus</author>
    <authorEmail>ваша електрона пошта </authorEmail>
    <authorUrl>ваш влсний сайт</authorUrl>
    <creationDate>11.11.2008</creationDate>
    <copyright>Copyright (C) </copyright>
    <license>GNU/GPL</license>
    <version>0.1</version>
    <description>Описание картинок для Phoca Gallery </description>
    <files>
        <filename 
             plugin="descriptionimage">descriptionimage.php</filename>  Саме власне назва плагіна
і назва файла.
    </files>
    <params/>
</install>


Код: Виділити все
class plgPhocagalleryDescriptionImage extends JPlugin
{
 
  function plgPhocagalleryDescriptionImage( &$subject, $params)
  {
     parent::__construct( $subject, $params  );
   
  }
   Звернніть увагу як названий метод.
  function onPreparePhocagallery( &$phoca )
  {
        echo 'Я плагін';
  }
}



Так я мабуть дуже сумбурно і не врахував багато чого..а може, ще не знаю нюансів..
Описав те, що робив, щоб отримати на екрані напис "Я плагін".

Зауважу, що плагін одноразовий тому що ініцілізацію та регитсрацію потрібно вставляти в чужий код ..що дуже погано.
Чесно кажучи  легше написати компонент, чим придумувати ..маленький плагін до чужого компонента :)))))

Дефаульна група плагіні робиться дуже просто. Там тільки треба по шаблону, що лежить в exemples Написати функцію і подивится як написаніінші такі плагіни.
bardus
Користувач
Користувач
 
Повідомлення: 4
З нами з: 14 серпня 2007, 01:00
Репутація: 0

google adsense
 


Повернутись до Плагіни

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 0 гостей

cron