Сам жнець сам сівець
Для написання власних плагінів для конретного компонента потрібно.
При проєктуванні компонента встановити місця де будуть відслідковуватись події 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 Написати функцію і подивится як написаніінші такі плагіни.