Список событий в ядре
Для получения дополнительной информации о том, как работают события, посетите События.
Содержание
Примечание
Некоторые события помечены
, это означает, что эти события также имеют события :before и :after. Также см. Последовательность событий
Некоторые события помечены
, это означает, что эти события позволяют изменять вывод события
Системные события
- activate, plugin
Верните false, чтобы предотвратить активацию плагина.
- cache:clear, system

Очистить внутренние и внешние кэши.
- cache:generate, <view>

Фильтрует вывод представления для URL
/cache, когда simplecache отключён. Обратите внимание, что это будет запускаться для каждого запроса/cache— заголовки Expires не используются, когда simplecache отключён.- cache:invalidate, system

Инвалидировать внутренние и внешние кэши.
- cache:purge, system

Очистить внутренние и внешние кэши. Это предназначено для удаления старого/устаревшего контента из кэшей.
- commands, cli

Позволяет плагинам регистрировать собственные команды, исполняемые через бинарный файл
elgg-cli. Обработчики должны возвращать массив имён классов команд. Команды должны расширять\Elgg\Cli\Command, чтобы быть исполняемыми.- cron, <period>

Запускается cron для каждого периода.
Массив
$paramsбудет содержать:time— временная метка, когда была запущена команда crondt— объект\DateTimeImmutable, когда была запущена команда cronlogger— экземпляр\Elgg\Logger\Cronдля логирования любой информации в лог cron
- cron:intervals, system

Позволяет настройку пользовательских интервалов cron
- deactivate, plugin
Верните false, чтобы предотвратить деактивацию плагина.
- diagnostics:report, system

Фильтрует вывод для загрузки отчёта диагностики.
- elgg.data, page

Фильтрует некэшированные, специфичные для страницы данные конфигурации для передачи клиенту. Подробнее
- format, friendly:title

Форматирует «дружелюбный» заголовок для строк. Это используется для генерации URL.
- format, friendly:time

Форматирует «дружелюбное» время для временной метки
$params['time'].- format, strip_tags

Фильтрует строку для удаления тегов. Исходная строка передаётся как
$params['original_string'], а необязательный набор разрешённых тегов передаётся как$params['allowed_tags'].- gc, system

Позволяет плагинам запускать сборку мусора для
$params['period'].- generate, password

Позволяет плагинам генерировать новые случайные пароли в открытом тексте.
- init:cookie, <name>
Верните false, чтобы переопределить установку куки.
- init, system

Плагины склонны использовать это событие для инициализации (расширение представлений, регистрация обратных вызовов и т.д.)
- languages, translations

Позволяет плагинам добавлять/удалять языки из настраиваемых языков в системе.
- log, systemlog
Вызывается для всех запущенных событий плагином
system_log. Используется внутриElgg\SystemLog\Logger::log()для заполнения таблицыsystem_log.- login_url, site

Фильтрует URL входа сайта. Массив
$paramsсодержит массив элементов запроса, добавленных к URL входа вызывающим скриптом. Событие должно вернуть абсолютный URL страницы входа.- output:before, page

В
elgg_view_page()это фильтрует$varsперед передачей в представление оболочки страницы (page/<page_shell>). Чтобы остановить отправку заголовка X-Frame-Options, отмените регистрацию обработчикаElgg\Page\SetXFrameOptionsHeaderHandler::classиз этого события.- output, page

В
elgg_view_page()это фильтрует возвращаемое значение вывода.- parameters, menu:<menu_name>

Запускается
elgg_view_menu(). Используется для изменения переменных меню (например, порядка сортировки) перед отображением.Массив
$paramsбудет содержать:name— имя менюsort_by— предпочтительный параметр сортировкидругие параметры, переданные в
elgg_view_menu()
- plugins_load, system

Запускается перед загрузкой плагинов. Используется редко. Вместо этого используется init, system. Может использоваться для загрузки дополнительных библиотек.
- plugins_boot, system

Запускается сразу после загрузки плагинов. Используется редко. Вместо этого используется init, system.
- prepare, html

Запускается
elgg_format_html()и используется для подготовки ненадёжного HTML.Значение
$return— это массив:html— подготавливаемая строка HTMLoptions— опции подготовки
- prepare, menu:<menu_name>

Фильтрует массив секций меню перед их отображением. Каждая секция — это строковый ключ, сопоставляемый с областью элементов меню. Это хорошее событие для сортировки, добавления, удаления и изменения элементов меню. Запускается
elgg_view_menu()иelgg()->menus->prepareMenu().Массив
$paramsбудет содержать:selected_item—ElggMenuItem, выбранный в меню, если есть
Возвращаемое значение — это экземпляр
\Elgg\Menu\PreparedMenu. Подготовленное меню — это коллекция\Elgg\Menu\MenuSection, которые, в свою очередь, являются коллекциями объектов\ElggMenuItem.- prepare, menu:<menu_name>:<type>:<subtype>

Более детализированная версия события меню, запускаемая перед событием prepare, menu:<menu_name>.
Применяется только если параметры меню содержат - params[„entity“] с
\ElggEntity(<type>— это\ElggEntity::type, а<subtype>— это\ElggEntity::subtype) или - params[„annotation“] с\ElggAnnotation(<type>— это\ElggAnnotation::getType(), а<subtype>— это\ElggAnnotation::getSubtype()) или - params[„relationship“] с\ElggRelationship(<type>— это\ElggRelationship::getType(), а<subtype>— это\ElggRelationship::getSubtype())- ready, system

Запускается после события
init, system. Все плагины полностью загружены, и движок готов обслуживать страницы.- regenerate_site_secret:before, system
Верните false, чтобы отменить перегенерацию секретного ключа сайта. Вы также должны предоставить сообщение пользователю.
- regenerate_site_secret:after, system
Запускается после перегенерации секретного ключа сайта.
- register, menu:<menu_name>

Фильтрует начальный список элементов меню, извлечённых из конфигурации, до того, как меню было разделено на секции. Запускается
elgg_view_menu()иelgg()->menus->getMenu().Массив
$paramsбудет содержать параметры, возвращённые событиемparameters, menu:<menu_name>.Возвращаемое значение — это экземпляр
\Elgg\Menu\MenuItems, содержащий объекты\ElggMenuItem.Обработчики событий могут добавлять/удалять элементы в коллекцию с использованием API коллекции, а также операций доступа к массиву.
- register, menu:<menu_name>:<type>:<subtype>

