Sunday, April 19, 2026
Joomla

Plugin Event Reference

Browse all Joomla plugin events across plugin groups with signatures and use cases.

Joomla Plugin Events Reference — How to Use

Joomla's plugin system is the primary extension mechanism for hooking into the CMS lifecycle without modifying core files. Every Joomla plugin belongs to a plugin group (system, content, user, authentication, etc.) and responds to one or more plugin events. When Joomla fires an event, every enabled plugin in the relevant group that declares that method is called automatically.

Use this reference to find the right event for your use case. Each entry shows the plugin group, the PHP method signature you need to implement, the parameters Joomla passes to your method, what return value (if any) Joomla expects, and a minimal code example.

Plugin Groups Explained

  • system — The most flexible group. System plugins fire on lifecycle events that happen on every page load: after routing, before rendering, and after rendering. Use for global modifications.
  • content — Fire during content item display and save operations. Use to modify article content, inject HTML, or intercept save events.
  • user — Fire during login, logout, and profile save. Use for custom authentication flows, user synchronisation, and audit logging.
  • authentication — Handle the actual authentication step. Return a failure result to deny login.
  • editors — Integrate a WYSIWYG editor into Joomla's editor API. Advanced use case.
  • finder — Integrate content types with Joomla's Smart Search (com_finder) indexer.
  • privacy — Respond to GDPR-related data export and deletion requests.

Creating a Plugin

A Joomla plugin is a PHP class that extends CMSPlugin (Joomla 4+) or JPlugin (Joomla 3). Declare your event handler as a public method with the exact event name as the method name. Joomla's event dispatcher calls it automatically when the event fires.

Joomla 4+ Event System

Joomla 4 introduced a new event dispatcher based on the Joomla\Event library. In Joomla 4+, you can also register plugins using the new SubscriberInterface for more explicit event registration. The classic method-name approach still works in both Joomla 4 and 5 for backwards compatibility.