Elgg has a set of Plugin Hooks that are triggered from the core that allows plugins to be called when certain things happen. Below is a complete list of plugin hooks provided by the Elgg core. It is possible that other plugins provide their own hooks that can be used by other plugins. To find where these are triggered, do a search for 'trigger_plugin_hook' in the Elgg source.
System hooks
- 'index', 'system'
- 'cron', <period>
- 'siteid', 'system'
- 'display', 'view'
- 'validate', 'input'
- 'geocode', 'location'
- 'diagnostics:report', 'all'
- 'gc', 'system'
User hooks
- 'usersettings:save', 'user'
- 'unvalidated_login_attempt', 'user'
- 'unvalidated_requestnewpassword', 'user'
- 'access:collections:write', 'user'
- 'registeruser:validate:username', 'all'
- 'registeruser:validate:password', 'all'
- 'registeruser:validate:email', 'all'
- 'session:get', <key>
Object hooks
- 'comments', <entity_type>
- 'comments:count', <entity_type>
Action hooks
- 'action', <action>
- 'action_gatekeeper:permissions:check', 'all'
Permission hooks
- 'container_permissions_check', <entity_type>
- 'permissions_check', <entity_type>
- 'permissions_check:metadata', <entity_type>
- 'entity:icon:url', <entity_type>
- 'import', 'all'
- 'export', 'all'
- 'object:notifications', <object_subtype>
- 'notify:entity:message', <entity_type> or is it <object_subtype>
- 'plugin:usersetting', 'user'
- 'plugin:setting', 'plugin'
- 'volatile', 'metadata'
- 'search'
- 'profile:fields', 'group'
- 'profile:fields', 'profile'
- 'reportedcontent:add', <entity_type>
- 'reportedcontent:archive', <entity_type>
- 'reportedcontent:delete', <entity_type>