Более детализированная версия события меню, запускаемая перед событием register, menu:<menu_name>.
Применяется только если параметры меню содержат - params[„entity“] с
\ElggEntity(<type>— это\ElggEntity::type, а<subtype>— это\ElggEntity::subtype) или - params[„annotation“] с\ElggAnnotation(<type>— это\ElggAnnotation::getType(), а<subtype>— это\ElggAnnotation::getSubtype()) или - params[„relationship“] с\ElggRelationship(<type>— это\ElggRelationship::getType(), а<subtype>— это\ElggRelationship::getSubtype())- register, menu:filter:<filter_id>

Позволяет плагинам изменять вкладки фильтра макета на макетах, которые указывают параметр
<filter_id>. Параметры и возвращаемые значения такие же, как в событииregister, menu:<menu_name>.Если
filter_id— этоfilter(по умолчанию), то вкладкиall,mineиfriendsбудут сгенерированы на основе некоторой предоставленной информации или будут опробованы для маршрутов, аналогичных текущему маршруту.params[„all_link“] будет использоваться для вкладки
allparams[„mine_link“] будет использоваться для вкладки
mineparams[„friends_link“] будет использоваться для вкладки
friend
Если вышеуказанное не предоставлено, то маршрут будет опробован на основе
params['entity_type']иparams['entity_subtype']. Если не предоставленыentity_typeиentity_subtype, они будут основаны на обнаружении маршрута текущего маршрута. Например, если текущий маршрут —collection:object:blog:all,entity_typeбудетobject, аentity_subtypeбудетblog. - Вкладкаallбудет основана на маршрутеcollection:<entity_type>:<entity_subtype>:all- Вкладкаmineбудет основана на маршрутеcollection:<entity_type>:<entity_subtype>:owner- Вкладкаfriendбудет основана на маршрутеcollection:<entity_type>:<entity_subtype>:friendsЕсли маршруты не зарегистрированы, вкладки не появятся.
- registration_url, site

Фильтрует URL регистрации сайта. Может использоваться плагинами для прикрепления кодов приглашения, кодов рефералов и т.д. к URL регистрации. Массив
$paramsсодержит массив элементов запроса, добавленных к URL регистрации вызывающим скриптом. Событие должно вернуть абсолютный URL к странице регистрации.- reload:after, translations
Запускается после (пере)загрузки переводов.
- sanitize, input

Фильтрует ввод GET и POST. Это используется
get_input()для санитизации пользовательского ввода.- seeds, database

Позволяет плагинам регистрировать собственные сиды базы данных. Сиды заполняют базу данных фейковыми сущностями для целей тестирования. Сиды должны расширять класс
\Elgg\Database\Seeds\Seed, чтобы быть исполняемыми черезelgg-cli database:seed.- send:before, http_response
Запускается перед отправкой HTTP-ответа. Обработчики получат экземпляр SymfonyComponentHttpFoundationResponse, который должен быть отправлен запрашивающему. Обработчики могут завершить событие и предотвратить отправку ответа, вернув false.
- send:after, http_response
Запускается после отправки HTTP-ответа. Обработчики получат экземпляр SymfonyComponentHttpFoundationResponse, который был отправлен запрашивающему.
- shutdown, system
Запускается после отправки страницы пользователю. Здесь могут выполняться дорогостоящие операции, не заставляя пользователя ждать.
Примечание
В зависимости от конфигурации вашего сервера вывод PHP может не отображаться до завершения процесса. Это означает, что любые долго работающие процессы всё равно задержат загрузку страницы.
Примечание
Это событие предпочтительнее использования register_shutdown_function, поскольку вы можете не иметь доступа ко всем сервисам Elgg (например, базе данных) в функции shutdown, но будете иметь в событии.
Примечание
Сессия Elgg уже закрыта перед этим событием. Манипулирование сессией невозможно.
- simplecache:generate, <view>

Фильтрует вывод представления для URL
/cache, когда simplecache включён.- upgrade, system
Запускается после завершения обновления системы. Все скрипты обновления выполнены, но кэши не очищены.
- upgrade:execute, system

Запускается при выполнении
ElggUpgrade.$objectсобытия — этоElggUpgrade.
События пользователя
- ban, user
Запускается перед блокировкой пользователя. Верните false, чтобы предотвратить.
- change:email, user

Запускается перед изменением email пользователя. Позволяет плагинам реализовывать дополнительную логику, необходимую для изменения email, например, дополнительную проверку email. Обработчик события должен вернуть false, чтобы предотвратить немедленное изменение email.
Массив
$paramsбудет содержать:user—\ElggUser, настройки которого сохраняютсяemail— адрес электронной почты, который проходит проверки на разумностьrequest—\Elgg\Requestк контроллеру действия
- invalidate:after, user
Запускается, когда проверка учётной записи пользователя была отозвана.
- login, user

Запускается при входе пользователя.
- login:forward, user

Фильтрует URL, на который пользователь будет перенаправлен после входа.
- login:first, user
Запускается после успешного входа. Только если не было предыдущего входа.
- logout:after, user
Запускается после выхода пользователя.
- logout:before, user
Запускается во время выхода. Возврат false должен предотвратить выход пользователя.
- make_admin, user
Запускается перед повышением пользователя до администратора. Верните false, чтобы предотвратить.
- profileiconupdate, user
Пользователь изменил иконку профиля
- profileupdate, user
Пользователь изменил профиль
- register, user

Запускается действием
registerпосле регистрации пользователя. Вернитеfalse, чтобы удалить пользователя. Обратите внимание, что функцияregister_userне запускает это событие. Обработчики событий могут выбрасывать\Elgg\Exceptions\Configuration\RegistrationExceptionс сообщением об ошибке для отображения пользователю.Массив
$paramsбудет содержать:user— вновь зарегистрированная сущность пользователяВсе параметры, отправленные с запросом к действию (включая
password,friend_guid,invitecodeи т.д.)
- registeruser:validate:email, all

Верните boolean, является ли строка в
$params['email']допустимой для адреса электронной почты. Обработчик события может выбросить\Elgg\Exceptions\Configuration\RegistrationExceptionс сообщением об ошибке для отображения пользователю.- registeruser:validate:password, all

Верните boolean, является ли строка в
$params['password']допустимой для пароля. Обработчик события может выбросить\Elgg\Exceptions\Configuration\RegistrationExceptionс сообщением об ошибке для отображения пользователю.- registeruser:validate:username, all

Верните boolean, является ли строка в
$params['username']допустимой для имени пользователя. Обработчик события может выбросить\Elgg\Exceptions\Configuration\RegistrationExceptionс сообщением об ошибке для отображения пользователю.- remove_admin, user
Запускается перед понижением пользователя с администратора. Верните false, чтобы предотвратить.
- unban, user
Запускается перед разблокировкой пользователя. Верните false, чтобы предотвратить.
- username:character_blacklist, user

