MODX. Плагины и события
Отредактировано: 15 Декабря 2019
Страницы генерируемые системой MODX рендерятся поэтапно, и каждый этап отделяется каким-либо событием. Когда подходит очередь определенного события, срабатывают все соответствующие плагины, привязанные к нему.
Плагины — это php код который подключается после того как происходит какое-либо системное событие: инициализация MODX, рендер или сохранение ресурса, очистка кэша и т.п. За каждым событием может быть закреплено неопределённое количество плагинов, приоритет запуска которых настраивается.
Что же дают плагины?
- Умея использовать плагины не придется изменять отлаженный код движка.
- Написанное решение можно кидать из проекта в проект и делиться им с сообществом.
- Увеличенную гибкость решений при работе с MODX.
Будьте внимательны, неправильное указание пути, или другая опечатка в коде, может привести к 500 ошибке при попытке попасть в административную панель, которую можно исправить только c наличием доступа к SQL базе и FTP.
Официальное описание плагинов.
Если подключение плагина в MODX вызвало 500 ошибку, надо исправить плагин через внешнюю среду разработки, либо отключить / удалить плагин через phpmyadmin в таблице prefix_site_plugins, затем переименовать / удалить папку /core/chache.
Если вам нужно знать, какое событие вызвало ваш плагин (скажем, для плагина, который прослушивает более одного события), вы можете получить доступ к имени события следующим образом:
$eventName = $modx->event->name;
Список событий MODX
- core/model/modx/processors/system/clearcache.class.php (71)
- manager/controllers/default/system/refresh_site.php (11)
Запускается перед обновлением кэша.
- core/model/modx/processors/element/chunk/remove.class.php (16)
- Параметры
- chunk (ссылка на объект modChunk)
- id (id чанка)
Запускается перед удалением чанка.
- core/model/modx/processors/element/chunk/update.class.php (23)
- core/model/modx/processors/element/chunk/create.class.php (22)
- Параметры
- mode (либо новый либо обновить, определение)
- chunk (ссылка на объект modChunk)
- id (id чанка)
Запускается после отправки формы, но перед тем как сохранить чанк.
- core/model/modx/processors/resource/delete.class.php (169)
- Параметры
- resource (ссылка на объект modResource)
- id (id ресурса)
- children (массив id_шников детей которые будут тоже удалены)
Запускается перед удалением ресурса.
Такой плагин выведет сообщение о том, что нельзя удалять определенный ресурс, и в логи добавит запись:
- core/model/modx/processors/resource/create.class.php (54)
- core/model/modx/processors/resource/update.class.php (55)
- Параметры
- mode (либо новый либо обновить, определение)
- id (id ресурса, для новых будет 0)
- resource (ссылка на объект modResource)
Запускается перед сохранением ресурса.
Важно! Перед использование этого события нужно знать.
- Изменение или установка значения какого-либо ТВ лучше сделать с помощью OnDocFormSave. Процесс сохранения ТВ во время onBeforeDocFormSave сложнее из-за рендера ТВ значений.
- Передавая сообщения в $modx->event->output() пользователю будет отображаться модальное окно. Делая это страница не будет сохранятся.
- При использовании $modx->event->output() запрещается использовать html теги, только текст.
- При установке значение какого либо поля с помощью $resource->set, не нужно вызывать $resource->save()
- core/model/modx/processors/security/logout.class.php (36)
- Параметры
- user (ссылка на объект modUser. Который прошел по ссылке)
- loginContext (ключ контекста из которого выходят)
- addContexts (дополнительные контексты, в которых выход также происходит.)
Добавлено в версии 2.7.0. Даёт возможность проверить списки зарегистрированных скриптов и стилей, например, чтобы не дублировать их. Но для полноценной работы в этом режиме необходимо все скрипты и стили регистрировать через соответствующие методы, а не просто вставлять в разметку.
- core/model/modx/modx.class.php (2590)
- Параметры
- К ресурсу можно обратится $modx->resource
Запускается после того как ресурс загружен но еще не закэшировался. Если ресурс не кэшируемый, то это событие не сработает.
- core/model/modx/processors/security/logout.class.php (36)
- Параметры
- user (ссылка на объект modUser. Который прошел по ссылке)
- loginContext (ключ контекста из которого выходят)
- addContexts (дополнительные контексты, в которых выход также происходит.)
Запускается перед тем как пользователь разлогиниться.
- core/model/modx/modcachemanager.class.php (597, 757)
- Параметры
- results (результат)
- paths (массив путей, которые должны были быть очищены)
- options (массив параметров очистки)
Запускается после того как кэш очищен.
- core/model/modx/processors/element/chunk/remove.class.php (17)
- Параметры
- chunk (ссылка на объект modChunk)
- id (id чанка)
Запускается после того как чанк удален.
- manager/controllers/default/element/chunk/create.class.php (120)
- manager/controllers/default/element/chunk/update.class.php (133)
- Параметры
- mode (либо новый либо обновить, определение)
- id (id чанка. Будет 0 для новых чанков)
- chunk (ссылка на объект modChunk. Будет NULL в новых чанках)
Запускается до изменения чанка, но JS подгружается. Можно использовать для визуализации пользовательских JavaScript в mgr.
- manager/controllers/default/element/chunk/create.class.php (103)
- manager/controllers/default/element/chunk/update.class.php (167)
- Параметры
- mode (либо новый либо обновить, определение)
- id (id чанка. Будет 0 для новых чанков)
- chunk (ссылка на объект modChunk. Будет NULL в новых чанках)
Запускается во время рендеринга. Можно впихнуть HTML прямиком в форму.
- core/model/modx/processors/element/chunk/create.class.php (24)
- core/model/modx/processors/element/chunk/update.class.php (24)
- Параметры
- mode (либо новый либо обновить, определение)
- id (id чанка. Будет 0 для новых чанков)
- chunk (ссылка на объект modChunk. Будет NULL в новых чанках)
Запускается после сохранения.
- core/model/modx/processors/resource/delete.class.php (210)
- Параметры
- resource (Ссылка на объект modResource)
- id (id ресурса)
- children (массив id_шников детей которые тоже удалены)
Запускается после удаления ресурса.
- manager/controllers/default/resource/resource.class.php (160)
- Параметры
- mode (либо новый либо обновить, определение)
- resource (ссылка на объект modResource. Будет NULL для новых ресурсов)
- id (идентификатор ресурса. Будет 0 для новых ресурсов)
Запускается перед тем как форма редактирования загрузится.
- manager/controllers/default/resource/resource.class.php (174)
- manager/controllers/default/resource/create.class.php (34)
- manager/controllers/default/resource/update.class.php (39)
- manager/controllers/default/resource/symlink/create.class.php (23)
- manager/controllers/default/resource/symlink/update.class.php (24)
- manager/controllers/default/resource/weblink/create.class.php (23)
- manager/controllers/default/resource/weblink/update.class.php (24)
- manager/controllers/default/resource/staticresource/create.class.php (23)
- manager/controllers/default/resource/staticresource/update.class.php (23)
- Параметры
- mode (либо новый либо обновить, определение)
- resource (ссылка на объект modResource. В версии 2.4 будет пустой объект, в более новых Будет NULL для новых ресурсов)
- id (идентификатор ресурса. Будет 0 для новых ресурсов)
Запускается в форме редактирования диспетчера. Удобно для вставки HTML в формах и 2.4+ для установки значений по умолчанию на новые ресурсы
В версии 2.4.0+ можно устанавливать значения для полей:
- pagetitle
- longtitle
- description
- introtext
- content
- link_attributes
- alias
- menutitle
Рекомендуется для установки на новые ресурсы, для существующих значения будут перезаписаны.
- core/model/modx/processors/resource/update.class.php (56)
- core/model/modx/processors/resource/create.class.php (589)
- Параметры
- mode (либо новый либо обновить, определение)
- resource (ссылка на объект modResource)
- id (id ресурса. У новых тоже есть)
Запускается после того как ресурс сохранен.
Важно! Перед использование этого события нужно знать.
- Если нужно изменить ТВ, то лучше изменить их тут, а не через OnBeforeDocFormSave.
- В отличие от OnBeforeDocFormSave, это событие не поддерживает $modx->event->output() метод.
- Сохранение происходит автоматически. Не нужно вызывать $resource->save()
- core/model/modx/processors/resource/publish.class.php (108)
- Параметры
- id (id опубликованного ресурса)
- resource (ссылка на объект modResource который публикуется)
Запускается после того как ресурс опубликован через контекстное меню документа в дереве ресурсов.
Важно! Перед использование этого события нужно знать.
- Событие срабатывает только при публикации ресурса через контекстное меню документа в дереве ресурсов. Если вы поставите галочку опубликован при редактировании документа на странице самого документа, ничего не произойдет.
- core/model/modx/processors/resource/unpublish.class.php (92)
- Параметры
- id (id ресурса снятого с публикации)
- resource (ссылка на объект modResource который снимается с публикации)
Запускается после того как ресурс снят с публикации через контекстное меню документа в дереве ресурсов.
Важно! Перед использование этого события нужно знать.
- Событие срабатывает только при снятии публикации ресурса через контекстное меню документа в дереве ресурсов. Если вы уберёте галочку опубликован при редактировании документа на странице самого документа, ничего не произойдет.
- core/model/modx/modrequest.class.php (270)
Запускается при загрузке ресурса из кэша. В MODX 2.3+ для доступа к свойствам ресурса можно использовать объект Event.
$modx->event->params['resource']->_content = 'Новый контент'; // Заменить содержание страницы
$modx->event->params['resource']->pagetitle = 'Новый заголовок'; // Изменить заголовок страницы
- core/model/modx/modrequest.class.php (132)
- Параметры
- К ресурсу можно обратится $modx->resource
Запускается после того как ресурс загружен, но перед тем как будут обработаны все теги. После отработки этого события, ресурс доступен в плагинах через $modx->resource, и сформированные данные можно изменять. Сообщения, которые возвращают плагины привязанные к этому событию, будут записаны в журнал ошибок MODX.
// Сделать ресурс некешируемым
$modx->resource->set('cacheable', 0);
// Или назначить ему другой шаблон
$modx->resource->set('template', 6);
- core/model/modx/processors/security/login.class.php (299)
- Параметры
- user (ссылка на объект modUser)
- attributes
- rememberme (запомнить пароль пользователя)
- lifetime (время жизни сессии cookie для входа)
- loginContext (ключ контекста в котором происходит вход)
- addContexts (дополнительные контексты в которых осуществляется вход)
Запускается каждый раз, когда пользователь успешно входит в манагере после успешного выполнения любой операции проверки. Событие не влияет на процесс авторизации
- core/model/modx/processors/security/logout.class.php (59)
- Параметры
- user (ссылка на объект modUser, который вышел)
- loginContext (ключ контекста откуда вышел)
- addContexts (дополнительные контексты в которых осуществляется выход)
Запускается каждый раз, когда пользователь выходит из контекста. Сессия при этом удаляется.
- core/model/modx/processors/system/clearcache.class.php (23)
- manager/controllers/default/system/refresh_site.php (17)
- Параметры
- results (массив результатов)
- partitions (массив результатов очистки)
Запускается каждый раз, когда кэш для всего сайта очищен.
- core/model/modx/moduser.class.php (301)
- Параметры
- user (Ссылка на объект modUser)
- newpassword (новый пароль)
- oldpassword (старый пароль)
Запускается каждый раз, когда пользователь меняет пароль.
- core/model/modx/modmanagercontroller.class.php (147)
- Параметры
- controller (экземпляр контроллера на текущей странице менеджера)
Запускается в контроллере менеджера, перед оформлением контента.
- core/model/modx/modtemplatevar.class.php (75)
- Параметры
- mode (либо новый либо обновить, определение)
- templateVar (экземпляр класса modTemplateVar)
- cacheFlag (должно ли кэшироваться, по умолчанию $cacheFlag = null)
Загружается перед сохранением переменной шаблона в базе.
- core/model/modx/modtemplatevar.class.php (85)
- Параметры
- mode (либо новый либо обновить, определение)
- templateVar (экземпляр класса modTemplateVar)
- cacheFlag (должно ли кэшироваться, по умолчанию $cacheFlag = null)
Загружается сразу после успешного сохранения шаблона переменной в базе.
- core/model/modx/modtemplatevar.class.php (105)
- Параметры
- templateVar (экземпляр класса modTemplateVar)
- cacheFlag (должно ли кэшироваться, по умолчанию $cacheFlag = true)
Загружается прямо перед удалением переменной шаблона.
- core/model/modx/modtemplatevar.class.php (114)
- Параметры
- templateVar (экземпляр класса modTemplateVar)
- cacheFlag (должно ли кэшироваться, по умолчанию $cacheFlag = true)
Загружается сразу после удаления переменной шаблона.
- core/model/modx/processors/resource/emptyrecyclebin.class.php (29)
- Параметры
- ids (массив id_шников ресурсов, которые будут навсегда удалены)
- resources (еще один массив сданными, на сколько я понял, там вообще все, что удалено, что задействовано. При вызове $resources "Журнал ошибок" сразу растолстеет на несколько мегабайт)
Загружается перед тем как корзина очистится.
- core/model/modx/processors/security/login.class.php (63)
- Параметры
- username (введенное имя пользователя)
- password (введенный пароль)
- attributes
- rememberme (запомнить пароль пользователя)
- lifetime (время жизни сессии cookie для входа)
- loginContext (ключ контекста в котором происходит вход)
- addContexts (дополнительные контексты в которых осуществляется вход)
Запускается перед тем, как процесс входа в систему запускается для пользователя, при входе в манагер. Можно использовать для запрета на вход.
- core/model/modx/modmanagercontroller.class.php (125)
- Параметры
- action (массив текущих контроллеров)
Запускается перед управляющим контроллером и после проверки разрешений.
- core/model/modx/processors/element/plugin/remove.class.php (16)
- Параметры
- plugin (ссылка на объект modPlugin)
- id (id плагина)
Запускается перед тем как удалится плагин.
- core/model/modx/processors/element/plugin/create.class.php (25)
- core/model/modx/processors/element/plugin/update.class.php (26)
- Параметры
- mode (либо новый либо обновить, определение)
- plugin (ссылка на объект modPlugin)
- id (id плагина. Будет 0 для новых плагинов)
Запускается после отправки, но до того как плагин будет сохранен в менеджере.
- core/model/modx/processors/element/snippet/remove.class.php (16)
- Параметры
- snippet (ссылка на объект modSnippet)
- id (id сниппета)
Запускается перед тем как удаляется сниппет.
- core/model/modx/processors/element/snippet/update.class.php (24)
- core/model/modx/processors/element/snippet/create.class.php (23)
- Параметры
- mode (либо новый либо обновить, определение)
- snippet (ссылка на объект modSnippet)
- id (id сниппета. Будет 0 для новых.)
Запускается после отправки, но до того как сниппет будет сохранен в менеджере.
- core/model/modx/processors/element/template/remove.class.php (16)
- Параметры
- template (ссылка на объект modTemplatе)
- id (id шаблона.)
Запускается перед тем как шаблон удаляется.
- core/model/modx/processors/element/template/update.class.php (25)
- core/model/modx/processors/element/template/create.class.php (24)
- Параметры
- mode (либо новый либо обновить, определение)
- template (ссылка на объект modTemplate)
- id (id шаблона. Будет 0 для новых.)
Запускается после отправки, но до того как шаблон будет сохранен в менеджере.
- core/model/modx/processors/element/tv/remove.class.php (16)
- Параметры
- tv (ссылка на объект modTemplateVar)
- id (id тв.)
Запускается перед тем как шаблон удаляется.
- core/model/modx/processors/element/tv/create.class.php (31)
- core/model/modx/processors/element/tv/update.class.php (31)
- Параметры
- mode (либо новый либо обновить, определение)
- tv (ссылка на объект modTemplateVar)
- id (id ТВ. Будет 0 для новых.)
Запускается после отправки, но до того как ТВшка будет сохранена в менеджере.
- core/model/modx/processors/security/user/activatemultiple.class.php (28)
- Параметры
- mode (либо новый либо обновить, определение)
- user (ссылка на объект modUser)
- id (id пользователя)
Запускается перед тем как активировать юзверя.
- core/model/modx/processors/security/user/delete.class.php (15)
- Параметры
- user (ссылка на объект modUser)
- id (id пользователя)
Запускается перед тем как удаляется пользователь.
- core/model/modx/processors/security/user/update.class.php (16)
- core/model/modx/processors/security/user/create.class.php (17)
- Параметры
- mode (либо новый либо обновить, определение)
- user (ссылка на объект modUser)
- id (id пользователя. Будет 0 для новых.)
Запускается после отправки, но до того как пользователь будет сохранен.
- core/model/modx/processors/security/login.class.php (63)
- Параметры
- username (имя пользователя)
- password (пароль)
- attributes
- rememberme (запомнить пароль пользователя)
- lifetime (время жизни сессии cookie для входа)
- loginContext (ключ контекста в котором происходит вход)
- addContexts (дополнительные контексты в которых осуществляется вход)
Запускается перед тем как пользователь логинится (не в манагере).
- core/model/modx/modcategory.class.php (92)
- Параметры
- category (cсылка на объект modCategory)
- core/model/modx/modcategory.class.php (56)
- Параметры
- category (cсылка на объект modCategory)
- id (id категории)
Запускается перед тем как сохраняется категория.
- core/model/modx/modcategory.class.php (115)
- Параметры
- category (cсылка на объект modCategory)
Запускается после того как категория будет удалена.
- core/model/modx/modcategory.class.php (74)
- Параметры
- category (cсылка на объект modCategory)
Запускается после того как категория будет сохранена.
- core/model/modx/modchunk.class.php (71)
- Параметры
- chunk (cсылка на объект modChunk)
Запускается перед тем как чанк удаляется.
- core/model/modx/modchunk.class.php (39)
- Параметры
- chunk (cсылка на объект modChunk)
Запускается перед тем как чанк сохраняется.
- core/model/modx/modchunk.class.php (80)
- Параметры
- chunk (cсылка на объект modChunk)
Запускается после того как чанк удален.
- core/model/modx/modchunk.class.php (49)
- Параметры
- chunk (cсылка на объект modChunk)
Запускается после того как чанк сохранен.
- core/model/modx/modcontext.class.php (329)
- Параметры
- context (cсылка на объект modContext)
Запускается перед тем как контекст будет удален.
- core/model/modx/modcontext.class.php (355)
- Параметры
- context (cсылка на объект modContext)
- mode (либо новый либо обновить, определение)
Запускается перед тем как контекст будет сохранен.
- manager/controllers/default/context/update.class.php (100)
- Параметры
- key (ключ контекста)
- context (cсылка на объект modContext)
- mode (либо новый либо обновить, определение)
Запускается перед тем как загрузится форма редактирования.
- manager/controllers/default/context/update.class.php (113)
- Параметры
- key (ключ контекста)
- context (cсылка на объект modContext)
- mode (либо новый либо обновить, определение)
Запускается после того как форма редактирования загружена.
- core/model/modx/modcontext.class.php (338)
- Параметры
- context (cсылка на объект modContext)
Запускается после того как контекст удаляется.
- core/model/modx/modcontext.class.php (365)
- Параметры
- context (cсылка на объект modContext)
- mode (либо новый либо обновить, определение)
Запускается каждый раз когда контекст сохраняется.
- core/model/modx/processors/resource/emptyrecyclebin.class.php (60)
- Параметры
- ids (массив удаленных id ресурсов)
- num_deleted (количество удаленных ресурсов)
Запускается после того как корзина очищена.
- core/model/modx/sources/mods3mediasource.class.php (662)
- core/model/modx/sources/modfilemediasource.class.php (748)
- Параметры
- files (массив файлов из PHP массива $_files)
- directory (ссылка на объект modDirectory )
- source (объект modMediaSource)
Запускается после того как все файлы загружены в диспетчер.
- core/model/modx/modmanagerrequest.class.php (116)
- core/model/modx/modrequest.class.php (69)
Срабатывает в самом начале обработки запроса (request). Аналогичную функцию выполняет «OnMODXInit». Большой разницы между этими событиями нет — они запускаются друг за другом, только «OnMODXInit» запускается в классе modX, а «OnHandleRequest» — в классе modRequest, который загружается сразу же после инициализации MODX.
Данное событие можно использовать для маршрутизации запроса — перенаправлять пользователя на определенную страницу в зависимости от условий (аналогично .htaccess).
Если используется режим дружественных URLs, то происходит поиск идентификатора ресурса с соответствующим алиасом. Если такой не найден, то идёт переадресация на страницу ошибок с вызовом события OnPageNotFound.
- core/model/modx/modx.class.php (2370)
При рендере страницы запускается первым. Происходит после установки языковой принадлежности и формирования лексического массива.
- core/model/modx/processors/security/login.class.php (236)
- Параметры
- user (ссылка на объект modUser)
- password (пароль)
- rememberme (запомнить пользователя, cookie)
- lifetime (время жизни сессии cookie)
- loginContext (ключ контекста)
- addContexts (дополнительные контексты где происходит авторизация)
Запускается перед тем как пользователь авторизуется, и его сессия добавить в менеджер. Это событие используется, чтобы позволить войти
- manager/controllers/default/security/login.class.php (44)
Запускается перед тем как форма входа появится для пользователя.
- core/model/modx/modmanagercontroller.class.php (190)
- Параметры
- controller (экземпляр контроллера текущей страницы менеджера)
Запускается в контроллере менеджера после обработки контента, но до того как он появится.
- core/model/modx/modmanagerrequest.class.php (127)
- Параметры
- action (id текущего загруженного действия)
Запускается перед тем как страница загрузится в менеджере.
- core/model/modx/modx.class.php (1174)
- Параметры
- response_code (код ответа для отправки, по умолчанию "HTTP/1.1 404 Not Found")
- error_type (тип. По умолчанию 404)
- error_header (заголовок, по умолчанию "HTTP/1.1 404 Not Found")
- error_pagetitle (pagetitle на странице)
- error_message (сообщение на странице ошибки)
Запускается когда пользователь попадает на ресурс id которого не найден. Формируется ответ «404 Page not found» и пользователь перенаправляется на страницу, указанную в системных параметрах (ключ error_page).
- core/model/modx/modx.class.php (1198)
- Параметры
- response_code (код ответа для отправки, по умолчанию "HTTP/1.1 401 Unauthorized")
- error_type (тип. По умолчанию 401)
- error_header (заголовок, по умолчанию "HTTP/1.1 401 Unauthorized")
- error_pagetitle (pagetitle на странице)
- error_message (сообщение на странице ошибки)
Запускается когда пользователь попадает на закрытые страницы к которым у него нет доступа. MODX вернёт ответ с кодом «HTTP/1.1 401 Unauthorized» и перенаправит пользователя на страницу для не авторизованных пользователей, указанную в системных настройках (ключ unauthorized_page).
- core/model/modx/modparser.class.php (229)
- core/model/modx/modparser095.class.php (88)
- Параметры
- ссылка на контент доступна так $modx->documentOutput
Событие срабатывает для каждого тега MODX, т.е. столько раз, сколько тегов будет на странице. В плагине содержание тега доступно через переменную $content.
- core/model/modx/modplugin.class.php (70)
- Параметры
- plugin (ссылка на объект modPlugin)
Событие срабатывает перед тем как удаляется плагин.
- core/model/modx/modplugin.class.php (39)
- Параметры
- plugin (ссылка на объект modPlugin)
Событие срабатывает перед тем как сохранится плагин.
- core/model/modx/modplugin.class.php (39)
- Параметры
- plugin (ссылка на объект modPlugin)
Событие срабатывает перед тем как сохранится плагин.
- core/model/modx/modpluginevent.class.php (59)
- Параметры
- id (id объекта modPluginEvent)
- pluginEvent (Ссылка на объект modPluginEvent)
Событие срабатывает после того как плагин отсоединится от события.
- core/model/modx/processors/element/plugin/remove.class.php (17)
- Параметры
- id (id плагина)
- chunk (ссылка на объект modPlugin)
Событие срабатывает после того как плагин будет удален.
- manager/controllers/default/element/plugin/create.class.php (78)
- manager/controllers/default/element/plugin/update.class.php (129)
- Параметры
- mode (либо новый либо обновить, определение)
- id (id плагина. Будет 0 для новых)
- plugin (ссылка на объект modPlugin. Будет иметь значение NULL для новых плагинов)
Запускается до изменения плагина, но JS подгружается. Можно использовать для визуализации пользовательских JavaScript в mgr.
- manager/controllers/default/element/plugin/create.class.php (91)
- manager/controllers/default/element/plugin/update.class.php (143)
- Параметры
- mode (либо новый либо обновить, определение)
- id (id плагина. Будет 0 для новых)
- plugin (ссылка на объект modPlugin. Будет иметь значение NULL для новых плагинов)
Запускается во время рендеринга формы.
- core/model/modx/processors/element/plugin/create.class.php (26)
- core/model/modx/processors/element/plugin/update.class.php (27)
- Параметры
- mode (либо новый либо обновить, определение)
- id (id плагина)
- plugin (ссылка на объект modPlugin)
Запускается после того, как плагин будет сохранен в менеджере.
- core/model/modx/modplugin.class.php (79)
- Параметры
- plugin (ссылка на объект modPlugin)
Запускается после того, как плагин будет удален.
- core/model/modx/modplugin.class.php (49)
- Параметры
- plugin (ссылка на объект modPlugin)
Запускается после того, как плагин будет сохранен.
- core/model/modx/modplugin.class.php (49)
- Параметры
- plugin (ссылка на объект modPlugin)
Запускается после того, как плагин будет сохранен.
- core/model/modx/modpropertyset.class.php (218)
- Параметры
- propertySet (ссылка на объект modPropertySet)
Запускается перед тем как набор параметров будет удален.
- core/model/modx/modpropertyset.class.php (192)
- Параметры
- propertySet (ссылка на объект modPropertySet)
Запускается перед тем как набор параметров будет сохранен.
- core/model/modx/modpropertyset.class.php (227)
- Параметры
- propertySet (ссылка на объект modPropertySet)
Запускается после того, как набор параметров будет удален.
- core/model/modx/modpropertyset.class.php (202)
- Параметры
- propertySet (ссылка на объект modPropertySet)
Запускается после того, как набор параметров будет сохранен.
- Параметры
- group (ссылка на объект modResourceGroup)
Запускается перед тем как группа ресурсов удаляется.
- core/model/modx/modresourcegroup.class.php (27)
- Параметры
- group (ссылка на объект modResourceGroup )
Запускается перед тем как группа ресурсов сохраняется.
- core/model/modx/modresourcegroup.class.php (63)
- Параметры
- group (ссылка на объект modResourceGroup )
Запускается после того как группа ресурсов удаляется.
- core/model/modx/modresourcegroup.class.php (38)
- Параметры
- group (ссылка на объект modResourceGroup )
Запускается после того как группа ресурсов сохраняется.
- manager/controllers/default/browser/index.class.php (42)
Используется для обработки MODx.Browser's реализации файловой системы для пользовательских RTEs.
- core/model/modx/processors/element/tv/renders/web/output/richtext.class.php (22)
- manager/controllers/default/element/chunk/update.class.php (149)
- manager/controllers/default/element/chunk/create.class.php (22)
- manager/controllers/default/resource/resource.class.php (205)
- manager/controllers/default/element/chunk/create.class.php (86)
- Параметры
- editor (указанный редактор)
- elements (массив элементов RTE)
Может быть использован любой редактор.
- manager/controllers/default/resource/resource.class.php (197)
- core/model/modx/processors/system/rte/getlist.class.php (11)
Срабатывает при выборе любого выпадающего списка редакторов. Например в системных настройках 'which_editor', вродебы
- manager/controllers/default/system/settings.class.php (43)
Срабатывает до того, как страница с настройками загрузится.
- core/model/modx/processors/security/user/activatemultiple.class.php (44)
- Параметры
- core/model/modx/moduser.class.php (117)
- Параметры
- user (ссылка на объект modUser )
Срабатывает перед тем как пользователь будет удален.
- core/model/modx/moduser.class.php (91)
- Параметры
- user (ссылка на объект modUser)
- mode (либо новый либо обновить, определение)
Срабатывает перед тем как пользователь будет сохранен.
- core/model/modx/processors/security/user/delete.class.php (16)
- Параметры
- user (ссылка на объект modUser)
- id (id пользователя)
Срабатывает после того как пользователь будет удален.
- core/model/modx/processors/security/user/create.class.php (18)
- core/model/modx/processors/security/user/update.class.php (17)
- Параметры
- user (ссылка на объект modUser)
- id (id пользователя)
- mode (либо новый либо обновить, определение)
Срабатывает после того как пользователь будет создан и обновлен через форму.
- core/model/modx/processors/security/login.class.php (105)
- Параметры
- username (указанное имя пользователя)
- password (указанный пароль)
- attributes (массив параметров)
Срабатывает когда пользователь не найден при авторизации.
- core/model/modx/moduser.class.php (126)
- Параметры
- user (ссылка на объект modUser)
Срабатывает после того как пользователь удален.
- core/model/modx/moduser.class.php (101)
- Параметры
- user (ссылка на объект modUser)
- mode (либо новый либо обновить, определение)
Срабатывает после того как пользователь сохранен.
- core/model/modx/modx.class.php (527)
- Параметры
- contextKey
- options
Срабатывает в конце инициализации MODX после загрузки всех необходимых сервисов (modError, modLexicon, modRegistry, cacheManager), загрузки пакетов из ExtensionPackages и инициализации сессии, в которой определяется пользователь. Это событие запускается в классе modX.
- core/model/modx/processors/security/login.class.php (236)
- Параметры
- user (ссылка на объект modUser)
- password (пароль)
- rememberme (запомнить пользователя, cookie)
- lifetime (время жизни сессии cookie)
- loginContext (ключ контекста)
- addContexts (дополнительные контексты где происходит авторизация)
Запускается перед тем как пользователь авторизуется, и его сессия добавить в менеджер. Это событие используется, чтобы позволить войти
- core/model/modx/processors/security/login.class.php (299)
- Параметры
- user (ссылка на объект modUser)
- attributes
- rememberme (запомнить пароль пользователя)
- lifetime (время жизни сессии cookie для входа)
- loginContext (ключ контекста в котором происходит вход)
- addContexts (дополнительные контексты в которых осуществляется вход)
Запускается каждый раз, когда пользователь успешно входит в не в mgr после успешного выполнения любой операции проверки. Событие не влияет на процесс авторизации.
- core/model/modx/processors/security/logout.class.php (59)
- Параметры
- user (ссылка на объект modUser, который вышел)
- loginContext (ключ контекста где произошел выход)
- addContexts (дополнительные контексты в которых осуществился выход)
Запускается каждый раз, когда пользователь выходит из контекста. Сессия при этом удаляется.
- core/model/modx/modresponse.class.php (90, 111)
Запускается после того, как все теги на странице обработаны, но еще не переданы в браузер. На данном этапе можно обработать содержание страницы, например, заменить запрещённые слова.
$words = array("козёл", "сволочь"); // слова, которые будут заменены
$output = &$modx->resource->_output; // получаем доступ к содержанию страницы
$output = str_replace($words,"<b>нехороший человек</b>",$output); // заменяем слова
- core/model/modx/modx.class.php (2594)
- Параметры
- к ресурсу можно обратится $modx->resource.
Событие запускаемое последним. Оно срабатывает, когда страница уже отправлена в браузер и подготовленный ресурс сохранен в кэш.
- core/model/modx/modrequest.class.php (112)
Срабатывает в конце обработки запроса перед подготовкой ответа. Статус сайта уже определён и идентификатор ресурса (id) найден (он доступен в $modx->resourceIdentifier).
После этого события MODX загружает ресурс и проверяет права доступа к нему для текущего пользователя. И если проверки не прошли, то запускается одно из 2-х следующих событий — «OnPageNotFound» или «OnPageUnauthorized».
Пример
В качестве примера, подключим собственный файл с классом перед тем как произошла окончательная инициализация MODX.
Идем на вкладку элементы, нажимаем кнопку «Новый плагин», даем ему имя и указываем следующий код. На вкладке «системные события» ставим галку напротив OnMODXInit.
switch ($modx->event->name) {
case 'OnMODXInit':
// Укажем путь до файла
$file = MODX_CORE_PATH . 'classes/my.class.php';
if (file_exists($file)) {
require_once $file;
}
break;
}
Пример плагина прослушивающего более чем 1 событие:
$eventName = $modx->event->name;
switch($eventName) {
case 'OnWebPageInit':
/* do something */
break;
case 'OnWebPagePrerender':
/* do something else */
break;
}
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.