EVENT-LIST-001

onContentPrepare / onAfterDispatch / …

Core plugin event names (J3 methods → subscribers)

The event names still fire. The implementation must become a subscriber on native Joomla 6. Search this entry for any onContent*/onUser*/onAfter* method.

onContentPrepare / onAfterDispatch / …SubscriberInterface::getSubscribedEvents()

Dies at Joomla 5 → 6J3: Works nativelyJ4: Changed behaviourJ6: Changed behaviourBC plugin: partialArchitecture change — no auto-fixEvents / plugins

Symptoms people search

onContentPrepare not firing · onAfterDispatch · onBeforeCompileHead · onUserLogin · onContentBeforeSave

Replace this code

Swap onContentPrepare / onAfterDispatch / … for SubscriberInterface::getSubscribedEvents().

Joomla 3

Remove or stop calling this

public function onAfterInitialise() {}
public function onAfterRoute() {}
public function onAfterDispatch() {}
public function onBeforeCompileHead() {}
public function onContentPrepare($ctx, &$article, &$params, $page=0) {}
public function onContentAfterTitle(...) {}
public function onContentBeforeDisplay(...) {}
public function onContentAfterDisplay(...) {}
public function onContentPrepareForm($form, $data) {}
public function onContentBeforeSave(...) {}
public function onContentAfterSave(...) {}
public function onContentBeforeDelete(...) {}
public function onContentChangeState(...) {}
public function onUserLogin(...) {}
public function onUserLogout(...) {}
public function onUserAfterSave(...) {}
public function onExtensionAfterInstall(...) {}
public function onDisplay(...) {}

Joomla 4 / 6

Use this instead

Map each name in getSubscribedEvents() to a method that receives a typed Event. Do not take &$article by reference.

How to fix it

  1. 1Implement SubscriberInterface.
  2. 2Register every event you handled as a J3 method.
  3. 3Read arguments from the Event object.

Also known as

onAfterInitialise · onAfterRoute · onAfterDispatch · onBeforeCompileHead · onAfterRender · onContentPrepare · onContentAfterTitle · onContentBeforeDisplay · onContentAfterDisplay · onContentPrepareForm · onContentBeforeSave · onContentAfterSave · onContentBeforeDelete · onContentChangeState · onUserLogin · onUserLogout · onUserAfterSave · onExtensionAfterInstall · onDisplay

There is no 1:1 swap for this one. The architecture changed. If you cannot rewrite it, Infyways can.

Related issues

Get in touch

Have a project in mind? Let's talk about it.

Tell us what you're building. Whether it's a new site, an online store, a mobile app, or something that needs AI under the hood, we'll get back to you within a business day.

Free consultation
No commitment, no pressure
Reply within 24 hours
Usually much faster

Prefer a direct conversation?

Request a project quote

Tell us about your project

Fill out the quick form and we'll reach out.