Плагины MODX

Плагины позволяют вам вмешиваться и изменять что-либо во время работы движка MODx. Все плагины привязаны к системным событиям MODx. Когда системное событие «срабатывает», все плагины, прикрепленные к этому событию, выполняются.

Системные события

Во время работы MODX выполняются системные события.

Имена системных событий всегда начинаются с "ON" (например OnWebPagePrerender, OnDocFormSave, OnUserFormSave и т.д.). Список событий можно посмотреть здесь

Плагины назначаются (обычно при создании) для «прослушивания» одного или нескольких системных событий. Когда происходит системное событие, выполняется код любых плагинов, связанных с этим событием.

Этот простой плагин, когда он связан с событием OnWebPagePrerender, заменит все вхождения «crap» на «crap2».

$out = &$modx->resource->_output; // получить ссылку на выходные данные ресурса
$out = str_replace('crap', 'crap2',$out);
return; 

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

/* Получаем переменную системного события */
$eventName =  $modx->event->name;

switch ($eventName) {
    case 'OnWebPagePrerender':
       // выполняем этот код
       break;
    case 'OnWebPageInit':
       // выполняем этот код
       break;
}
return;
    
Перевод статьи Боба Рея