Фильтрует строку запрещённых символов, используемую для проверки имени пользователя при регистрации. Возвращаемое значение должно быть строкой, состоящей из запрещённых символов. Строка по умолчанию может быть найдена в
$params['blacklist'].- usersettings:save, user

Запускается в агрегированном действии для сохранения настроек пользователя. Обработчик события должен вернуть
false, чтобы предотвратить очистку липких форм (т.е. указать, что некоторые значения не были сохранены). Не возвращайтеtrueиз вашего обработчика события, так как вы переопределите вывод других событий, вместо этого вернитеnull, чтобы указать на успешную операцию.Массив
$paramsбудет содержать:user—\ElggUser, настройки которого сохраняютсяrequest—\Elgg\Requestк контроллеру действия
- validate, user
Когда пользователь регистрируется, учётная запись пользователя отключается. Это событие запускается, чтобы позволить плагину определить, как пользователь должен быть проверен (например, через электронное письмо со ссылкой для проверки).
- validate:after, user
Запускается, когда учётная запись пользователя была проверена.
События отношений
- create, relationship

Запускается во время создания отношения.
- delete, relationship

Запускается во время удаления отношения.
- join, group
Запускается после того, как пользователь
$params['user']присоединился к группе$params['group'].- leave, group
Запускается до того, как пользователь
$params['user']покинул группу$params['group'].
События сущности
- comments, <entity_type>

Запускается в
elgg_view_comments(). Если возвращает контент, это переопределяет представлениеpage/elements/comments.- comments:count, <entity_type>

Верните количество комментариев на
$params['entity'].- create, <entity type>
Запускается для сущностей пользователя, группы, объекта и сайта после создания. Запускается непосредственно перед событием
create:after, в основном по причинам обратной совместимости. Предпочтительно использование событияcreate:after.- create:after, <entity type>
Запускается для сущностей пользователя, группы, объекта и сайта после создания.
- create:before, <entity type>
Запускается для сущностей пользователя, группы, объекта и сайта перед созданием. Верните false, чтобы предотвратить создание сущности.
- delete, <entity type>

Запускается, когда сущность постоянно удаляется из базы данных. Также см. Возможность восстановления
- disable, <entity type>
Запускается перед отключением сущности. Верните false, чтобы предотвратить отключение.
- disable:after, <entity type>
Запускается после отключения сущности.
- enable, <entity type>
Верните false, чтобы предотвратить включение.
- enable:after, <entity type>
Запускается после включения сущности.
- likes:count, <entity_type>

Верните количество лайков для
$params['entity'].- trash, <entity type>

Запускается, когда сущность помечается как удалённая в базе данных. Также см. Возможность восстановления
- update, <entity type>
Запускается перед обновлением для сущностей пользователя, группы, объекта и сайта. Верните false, чтобы предотвратить обновление. Метод сущности
getOriginalAttributes()может использоваться для определения, какие атрибуты изменились с момента последнего сохранения сущности.- update:after, <entity type>
Запускается после обновления для сущностей пользователя, группы, объекта и сайта. Метод сущности
getOriginalAttributes()может использоваться для определения, какие атрибуты изменились с момента последнего сохранения сущности.
События метаданных
- create, metadata
Вызывается после создания метаданных. Верните false, чтобы удалить только что созданные метаданные.
- delete, metadata
Вызывается перед удалением метаданных. Верните false, чтобы предотвратить удаление.
- update, metadata
Вызывается после обновления метаданных. Верните false, чтобы удалить метаданные.
События аннотаций
- annotate, <entity type>
Вызывается перед созданием аннотации. Верните false, чтобы предотвратить аннотирование этой сущности.
- create, annotation
Вызывается после создания аннотации. Верните false, чтобы удалить аннотацию.
- delete, annotation
Вызывается перед удалением аннотации. Верните false, чтобы предотвратить удаление.
- update, annotation
Вызывается после обновления аннотации. Верните false, чтобы удалить аннотацию.
События ленты
- create:after, river
Вызывается после создания элемента ленты.
- create:before, river
Вызывается перед сохранением элемента ленты в базе данных. Верните
false, чтобы предотвратить создание элемента.- delete:after, river
Запускается после удаления элемента ленты.
- delete:before, river
Запускается перед удалением элемента ленты. Возврат false отменяет удаление.
События доступа
- access_collection:url, access_collection

Может использоваться для фильтрации URL списка контроля доступа.
Массив
$paramsбудет содержать:access_collection— ElggAccessCollection
- access_collection:name, access_collection

Может использоваться для фильтрации отображаемого имени (читаемого уровня доступа) списка контроля доступа.
Массив
$paramsбудет содержать:access_collection— ElggAccessCollection
- access:collections:read, user

Фильтрует массив идентификаторов доступа, которые пользователь
$params['user_id']может видеть.Предупреждение
Обработчику нужно либо не использовать части API, которые используют систему доступа (повторный запуск события), либо игнорировать второй вызов. В противном случае будет создан бесконечный цикл.
- access:collections:write, user

Фильтрует массив идентификаторов доступа, в которые пользователь
$params['user_id']может записывать. Вelgg_get_write_access_array()это событие фильтрует возвращаемое значение, поэтому его можно использовать для изменения доступных опций в представленииinput/access. Для плагинов ядра значение «input_params» имеет ключи «entity» (ElggEntity|false), «entity_type» (string), «entity_subtype» (string), «container_guid» (int). Пустое значение сущности обычно означает, что форма предназначена для создания нового объекта.Предупреждение
Обработчику нужно либо не использовать части API, которые используют систему доступа (повторный запуск события), либо игнорировать второй вызов. В противном случае будет создан бесконечный цикл.
- access:collections:write:subtypes, user

Возвращает массив подтипов списков контроля доступа для использования при получении списков контроля доступа, принадлежащих пользователю, в рамках функции
elgg_get_write_access_array().- access:collections:add_user, collection

Запускается перед добавлением пользователя
$params['user_id']в список$params['collection_id']. Верните false, чтобы предотвратить добавление.- access:collections:remove_user, collection

Запускается перед удалением пользователя
$params['user_id']из списка$params['collection_id']. Верните false, чтобы предотвратить удаление.- create, access_collection

Запускается во время создания
ElggAccessCollection.- delete, access_collection

Запускается во время удаления
ElggAccessCollection.- get_sql, access

