Clone wiki

plugsystem / События

В библиотеке предусмотрена система событий.

По умолчанию есть следующее событие:

before_return оно вызывается перед выводом страницы, в любом из менеджеров.

Для того чтобы получить текущий html достаточно вызвать \plugsystem\GlobalParams::get("result_render")

Если вам нужно внести коррективы то вы можете просто обновить это значение

\plugsystem\GlobalParams::get("result_render",$newval);

Как создать событие?

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

\plugsystem\models\EventModel::run("name_of_event", array("one","two","second"));

Как подписаться на событие.

У каждого плагина есть файл config.php,чтобы подписаться на события в него нужно внести некоторые коррективы а именно:

<?php
namespace plugins\nameplugin;

use plugsystem\models\AbstractConfig;

class config extends AbstractConfig
{
    public function __construct()
    {
        parent::__construct("nameplugin", "nameplugin", true);
        $this->addEvent('\\plugins\\nameplugin\\models\\ModelTest', "name_of_event", "testEvent", "static");
        $this->addEvent('\\plugins\\nameplugin\\models\\ModelTest', "name_of_event", "publicEvent", "public");

    }
}

\plugin\nameplugin\models\ModelTest

<?php
namespace plugins\nameplugin\models;



class ModelTest 
{
   static function testEvent($one,$two,$three){
   echo $one;
echo $two;
echo $three;
}
   public  function publicEvent($one,$two,$three){
   echo $one;
echo $two;
echo $three;
}
}

Это был базовый пример организации системы событий в системе

Updated