Плагин может быть совсем простой — например, задать значение перед сохранением поля в базу данных Joomla. Или наоборот - плагин может быть сложным, например, чтобы преобразовать URL-адреса в документе в другой формат. Плагины можно использовать даже для переопределения основные классов. Плагины привязаны к событиям. Чтобы полностью понять, плагины, мы должны понимать предопределение события в Joomla, а также научиться создавать наши собственные события.


Как работают плагины?

Плагины работают в три этапа, а именно:

  • — Один или несколько файлов плагина включены в текущем сценарии, как правило, с методом JPluginHelper::importPlugin().
  • — Событие происходит, как правило, с методом $dispatcher- >trigger() (где $dispatcher - это объект JDispatcher). Каждое событие называется соответственно - onBeforeInitialise или onContentBeforeSave.
  • — Код обработки событий ищет любые подключенные плагины, которые в настоящее загружалась и у которых есть метод, который соответствует имени события. Если какие-либо методы соответствуют - то они выполняются.

Если при загрузке страницы на front-end части нашего сайта, мы вызываем метод render() класса JSite (определенный в includes/application.php) - ближе к концу этого метода, мы видим следующую строку кода:

JPluginHelper::importPlugin('system');

Эти плагины являются объявлением классов, мы не выполнили какой-либо код еще. После в методе render() класса JSite мы вызываем метод onAfter-Render():

// Trigger the onAfterRender event.
$this- >triggerEvent('onAfterRender');

Для чего служит этот код?

Теперь это выглядит словно код SEF плагина. Код для первой части файла sef.php:

// no direct access
defined ('_JEXEC') or die;
/**
* Joomla! SEF Plugin
*
* @package Joomla
* @subpackage System
*/
class plgSystemSef extends JPlugin
{
/**
* Converting the site URL to fit to the HTTP request
*/
public function onAfterRender()
{

Рейтинг:  5 / 5