Фильтрует предложения SQL, ограничивающие/разрешающие доступ к сущностям и аннотациям.
Примечание
Событие запускается независимо от того, игнорируется ли доступ. Обработчикам может потребоваться проверить, игнорируется ли доступ, и вернуться раньше, если добавленные предложения должны применяться только к контекстам с контролируемым доступом.
Значение
$return— это вложенный массивandsиors.$paramsвключает:table_alias— псевдоним основной таблицы, используемой в предложении selectignore_access— включено ли игнорирование доступаuse_enabled_clause— показываются/скрываются ли отключённые сущностиaccess_column— столбец в основной таблице, содержащий значение идентификатора списка контроля доступаowner_guid_column— столбец в основной таблице, ссылающийся на GUID владельцаguid_column— столбец в основной таблице, ссылающийся на GUID сущностиenabled_column— столбец в основной таблице, ссылающийся на статус включения сущностиquery_builder— экземплярQueryBuilder
- update, access_collection

Запускается во время обновления
ElggAccessCollection.
События разрешений
- container_logic_check, <entity_type>

Запускается
ElggEntity:canWriteToContainer()перед запуском событийpermissions_checkиcontainer_permissions_check. В отличие от событий разрешений, проверка логики может использоваться для предотвращения содержания определённых типов сущностей другими типами сущностей, например, ответы на обсуждения должны содержаться только в обсуждениях. Это событие также может использоваться для применения логики статуса, например, запретить новые ответы для закрытых обсуждений.Обработчик должен вернуть
false, чтобы предотвратить содержание одной сущности другой. Значение по умолчанию, передаваемое событию, —null, поэтому обработчик может проверить, изменило ли другое событие значение, проверив, установлено ли возвращаемое значение. Если это событие вернётfalse, событияcontainer_permissions_checkиpermissions_checkне будут запущены.Массив
$paramsбудет содержать:container— сущность, которая будет использоваться как контейнерuser— пользователь, который будет владеть сущностью, записываемой в контейнерsubtype— подтип сущности, записываемой в контейнер (тип сущности предполагается из типа события)
- container_permissions_check, <entity_type>

Верните boolean, может ли пользователь
$params['user']использовать сущность$params['container']в качестве контейнера для сущности типа<entity_type>и подтипа$params['subtype'].В редком случае, когда сущность создаётся без совпадения ни
container_guid, ниowner_guidс авторизованным пользователем, это событие вызывается дважды, и в первом вызове$params['container']будет владельцем, а не реальным контейнером сущности.Массив
$paramsбудет содержать:container— сущность, которая будет использоваться как контейнерuser— пользователь, который будет владеть сущностью, записываемой в контейнерsubtype— подтип сущности, записываемой в контейнер (тип сущности предполагается из типа события)
- permissions_check, <entity_type>

Верните boolean, может ли пользователь
$params['user']редактировать сущность$params['entity'].- permissions_check:delete, <entity_type>

Верните boolean, может ли пользователь
$params['user']удалить сущность$params['entity']. По умолчанию$entity->canEdit().- permissions_check:delete, river

Верните boolean, может ли пользователь
$params['user']удалить элемент ленты$params['item']. По умолчаниюtrueдля администраторов иfalseдля других пользователей.- permissions_check:download, file

Верните boolean, может ли пользователь
$params['user']скачать файл в$params['entity'].Массив
$paramsбудет содержать:entity— экземплярElggFileuser— пользователь, который скачает файл
- permissions_check, widget_layout

Верните boolean, может ли
$params['user']редактировать виджеты в контексте, переданном как$params['context'], и с владельцем страницы$params['page_owner'].- permissions_check:comment, <entity_type>

Верните boolean, может ли пользователь
$params['user']комментировать сущность$params['entity'].- permissions_check:annotate:<annotation_name>, <entity_type>

Верните boolean, может ли пользователь
$params['user']создать аннотацию<annotation_name>на сущности$params['entity']. Если авторизован, по умолчанию true.Примечание
Это вызывается перед более общим событием
permissions_check:annotate, и его возвращаемое значение является начальным значением этого события.- permissions_check:annotate, <entity_type>

Верните boolean, может ли пользователь
$params['user']создать аннотацию$params['annotation_name']на сущности$params['entity']. Если авторизован, по умолчанию true.- api_key, use

Запускается в классе
\Elgg\WebServices\PAM\API\APIKey. Возврат false предотвращает аутентификацию ключа.- gatekeeper, <entity_type>:<entity_subtype>

Фильтрует результат
elgg_entity_gatekeeper()для предотвращения или разрешения доступа к сущности, к которой пользователь иначе имел бы или не имел бы доступа. Обработчик может вернутьfalseили экземпляр\Elgg\Exceptions\HttpException, чтобы предотвратить доступ к сущности. Обработчик может вернутьtrue, чтобы переопределить результат привратника. Важно, что сущность, полученная этим событием, получается с игнорированием доступа и включая отключённые сущности, поэтому вы должны быть осторожны, чтобы не обойти систему доступа.Массив
$paramsвключает:entity— сущность, к которой осуществляется доступuser— пользователь, получающий доступ к сущности (nullподразумевает авторизованного пользователя)
События уведомлений
- dequeue, notifications
Вызывается, когда объект ElggData удаляется из очереди уведомлений для обработки
- enqueue, notifications
Вызывается, когда объект ElggData добавляется в очередь уведомлений
Следующие события перечислены в хронологическом порядке в течение времени жизни события уведомления. Обратите внимание, что не все события применяются к мгновенным уведомлениям.
- enqueue, notification

Может использоваться для предотвращения отправки события уведомления подписки. Обработчик события должен вернуть
false, чтобы предотвратить постановку события уведомления подписки в очередь.Массив
$paramsвключает:object— объект события уведомленияaction— действие, которое запустило событие уведомления. Например, соответствуетpublish, когда вызываетсяelgg_trigger_event('publish', 'object', $object)
- get, subscriptions

Фильтрует подписчиков события уведомления. Применяется к уведомлениям подписки и мгновенным. В случае события подписки по умолчанию список подписчиков состоит из пользователей, подписанных на сущность-контейнер объекта события. В случае события мгновенного уведомления список подписчиков состоит из пользователя, переданного в качестве получателя в
elgg_notify_user()ВАЖНО Всегда проверяйте событие уведомления, объект и/или типы действий перед добавлением новых получателей, чтобы убедиться, что вы случайно не отправите уведомления непредназначенным получателям. Рассмотрите ситуацию, когда плагин упоминаний отправляет мгновенное уведомление упомянутому пользователю — любое событие, действующее на субъект или объект без проверки типа события или действия (например, включая владельца исходной ветки thewire), может в итоге отправить уведомления не тем пользователям.
Массив
$paramsвключает:event— экземпляр\Elgg\Notifications\NotificationEvent, описывающий событие уведомленияorigin—subscriptions_serviceилиinstant_notificationsmethods_override— предпочтение метода доставки для мгновенных уведомленийhandler— экземпляр\Elgg\Notifications\NotificationEventHandler, который обрабатывает это уведомление
Обработчики должны вернуть массив в виде:
array(
<user guid> => array('sms'),
<user_guid2> => array('email', 'sms', 'ajax')
);
- send:before, notifications

