Список событий в ядре

Для получения дополнительной информации о том, как работают события, посетите События.

Примечание

Некоторые события помечены последовательность, это означает, что эти события также имеют события :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 — временная метка, когда была запущена команда cron

  • dt — объект \DateTimeImmutable, когда была запущена команда cron

  • logger — экземпляр \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 — подготавливаемая строка HTML

  • options — опции подготовки

prepare, menu:<menu_name> результаты

Фильтрует массив секций меню перед их отображением. Каждая секция — это строковый ключ, сопоставляемый с областью элементов меню. Это хорошее событие для сортировки, добавления, удаления и изменения элементов меню. Запускается elgg_view_menu() и elgg()->menus->prepareMenu().

Массив $params будет содержать:

  • selected_itemElggMenuItem, выбранный в меню, если есть

Возвращаемое значение — это экземпляр \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“] будет использоваться для вкладки all

  • params[„mine_link“] будет использоваться для вкладки mine

  • params[„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_collectionElggAccessCollection

access_collection:name, access_collection результаты

Может использоваться для фильтрации отображаемого имени (читаемого уровня доступа) списка контроля доступа.

Массив $params будет содержать:

  • access_collectionElggAccessCollection

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 — псевдоним основной таблицы, используемой в предложении select

  • ignore_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 — экземпляр ElggFile

  • user — пользователь, который скачает файл

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, описывающий событие уведомления

  • originsubscriptions_service или instant_notifications

  • methods_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 — язык уведомления (язык получателя)

  • originsubscriptions_service или instant_notifications

  • handler — экземпляр \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 — язык уведомления (язык получателя)

  • originsubscriptions_service или instant_notifications

  • handler — экземпляр \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 — экземпляр ElggFile

  • use_cookie — использовать или нет куки для защиты ссылки загрузки

  • expires — строковое представление того, когда ссылка загрузки должна истечь

inline:url, file результаты
Позволяет плагинам фильтровать встроенный URL файла изображения.

По умолчанию встроенный URL генерируется сервисом файлов.

Массив $params включает:

  • entity — экземпляр ElggFile

  • use_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 — экземпляр UploadedFile Symfony

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 результаты

Фильтрует массив $config HTMLawed.

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 результаты

Фильтрует строку $spec HTMLawed (по умолчанию пустая).

table_columns:call, <name> результаты

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

view, <view_name> результаты

Фильтрует возвращаемое содержимое представления

view_vars, <view_name> результаты

Фильтрует массив $vars, переданный в представление

Другое

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']

разрешены в режиме обслуживания.

plugin_setting, <entity type> результаты

Может использоваться для изменения значения сохраняемой настройки

Параметры содержат: - entityElggEntity, в которой сохраняется настройка плагина - 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 — экземпляр ElggPlugin

  • plugin_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