Запускается перед обработкой очереди событий уведомлений. Может использоваться для завершения события уведомления. Применяется к уведомлениям подписки и мгновенным.
Массив
$paramsвключает:event— экземпляр\Elgg\Notifications\NotificationEvent, описывающий событие уведомленияsubscriptions— список подписок. См. событие'get', 'subscriptions'для деталейhandler— экземпляр\Elgg\Notifications\NotificationEventHandler, который обрабатывает это уведомление
- prepare, notification

Событие высокого уровня, которое можно использовать для изменения экземпляра
\Elgg\Notifications\Notificationперед его отправкой пользователю. Применяется к уведомлениям подписки и мгновенным. Это событие запускается перед более детализированным'prepare', 'notification:<action>:<entity_type>:<entity_subtype>'и после'send:before', 'notifications. Обработчик события должен вернуть изменённый объект уведомления.$paramsможет варьироваться в зависимости от типа уведомления и может включать:event— экземпляр\Elgg\Notifications\NotificationEvent, описывающий событие уведомленияobject— объект события уведомленияevent. Может бытьnullдля мгновенных уведомленийaction— действие, которое запустило событие уведомленияevent. Может быть по умолчаниюnotify_userдля мгновенных уведомленийmethod— метод доставки (например,email,site)sender— отправительrecipient— получательlanguage— язык уведомления (язык получателя)origin—subscriptions_serviceилиinstant_notificationshandler— экземпляр\Elgg\Notifications\NotificationEventHandler, который обрабатывает это уведомление
- prepare, notification:<action>:<entity_type>:<entity_type>

Детализированное событие, которое можно использовать для фильтрации уведомления
\Elgg\Notifications\Notificationперед его отправкой пользователю. Применяется к уведомлениям подписки и мгновенным. В случае мгновенных уведомлений, которые не получили объект, событие будет вызвано как'prepare', 'notification:<action>'. В случае мгновенных уведомлений, которые не получили имя действия, оно будет по умолчаниюnotify_user.$paramsвключает:event— экземпляр\Elgg\Notifications\NotificationEvent, описывающий событие уведомленияobject— объект события уведомленияevent. Может бытьnullдля мгновенных уведомленийaction— действие, которое запустило событие уведомленияevent. Может быть по умолчаниюnotify_userдля мгновенных уведомленийmethod— метод доставки (например,email,site)sender— отправительrecipient— получательlanguage— язык уведомления (язык получателя)origin—subscriptions_serviceилиinstant_notificationshandler— экземпляр\Elgg\Notifications\NotificationEventHandler, который обрабатывает это уведомление
- format, notification:<method>

Это событие может использоваться для форматирования уведомления перед его передачей в событие
'send', 'notification:<method>'. Применяется к уведомлениям подписки и мгновенным. Обработчик события должен вернуть экземпляр\Elgg\Notifications\Notification. Событие не получает никаких$params. Некоторые варианты использования включают:Удаление тегов из заголовка и тела уведомления для текстовых уведомлений по электронной почте
Встраивание стилей HTML для уведомлений по электронной почте в формате HTML
Обёртывание уведомления в шаблон, добавление подписи и т.д.
- send, notification:<method>

Доставляет уведомление. Применяется к уведомлениям подписки и мгновенным. Обработчик должен вернуть
trueилиfalse, указывающие на успешность доставки.Массив
$paramsвключает:notification— объект уведомления\Elgg\Notifications\Notification
- send:after, notifications

Запускается после обработки всех уведомлений в очереди для события уведомлений. Применяется к уведомлениям подписки и мгновенным.
Массив
$paramsвключает:event— экземпляр\Elgg\Notifications\NotificationEvent, описывающий событие уведомленияsubscriptions— список подписок. См. событие'get', 'subscriptions'для деталейdeliveries— матрица статусов доставки по пользователям для каждого метода доставкиhandler— экземпляр\Elgg\Notifications\NotificationEventHandler, который обрабатывает это уведомление
Письма
- prepare, system:email

Запускается
elgg_send_email(). Применяется ко всем исходящим системным письмам и письмам уведомлений. Это событие позволяет вам изменить экземпляр\Elgg\Emailперед его передачей в транспорт электронной почты. Это событие можно использовать для изменения отправителя, получателя, темы, тела и/или заголовков письма.$paramsпусты. Значение$return— это экземпляр\Elgg\Email.- transport, system:email

Запускается
elgg_send_email(). Применяется ко всем исходящим системным письмам и письмам уведомлений. Это событие позволяет вам реализовать пользовательский транспорт электронной почты, например, доставку писем через сторонний прокси-сервис, такой как SendGrid или Mailgun. Обработчик должен вернутьtrue, чтобы указать, что письмо было доставлено.$paramsсодержит:email— экземпляр\Elgg\Email
- validate, system:email

Запускается
elgg_send_email(). Применяется ко всем исходящим системным письмам и письмам уведомлений. Это событие позволяет вам подавить или добавить в белый список исходящие письма, например, когда сайт находится в режиме разработки. Обработчик должен вернутьfalse, чтобы подавить доставку письма.$paramsсодержит:email— экземпляр\Elgg\Email
- message, system:email

Запускается обработчиком транспорта электронной почты по умолчанию (Elgg использует
symfomy/mailer). Применяется ко всем исходящим системным письмам и письмам уведомлений, которые не были доставлены с использованием события transport, system:email. Это событие позволяет вам изменить экземпляр\Symfony\Component\Mime\Emailперед его передачей в транспорт электронной почты Symfony.$paramsсодержит:email— экземпляр\Elgg\Email
События файлов
- download:url, file

- Позволяет плагинам фильтровать URL загрузки файла.
По умолчанию URL загрузки генерируется сервисом файлов.
Массив
$paramsвключает:entity— экземплярElggFileuse_cookie— использовать или нет куки для защиты ссылки загрузкиexpires— строковое представление того, когда ссылка загрузки должна истечь
- inline:url, file

- Позволяет плагинам фильтровать встроенный URL файла изображения.
По умолчанию встроенный URL генерируется сервисом файлов.
Массив
$paramsвключает:entity— экземплярElggFileuse_cookie— использовать или нет куки для защиты ссылки загрузкиexpires— строковое представление того, когда ссылка загрузки должна истечь
- mime_type, file

Верните mimetype для имени файла
$params['filename']с исходным именем файла$params['original_filename']и с mimetype по умолчанию, определённым как$params['default'].- simple_type, file

Событие предоставляет
$params['mime_type'](например,application/pdfилиimage/jpeg) и определяет общую категорию, такую какdocumentилиimage. Встроенный плагин file и другие сторонние плагины обычно хранят метаданныеsimpletypeна сущностях файлов и используют их при обслуживании иконок и построении фильтров и менюege*.- upload, file

Позволяет плагинам реализовывать пользовательскую логику для перемещения загруженного файла в экземпляр
ElggFile. Обработчик должен вернутьtrue, чтобы указать, что загруженный файл был перемещён. Обработчик должен вернутьfalse, чтобы указать, что загруженный файл не может быть перемещён. Другие возвраты будут указывать, чтоElggFile::acceptUploadedFileдолжен продолжить с логикой загрузки по умолчанию.Массив
$paramsвключает:file— экземплярElggFileдля записиupload— экземплярUploadedFileSymfony
- upload:after, file
Вызывается после того, как загруженный файл был записан в хранилище файлов. Получает экземпляр
ElggFile, в который был записан загруженный файл.ElggFileможет быть или не быть сущностью с GUID.
События действий
- action:validate, <action>

Запускается перед выполнением скрипта/контроллера действия. Это событие должно использоваться для проверки/изменения пользовательского ввода перед продолжением действия. Обработчик события может выбросить экземпляр
\Elgg\Exceptions\Http\ValidationExceptionили вернутьfalseдля прекращения дальнейшего выполнения.Массив
$paramsвключает:request— экземпляр\Elgg\Request
- action_gatekeeper:permissions:check, all

Запускается после проверки токена CSRF. Верните false, чтобы предотвратить проверку.
Ajax
- ajax_results, <event_type>*

Когда используется модуль
elgg/Ajax, это событие предоставляет доступ к объекту результатов, чтобы его можно было изменить/расширить. Обработчики получают запрос через$params['request'].Тип события зависит от вызова метода:
метод elgg/Ajax
тип события
action()
action:<action_name>
path()
<route_name>
view()
view:<view_name>
form()
form:<action_name>
Маршрутизация
- response, <route_name>

Фильтрует экземпляр
\Elgg\Http\ResponseBuilderперед его отправкой клиенту. Этот тип события будет использоваться только если путь не начинается с «action/» или «ajax/». Это событие можно использовать для изменения содержимого ответа, кода состояния, перенаправляющего URL или установки дополнительных заголовков ответа. Обработчики получают запрос через$params['request'].- response, form:<form_name>

Фильтрует экземпляр
\Elgg\Http\ResponseBuilderперед его отправкой клиенту. Применяется к запросу к/ajax/form/<form_name>. Это событие можно использовать для изменения содержимого ответа, кода состояния, перенаправляющего URL или установки дополнительных заголовков ответа. Обработчики получают запрос через$params['request'].- response, view:<view_name>

Фильтрует экземпляр
\Elgg\Http\ResponseBuilderперед его отправкой клиенту. Применяется к запросу к/ajax/view/<view_name>. Это событие можно использовать для изменения содержимого ответа, кода состояния, перенаправляющего URL или установки дополнительных заголовков ответа. Обработчики получают запрос через$params['request'].- route:config, <route_name>

Позволяет изменять конфигурацию маршрута перед его регистрацией. Это событие можно использовать для изменения пути, значений по умолчанию, требований, а также для установки/удаления промежуточного слоя. Обратите внимание, что обработчик для этого события должен быть зарегистрирован вне обработчика события
init, так как маршруты ядра регистрируются во время событияplugins_boot.- route:rewrite, <identifier>

Позволяет изменять относительный к сайту путь URL для входящего запроса. См. Маршрутизация для деталей. Обратите внимание, что обработчик для этого события должен быть зарегистрирован вне обработчика события
init, так как перезапись маршрутов происходит после завершения событияplugins_boot.- route:match, system

Когда для заданного пути URL не зарегистрирован маршрут, это событие запускается, чтобы позволить разработчикам предоставить конфигурацию маршрутизации для заданного пути. Это позволит обрабатывать более общие URL без необходимости регистрации каждого отдельного маршрута.
Массив
$paramsвключает:pathinfo— строка с путём URL для сопоставленияОжидаемый результат — это массив с определением маршрута. См. Маршрутизация для деталей. Также результат должен содержать ключ
routeс именем маршрута.
Представления
- attributes, htmlawed

Позволяет изменения отдельных атрибутов.
- allowed_styles, htmlawed

Настройте разрешённые стили для HTMLawed.
- config, htmlawed

Фильтрует массив
$configHTMLawed.- form:prepare:fields, <form_name>

Подготовьте значения полей для использования в форме. Например, при редактировании блога заполните это текущими значениями блога. Значения липкой формы будут автоматически добавлены к значениям полей (при наличии).
- head, page

В
elgg_view_page()фильтрует$vars['head']. Возвращаемое значение содержит массив с ключамиtitle,metasиlinks, гдеmetas— это массив элементов для форматирования как теги заголовка<meta>, аlinks— это массив элементов для форматирования как теги заголовка<link>. Каждый элемент meta и link содержит набор пар ключ/значение, которые форматируются в атрибуты тегов html, например.
return [
'title' => 'Current page title',
'metas' => [
'viewport' => [
'name' => 'viewport',
'content' => 'width=device-width',
]
],
'links' => [
'rss' => [
'rel' => 'alternative',
'type' => 'application/rss+xml',
'title' => 'RSS',
'href' => elgg_format_url($url),
],
'icon-16' => [
'rel' => 'icon',
'sizes' => '16x16',
'type' => 'image/png',
'href' => elgg_get_simplecache_url('graphics/favicon-16.png'),
],
],
];
- layout, page

В
elgg_view_layout()фильтрует имя макета. Массив$paramsвключает:identifier— ID отображаемой страницыsegments— сегменты URL отображаемой страницыдругие
$vars, полученныеelgg_view_layout()
- shell, page

В
elgg_view_page()фильтрует имя оболочки страницы- spec, htmlawed

Фильтрует строку
$specHTMLawed (по умолчанию пустая).- table_columns:call, <name>

Когда вызывается метод
elgg()->table_columns->$name(), это событие вызывается, чтобы позволить плагинам переопределить или предоставить реализацию. Обработчики получают аргументы метода через$params['arguments']и должны вернуть экземплярElgg\Views\TableColumn, если они хотят указать столбец напрямую.- view, <view_name>

Фильтрует возвращаемое содержимое представления
- view_vars, <view_name>

Фильтрует массив
$vars, переданный в представление
Поиск
- search:config, search_types

Реализовано в плагине search. Фильтрует массив пользовательских типов поиска. Это позволяет плагинам добавлять пользовательские типы поиска (например, поиск по тегам или местоположению). Добавление пользовательского типа поиска расширит пользовательский интерфейс плагина поиска соответствующими ссылками и списками.
- search:config, type_subtype_pairs

Реализовано в плагине search. Фильтрует пары тип/подтип сущности перед выполнением поиска сущности. Позволяет плагинам удалять определённые типы/подтипы сущности из результатов поиска, группировать несколько подтипов вместе или переупорядочивать секции поиска.
- search:fields, <entity_type>

Запускается
elgg_search(). Фильтрует поля поиска перед подготовкой предложений поиска. Значение$returnсодержит массив имён для каждого типа свойства сущности, которые должны быть сопоставлены с поисковым запросом. Массив$paramsсодержит массив параметров поиска, переданных и отфильтрованныхelgg_search().
return [
'attributes' => [],
'metadata' => ['title', 'description'],
'annotations' => ['revision'],
];
- search:fields, <entity_type>:<entity_subtype>

См. search:fields, <entity_type>
- search:fields, <search_type>

См. search:fields, <entity_type>
- search:format, entity

Реализовано в плагине search. Позволяет плагинам заполнять волатильные данные сущности перед их передачей в представление поиска. Это используется для выделения совпадений поиска, извлечения соответствующих подстрок в длинных текстовых полях и т.д.
- search:options, <entity_type>

Запускается
elgg_search(). Подготавливает предложения поиска (опции) для передачи вelgg_get_entities().- search:options, <entity_type>:<entity_subtype>

См. search:options, <entity_type>
- search:options, <search_type>

См. search:options, <entity_type>
- search:params, <search_type>

Запускается
elgg_search(). Фильтрует параметры поиска (запрос, сортировка, поля поиска и т.д.) перед подготовкой предложений поиска для заданного типа поиска. Ядро Elgg предоставляет поддержку только для типа поискаentities.- search:results, <search_type>

Запускается
elgg_search(). Получает нормализованные опции, подходящие для вызоваelgg_get_entities(), и должен вернуть массив сущностей, соответствующих опциям поиска. Это событие предназначено для использования плагинами, интегрирующими сторонние сервисы индексации, такие как Solr и Elasticsearch.
Другое
- config, comments_per_page

Фильтрует количество комментариев, отображаемых на странице. По умолчанию 25.
$params['entity']будет содержать содержащую сущность или null, если не предоставлено. Используйтеelgg_comments_per_page(), чтобы получить значение.- config, comments_latest_first

Фильтрует порядок комментариев. По умолчанию
trueдля отображения последних первыми.$params['entity']будет содержать содержащую сущность или null, если не предоставлено.- default, access

В
elgg_get_default_access()это событие фильтрует возвращаемое значение, поэтому его можно использовать для изменения значения по умолчанию в представлении input/access. Для плагинов ядра значение «input_params» имеет ключи «entity» (ElggEntity|false), «entity_type» (string), «entity_subtype» (string), «container_guid» (int). Пустое значение сущности обычно означает, что форма предназначена для создания нового объекта.- classes, icon

Может использоваться для фильтрации классов CSS, применяемых к глифам иконок. По умолчанию Elgg использует FontAwesome. Плагины могут использовать это событие для переключения на другое семейство шрифтов и переназначения классов иконок.
- entity:icon:sizes, <entity_type>

Запускается
elgg_get_icon_sizes()и устанавливает специфичные для типа/подтипа сущности размеры иконок.entity_subtypeбудет передан с массивом$paramsв обратный вызов.- entity:<icon_type>:sizes, <entity_type>

Позволяет фильтровать размеры для пользовательских типов иконок, см.
entity:icon:sizes, <entity_type>.Событие должно вернуть ассоциативный массив, где ключи — это имена размеров иконок (например, «large»), а значения — массивы со следующими ключами:
w— ширина изображения в пикселяхh— высота изображения в пикселяхsquare— должно ли соотношение сторон быть квадратным (true/false)upscale— должно ли изображение быть увеличено, если оно меньше заданной ширины и высоты (true/false)crop— разрешено ли обрезание для этого размера изображения (true/false, по умолчанию: true)Если массив конфигурации для размера изображения пуст, изображение будет сохранено как точная копия исходника без изменения размера или обрезки.
Пример:
return [
'small' => [
'w' => 60,
'h' => 60,
'square' => true,
'upscale' => true,
],
'large' => [
'w' => 600,
'h' => 600,
'upscale' => false,
],
'original' => [],
];
- entity:icon:url, <entity_type>

Запускается при запросе URL иконки сущности, см. иконки сущностей. Обратный вызов должен вернуть URL для иконки размера
$params['size']для сущности$params['entity']. Следующие параметры доступны через массив$params:- сущность
Сущность, для которой запрашивается URL иконки.
- тип представления
Тип представления, например
'default'или'json'.- размер
Запрашиваемый размер, см. иконки сущностей для возможных значений.
Пример того, как можно использовать иконку Gravatar по умолчанию для пользователей, которые ещё не загрузили аватар:
// Priority 600 so that handler is triggered after avatar handler
elgg_register_event_handler('entity:icon:url', 'user', 'gravatar_icon_handler', 600);
/**
* Default to icon from gravatar for users without avatar.
*
* @param \Elgg\Event $event 'entity:icon:url', 'user'
*
* @return string|null
*/
function gravatar_icon_handler(\Elgg\Event $event): ?string {
$entity = $event->getEntityParam();
$size = $event->getParam('size');
// Allow users to upload avatars
if ($entity->hasIcon($size)) {
return null;
}
// Generate gravatar hash for user email
$hash = md5(strtolower(trim($entity->email)));
// Default icon size
$size = '150x150';
// Use configured size if possible
$config = elgg_get_icon_sizes('user');
$key = $event->getParam('size');
if (isset($config[$key])) {
$size = $config[$key]['w'] . 'x' . $config[$key]['h'];
}
// Produce URL used to retrieve icon
return "https://www.gravatar.com/avatar/{$hash}?s={$size}";
}
- entity:<icon_type>:url, <entity_type>

Позволяет фильтровать URL для пользовательских типов иконок, см.
entity:icon:url, <entity_type>- entity:icon:file, <entity_type>

Запускается
ElggEntity::getIcon()и позволяет плагинам предоставить альтернативный объектElggIcon, который указывает на пользовательское расположение иконки в хранилище файлов. Обработчик должен вернуть экземплярElggIcon, иначе будет выброшено исключение.- entity:<icon_type>:file, <entity_type>

Позволяет фильтровать объект файла иконки для пользовательских типов иконок, см.
entity:icon:file, <entity_type>- entity:<icon_type>:prepare, <entity_type>

Запускается методами
ElggEntity::saveIcon*()и может использоваться для подготовки изображения из загруженного/связанного файла. Это событие может использоваться, например, для поворота изображения перед изменением его размера/обрезкой, или для извлечения кадра изображения, если загруженный файл является видео. Обработчик должен вернуть экземплярElggFileсsimpletype, который разрешается вimage. Значение$return, передаваемое событию, — это экземплярElggFile, указывающий на временную копию загруженного/связанного файла.Массив
$paramsсодержит:entity— сущность, которой принадлежат иконкиfile— исходный входной файл до того, как он был изменён другими событиями
- entity:<icon_type>:save, <entity_type>

Запускается методами
ElggEntity::saveIcon*()и может использоваться для применения пользовательской логики манипуляций с изображением при изменении размера/обрезке иконок. Обработчик должен вернутьtrue, чтобы предотвратить изменение размера/обрезку иконок основными API. Массив$paramsсодержит:entity— сущность, которой принадлежат иконкиfile— объектElggFile, указывающий на файл изображения, который будет использоваться как источник для иконокx1,y1,x2,y2— координаты обрезки
- entity:<icon_type>:saved, <entity_type>

Запускается методами
ElggEntity::saveIcon*()после создания иконок. Это событие может использоваться плагинами для создания элементов ленты, обновления координат обрезки для пользовательских типов иконок и т.д. Обработчик может получить доступ к созданным иконкам с помощьюElggEntity::getIcon(). Массив$paramsсодержит:entity— сущность, которой принадлежат иконкиx1,y1,x2,y2— координаты обрезки
- entity:<icon_type>:delete, <entity_type>

Запускается методом
ElggEntity::deleteIcon()и может использоваться для операций очистки. Это событие запускается перед удалением иконок. Обработчик может вернутьfalse, чтобы предотвратить удаление иконок. Массив$paramsсодержит:entity— сущность, которой принадлежат иконки
- entity:url, <entity_type>:<entity_subtype>

Вернуть URL для сущности
$params['entity']. Примечание: как правило, лучше переопределить методgetUrl()класса ElggEntity. Это событие следует использовать, когда невозможно создать подкласс (например, если вы хотите расширить встроенный плагин без переопределения множества представлений).- entity:url, <entity_type>

Вернуть URL для сущности
$params['entity']. Примечание: как правило, лучше переопределить методgetUrl()класса ElggEntity. Это событие следует использовать, когда невозможно создать подкласс (например, если вы хотите расширить встроенный плагин без переопределения множества представлений).- extender:url, <annotation|metadata>

Вернуть URL для аннотации или метаданных
$params['extender'].- fields, <entity_type>:<entity_subtype>

Вернуть массив полей, пригодных для использования в
elgg_view_field(). Результат должен быть возвращён в виде массива полей. Для каждого поля необходимо указатьnameи#type.
$result = [];
$result[] = [
'#type' => 'longtext',
'name' => 'description',
];
return $result;
- get_list, default_widgets

Фильтрует список виджетов по умолчанию для добавления новым зарегистрированным пользователям. Список представляет собой массив массивов в формате:
array(
'name' => elgg_echo('name'),
'widget_columns' => 3,
'widget_context' => $widget_context,
'event_name' => $event_name,
'event_type' => $event_type,
'entity_type' => $entity_type,
'entity_subtype' => $entity_subtype,
)
- handlers, widgets

Запускается, когда требуется список доступных виджетов. Плагины могут условно добавлять или удалять виджеты из этого списка или изменять атрибуты существующих виджетов, такие как
contextилиmultiple.- maintenance:allow, url

- Вернуть логическое значение, если URL
$params['current_url']и путь$params['current_path'] разрешены в режиме обслуживания.
- Вернуть логическое значение, если URL
- plugin_setting, <entity type>

Может использоваться для изменения значения сохраняемой настройки
Параметры содержат: -
entity—ElggEntity, в которой сохраняется настройка плагина -plugin_id— ID плагина, для которого сохраняется настройка -name— имя сохраняемой настройки -value— исходное значение сохраняемой настройкиВозвращаемое значение должно быть скалярным, чтобы его можно было сохранить в базе данных. Если это не так, будет записана ошибка.
- public_pages, walled_garden

Фильтрует список URL (путей), которые могут просматривать неавторизованные пользователи в режиме закрытого сада. Обработчики должны вернуть массив строк регулярных выражений, которые разрешат доступ при совпадении. Обратите внимание, что системные публичные маршруты передаются в событие как значение по умолчанию, и плагины должны следить за тем, чтобы случайно не переопределить эти значения.
Массив
$paramsсодержит:url— URL страницы, проверяемой на общедоступность
- relationship:url, <relationship_name>

Фильтрует URL для объекта отношения
$params['relationship'].- robots.txt, site

Фильтрует значения robots.txt для
$params['site'].- setting, plugin

Фильтрует настройки плагина.
$paramsсодержит:plugin— экземпляр ElggPluginplugin_id— ID плагинаname— имя настройкиvalue— значение для установки
- to:object, <entity_type|metadata|annotation|relationship|river_item>
Преобразует сущность
$params['entity']в объект StdClass. Это используется в основном для экспорта свойств сущности в переносимые форматы данных, такие как JSON и XML.
Плагины
Страницы сайта
- names, externalpages

Возвращает набор разрешённых имён для внешних страниц
Группы
- tool_options, group

Фильтрует коллекцию инструментов, доступных в определённой группе:
$return— это\Elgg\Collections\Collection<\Elgg\Groups\Tool>, коллекция групповых инструментов.Массив
$paramsсодержит:entity—\ElggGroup
Веб-сервисы
- register, api_methods``

Запускается при создании ApiRegistrationService, что позволяет добавлять/удалять/редактировать конфигурации веб-сервисов
- rest, init

Запускается обработчиком REST веб-сервисов. Плагины могут настроить собственные обработчики аутентификации, затем вернуть
true, чтобы предотвратить регистрацию обработчиков по умолчанию.- rest:output, <method_name>

Фильтрует результат (и, соответственно, вывод) метода API