<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Torkil</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Torkil"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Torkil"/>
	<updated>2026-06-07T09:41:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9695</id>
		<title>Plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9695"/>
		<updated>2008-07-31T12:55:13Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Changed the last of the links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Bin]]&lt;br /&gt;
====== Plugins ======&lt;br /&gt;
Joomla! plugins enable you to execute code in response to certain events, either Joomla! core events or custom events that are triggered from your own code.  This is a powerful way of extending the basic Joomla! functionality.  To see where plugins fit in with the overall Joomla! architecture, look at [[http://dev.joomla.org/content/view/1137/80/|Framework overview]].&lt;br /&gt;
&lt;br /&gt;
The Joomla! plugin architecture follows the [[http://en.wikipedia.org/wiki/Observer_pattern|Observer]] design pattern.  The [[references:joomla.framework:application:jplugin|JPlugin]] class is derived from [[references:joomla.framework:base:jobserver|JObserver]] and provides the means to register custom plugin code with core or custom events.  The [[references:joomla.framework:application:jeventdispatcher|JEventDispatcher]] class, derived from [[references:joomla.framework:base:jobservable|JObservable]], is an event handler which calls all plugins registered for a particular event, when that event is triggered.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:create_plugin|How to create your own plugin]]&lt;br /&gt;
  * [[plugins:using_plugins|How to use plugins in your own code]]&lt;br /&gt;
  * [[plugins:plugins_part2|Creating an Authentication Plugin]]&lt;br /&gt;
&lt;br /&gt;
Useful reference: [[http://codex.gallery2.org/index.php/Gallery2:Embedding:Event-Based_Loose-Coupled_Integration|Gallery 2: Embedding: Event-Based Loose-Coupled Integration]]&lt;br /&gt;
&lt;br /&gt;
Prior to Joomla! 1.5 plugins were known as mambots.  Mambots were able to change content only and were based on certain signal words.  Since then their scope has been stretched and extended to such an extent that to enhance the meaning of the new functionality the developers decided to change the name from mambots to plugins.  Joomla! 1.5 includes legacy support for Joomla! 1.0 mambots.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
======Events======&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&lt;br /&gt;
&lt;br /&gt;
  * [[Reference:System_Events_for_Plugin_System|System events]]&lt;br /&gt;
  * [[Reference:User_Events_for_Plugin_System|User events]]&lt;br /&gt;
  * [[Reference:Editor_Events_for_Plugin_System|Editor events]]&lt;br /&gt;
  * [[Reference:Content Events for Plugin System|Content events]]&lt;br /&gt;
&lt;br /&gt;
This is an alphabetical list of the core events in Joomla! 1.5 together with the group name to which each belongs.  Each event name links to more detailed information.&lt;br /&gt;
&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterContentSave|onAfterContentSave]] (content)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onAfterDeleteUser|onAfterDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplay|onAfterDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayTitle|onAfterDisplayTitle]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayContent|onAfterDisplayContent]] (content)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterInitialise|onAfterInitialise]] (system)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterRoute|onAfterRoute]] (system)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterDispatch|onAfterDispatch]] (system)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterRender|onAfterRender]] (system)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onAfterStoreUser|onAfterStoreUser]] (user)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onAuthenticate|onAuthenticate]] (authentication)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onAuthenticateFailure|onAuthenticateFailure]] (authentication)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeContentSave|onBeforeContentSave]] (content)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onBeforeDeleteUser|onBeforeDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplay|onBeforeDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplayContent|onBeforeDisplayContent]] (content)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onBeforeStoreUser|onBeforeStoreUser]] (user)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onCustomEditorButton|onCustomEditorButton]] (editors-xtd)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onDisplay|onDisplay]] (editors)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onGetContent|onGetContent]] (editors)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onGetInsertMethod|onGetInsertMethod]] (editors)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onGetWebServices|onGetWebServices]] (xmlrpc)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onInit|onInit]] (editors)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onLoginUser|onLoginUser]] (user)&lt;br /&gt;
  *[[Reference:User_Events_for_Plugin_System#onLogoutUser|onLogoutUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onPrepareContent|onPrepareContent]] (content)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onSave|onSave]] (editors)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onSearch|onSearch]] (search)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onSearchAreas|onSearchAreas]] (search)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onSetContent|onSetContent]] (editors)&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/User&amp;diff=9693</id>
		<title>J1.5:Plugin/Events/User</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/User&amp;diff=9693"/>
		<updated>2008-07-31T12:53:58Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Tutorial:User Events for Plugin System moved to Reference:User Events for Plugin System: Renaming page to the same naming convention as the other plugin type references.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
====5.3 User Events for Plugin System====&lt;br /&gt;
&lt;br /&gt;
===5.3.1 Overview===&lt;br /&gt;
In a standard installation of Joomla! 1.5 we have several predefined events which, when triggered, call functions in the associated plugins. For more information on plugins,&lt;br /&gt;
look [[plugins:create_plugin|here]].&lt;br /&gt;
&lt;br /&gt;
The user events are divided into two parts. First we have the events used while &lt;br /&gt;
authentication of a user takes place:&lt;br /&gt;
  *onLoginUser&lt;br /&gt;
  *onLogoutUser&lt;br /&gt;
  *onAuthenticate&lt;br /&gt;
  *onAuthenticateFailure&lt;br /&gt;
  &lt;br /&gt;
Second we have the events triggered during user management:&lt;br /&gt;
  *onBeforeStoreUser&lt;br /&gt;
  *onAfterStoreUser&lt;br /&gt;
  *onBeforeDeleteUser&lt;br /&gt;
  *onAfterDeleteUser&lt;br /&gt;
&lt;br /&gt;
===5.3.2 onLoginUser===&lt;br /&gt;
==5.3.2.1 Description==&lt;br /&gt;
This event is triggered after the user is authenticated against the Joomla! user-base.&lt;br /&gt;
If one plugin returns false, the entire authentication process fails.&lt;br /&gt;
==5.3.2.2 Parameters==&lt;br /&gt;
Two parameters: credentials, and remember.\\&lt;br /&gt;
Credentials is an array with this structure:\\&lt;br /&gt;
[&#039;username&#039;]\\&lt;br /&gt;
[&#039;password&#039;]\\&lt;br /&gt;
Remember is a boolean, set to true if the login needs to be remembered by the application.&lt;br /&gt;
==5.3.2.3 Return Value==&lt;br /&gt;
Boolean&lt;br /&gt;
==5.3.2.4 Used in files==&lt;br /&gt;
  *libraries/joomla/application/application.php&lt;br /&gt;
  *plugins/user/joomla.php&lt;br /&gt;
==5.3.2.5 Examples==&lt;br /&gt;
  *plugins/user/example.php&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
===5.3.3 onLogoutUser===&lt;br /&gt;
==5.3.3.1 Description==&lt;br /&gt;
This event is triggered before the user is logged out of the system. If one plugin&lt;br /&gt;
returns false, the global logout fails.&lt;br /&gt;
==5.3.3.2 Parameters==&lt;br /&gt;
Array of credentials. Structure:\\&lt;br /&gt;
[&#039;username&#039;]\\&lt;br /&gt;
[&#039;id&#039;]\\&lt;br /&gt;
==5.3.3.3 Return Value==&lt;br /&gt;
Boolean&lt;br /&gt;
==5.3.3.4 Used in files==&lt;br /&gt;
  *libraries/joomla/application/application.php&lt;br /&gt;
  *plugins/user/joomla.php&lt;br /&gt;
==5.3.3.5 Examples==&lt;br /&gt;
  *plugins/user/example.php&lt;br /&gt;
&lt;br /&gt;
===5.3.4 onAuthenticate===&lt;br /&gt;
==5.3.4.1 Description==&lt;br /&gt;
This event is triggered to verify that a set of login credentials is valid.&lt;br /&gt;
==5.3.4.2 Parameters==&lt;br /&gt;
Array of credentials. Structure:\\&lt;br /&gt;
[&#039;username&#039;]\\&lt;br /&gt;
[&#039;password&#039;]\\&lt;br /&gt;
Alternative authentication mechanisms can supply additional credentials.&lt;br /&gt;
&lt;br /&gt;
==5.3.4.3 Return Value==&lt;br /&gt;
An array of [[references:joomla.framework:user:jauthenticateresponse|JAuthenticateResponse]] objects detailing the results of each called plugin, including success or failure.&lt;br /&gt;
==5.3.4.4 Used in files==&lt;br /&gt;
  *libraries/joomla/application/user/authentication.php&lt;br /&gt;
  *plugins/authentication/gmail.php&lt;br /&gt;
  *plugins/authentication/joomla.php&lt;br /&gt;
  *plugins/authentication/ldap.php&lt;br /&gt;
==5.3.4.5 Examples==&lt;br /&gt;
  *plugins/authentication/example.php&lt;br /&gt;
&lt;br /&gt;
===5.3.5 onLoginFailure===&lt;br /&gt;
==5.3.5.1 Description==&lt;br /&gt;
This event is triggered whenever a user authentication request is failed by any plugin.&lt;br /&gt;
==5.3.5.2 Parameters==&lt;br /&gt;
Two parameters. The credentials array for the user (see onAuthenticate), and the&lt;br /&gt;
[[references:joomla.framework:user:jauthenticateresponse|JAuthenticateResponse]] that caused the failure.&lt;br /&gt;
==5.3.5.3 Return Value==&lt;br /&gt;
Unknown. The return value appears to be ignored in any case.&lt;br /&gt;
==5.3.5.4 Used in files==&lt;br /&gt;
  *libraries/joomla/application/user/authentication.php&lt;br /&gt;
&lt;br /&gt;
===5.3.6 onBeforeStoreUser===&lt;br /&gt;
==5.3.6.1 Description==&lt;br /&gt;
This event is triggered before a new user is stored in the database.&lt;br /&gt;
==5.3.6.2 Parameters==&lt;br /&gt;
Two parameters:&lt;br /&gt;
  *An associative array of the columns in the user table.&lt;br /&gt;
  *A unique identifier for this user.&lt;br /&gt;
==5.3.6.3 Return Value==&lt;br /&gt;
None&lt;br /&gt;
==5.3.6.4 Used in files==&lt;br /&gt;
  *libraries/joomla/user/user.php&lt;br /&gt;
==5.3.6.5 Examples==&lt;br /&gt;
  *plugins/user/example.php&lt;br /&gt;
&lt;br /&gt;
===5.3.7 onAfterStoreUser===&lt;br /&gt;
==5.3.7.1 Description==&lt;br /&gt;
This event is triggered after a new user has been stored in the database.&lt;br /&gt;
==5.3.7.2 Parameters==&lt;br /&gt;
Two parameters:&lt;br /&gt;
  *An associative array of the columns in the user table.&lt;br /&gt;
  *A unique identifier for this user.&lt;br /&gt;
==5.3.7.3 Return Value==&lt;br /&gt;
None&lt;br /&gt;
==5.3.7.4 Used in files==&lt;br /&gt;
  *libraries/joomla/user/user.php&lt;br /&gt;
==5.3.7.5 Examples==&lt;br /&gt;
  *plugins/user/example.php&lt;br /&gt;
&lt;br /&gt;
===5.3.8 onBeforeDeleteUser===&lt;br /&gt;
==5.3.8.1 Description==&lt;br /&gt;
The event is triggered when a user is about to be deleted from the system.&lt;br /&gt;
==5.3.8.2 Parameters==&lt;br /&gt;
An associative array containing user information. Structure:\\&lt;br /&gt;
[&#039;id&#039;]\\&lt;br /&gt;
==5.3.8.3 Return Value==&lt;br /&gt;
None.&lt;br /&gt;
==5.3.8.4 Used in files==&lt;br /&gt;
  *libraries/joomla/user/user.php&lt;br /&gt;
  *plugins/user/joomla.php&lt;br /&gt;
==5.3.8.5 Examples==&lt;br /&gt;
  *plugins/user/example.php&lt;br /&gt;
&lt;br /&gt;
===5.3.9 onAfterDeleteUser===&lt;br /&gt;
==5.3.9.1 Description==&lt;br /&gt;
The event is triggered after a user has been deleted from the system.&lt;br /&gt;
==5.3.9.2 Parameters==&lt;br /&gt;
Three parameters: user information, delete result, and error result.&lt;br /&gt;
User information is an associative array. Structure:\\&lt;br /&gt;
[&#039;id&#039;]\\&lt;br /&gt;
Delete result is boolean true if the delete succeeded or an error message on failure.\\&lt;br /&gt;
Error result is a [[references:joomla.framework:utilities:jerror|JError]] object detailing the error, if any.&lt;br /&gt;
==5.3.9.3 Return Value==&lt;br /&gt;
None.&lt;br /&gt;
==5.3.9.4 Used in files==&lt;br /&gt;
  *libraries/joomla/user/user.php&lt;br /&gt;
  *plugins/user/joomla.php&lt;br /&gt;
==5.3.9.5 Examples==&lt;br /&gt;
  *plugins/user/example.php&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9690</id>
		<title>Plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9690"/>
		<updated>2008-07-31T12:49:35Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Corrected more links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Bin]]&lt;br /&gt;
====== Plugins ======&lt;br /&gt;
Joomla! plugins enable you to execute code in response to certain events, either Joomla! core events or custom events that are triggered from your own code.  This is a powerful way of extending the basic Joomla! functionality.  To see where plugins fit in with the overall Joomla! architecture, look at [[http://dev.joomla.org/content/view/1137/80/|Framework overview]].&lt;br /&gt;
&lt;br /&gt;
The Joomla! plugin architecture follows the [[http://en.wikipedia.org/wiki/Observer_pattern|Observer]] design pattern.  The [[references:joomla.framework:application:jplugin|JPlugin]] class is derived from [[references:joomla.framework:base:jobserver|JObserver]] and provides the means to register custom plugin code with core or custom events.  The [[references:joomla.framework:application:jeventdispatcher|JEventDispatcher]] class, derived from [[references:joomla.framework:base:jobservable|JObservable]], is an event handler which calls all plugins registered for a particular event, when that event is triggered.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:create_plugin|How to create your own plugin]]&lt;br /&gt;
  * [[plugins:using_plugins|How to use plugins in your own code]]&lt;br /&gt;
  * [[plugins:plugins_part2|Creating an Authentication Plugin]]&lt;br /&gt;
&lt;br /&gt;
Useful reference: [[http://codex.gallery2.org/index.php/Gallery2:Embedding:Event-Based_Loose-Coupled_Integration|Gallery 2: Embedding: Event-Based Loose-Coupled Integration]]&lt;br /&gt;
&lt;br /&gt;
Prior to Joomla! 1.5 plugins were known as mambots.  Mambots were able to change content only and were based on certain signal words.  Since then their scope has been stretched and extended to such an extent that to enhance the meaning of the new functionality the developers decided to change the name from mambots to plugins.  Joomla! 1.5 includes legacy support for Joomla! 1.0 mambots.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
======Events======&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&lt;br /&gt;
&lt;br /&gt;
  * [[Reference:System_Events_for_Plugin_System|System events]]&lt;br /&gt;
  * [[plugins:user_events|User events]]&lt;br /&gt;
  * [[Reference:Editor_Events_for_Plugin_System|Editor events]]&lt;br /&gt;
  * [[Reference:Content Events for Plugin System|Content events]]&lt;br /&gt;
&lt;br /&gt;
This is an alphabetical list of the core events in Joomla! 1.5 together with the group name to which each belongs.  Each event name links to more detailed information.&lt;br /&gt;
&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterContentSave|onAfterContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onAfterDeleteUser|onAfterDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplay|onAfterDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayTitle|onAfterDisplayTitle]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayContent|onAfterDisplayContent]] (content)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterInitialise|onAfterInitialise]] (system)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterRoute|onAfterRoute]] (system)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterDispatch|onAfterDispatch]] (system)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onAfterRender|onAfterRender]] (system)&lt;br /&gt;
  *[[plugins:user_events#onAfterStoreUser|onAfterStoreUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticate|onAuthenticate]] (authentication)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticateFailure|onAuthenticateFailure]] (authentication)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeContentSave|onBeforeContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeDeleteUser|onBeforeDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplay|onBeforeDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplayContent|onBeforeDisplayContent]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeStoreUser|onBeforeStoreUser]] (user)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onCustomEditorButton|onCustomEditorButton]] (editors-xtd)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onDisplay|onDisplay]] (editors)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onGetContent|onGetContent]] (editors)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onGetInsertMethod|onGetInsertMethod]] (editors)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onGetWebServices|onGetWebServices]] (xmlrpc)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onInit|onInit]] (editors)&lt;br /&gt;
  *[[plugins:user_events#onLoginUser|onLoginUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onLogoutUser|onLogoutUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onPrepareContent|onPrepareContent]] (content)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onSave|onSave]] (editors)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onSearch|onSearch]] (search)&lt;br /&gt;
  *[[Reference:System_Events_for_Plugin_System#onSearchAreas|onSearchAreas]] (search)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onSetContent|onSetContent]] (editors)&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9689</id>
		<title>Plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9689"/>
		<updated>2008-07-31T12:48:27Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Corrected more links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Bin]]&lt;br /&gt;
====== Plugins ======&lt;br /&gt;
Joomla! plugins enable you to execute code in response to certain events, either Joomla! core events or custom events that are triggered from your own code.  This is a powerful way of extending the basic Joomla! functionality.  To see where plugins fit in with the overall Joomla! architecture, look at [[http://dev.joomla.org/content/view/1137/80/|Framework overview]].&lt;br /&gt;
&lt;br /&gt;
The Joomla! plugin architecture follows the [[http://en.wikipedia.org/wiki/Observer_pattern|Observer]] design pattern.  The [[references:joomla.framework:application:jplugin|JPlugin]] class is derived from [[references:joomla.framework:base:jobserver|JObserver]] and provides the means to register custom plugin code with core or custom events.  The [[references:joomla.framework:application:jeventdispatcher|JEventDispatcher]] class, derived from [[references:joomla.framework:base:jobservable|JObservable]], is an event handler which calls all plugins registered for a particular event, when that event is triggered.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:create_plugin|How to create your own plugin]]&lt;br /&gt;
  * [[plugins:using_plugins|How to use plugins in your own code]]&lt;br /&gt;
  * [[plugins:plugins_part2|Creating an Authentication Plugin]]&lt;br /&gt;
&lt;br /&gt;
Useful reference: [[http://codex.gallery2.org/index.php/Gallery2:Embedding:Event-Based_Loose-Coupled_Integration|Gallery 2: Embedding: Event-Based Loose-Coupled Integration]]&lt;br /&gt;
&lt;br /&gt;
Prior to Joomla! 1.5 plugins were known as mambots.  Mambots were able to change content only and were based on certain signal words.  Since then their scope has been stretched and extended to such an extent that to enhance the meaning of the new functionality the developers decided to change the name from mambots to plugins.  Joomla! 1.5 includes legacy support for Joomla! 1.0 mambots.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
======Events======&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:system_events|System events]]&lt;br /&gt;
  * [[plugins:user_events|User events]]&lt;br /&gt;
  * [[Reference:Editor_Events_for_Plugin_System|Editor events]]&lt;br /&gt;
  * [[Reference:Content Events for Plugin System|Content events]]&lt;br /&gt;
&lt;br /&gt;
This is an alphabetical list of the core events in Joomla! 1.5 together with the group name to which each belongs.  Each event name links to more detailed information.&lt;br /&gt;
&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterContentSave|onAfterContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onAfterDeleteUser|onAfterDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplay|onAfterDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayTitle|onAfterDisplayTitle]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayContent|onAfterDisplayContent]] (content)&lt;br /&gt;
  *[[plugins:system_events#onAfterInitialise|onAfterInitialise]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterRoute|onAfterRoute]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterDispatch|onAfterDispatch]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterRender|onAfterRender]] (system)&lt;br /&gt;
  *[[plugins:user_events#onAfterStoreUser|onAfterStoreUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticate|onAuthenticate]] (authentication)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticateFailure|onAuthenticateFailure]] (authentication)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeContentSave|onBeforeContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeDeleteUser|onBeforeDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplay|onBeforeDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplayContent|onBeforeDisplayContent]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeStoreUser|onBeforeStoreUser]] (user)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onCustomEditorButton|onCustomEditorButton]] (editors-xtd)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onDisplay|onDisplay]] (editors)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onGetContent|onGetContent]] (editors)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onGetInsertMethod|onGetInsertMethod]] (editors)&lt;br /&gt;
  *[[plugins:system_events#onGetWebServices|onGetWebServices]] (xmlrpc)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onInit|onInit]] (editors)&lt;br /&gt;
  *[[plugins:user_events#onLoginUser|onLoginUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onLogoutUser|onLogoutUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onPrepareContent|onPrepareContent]] (content)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onSave|onSave]] (editors)&lt;br /&gt;
  *[[plugins:system_events#onSearch|onSearch]] (search)&lt;br /&gt;
  *[[plugins:system_events#onSearchAreas|onSearchAreas]] (search)&lt;br /&gt;
  *[[Reference:Editor_Events_for_Plugin_System#onSetContent|onSetContent]] (editors)&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9688</id>
		<title>Plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9688"/>
		<updated>2008-07-31T12:45:35Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Corrected links to point to Reference pages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Bin]]&lt;br /&gt;
====== Plugins ======&lt;br /&gt;
Joomla! plugins enable you to execute code in response to certain events, either Joomla! core events or custom events that are triggered from your own code.  This is a powerful way of extending the basic Joomla! functionality.  To see where plugins fit in with the overall Joomla! architecture, look at [[http://dev.joomla.org/content/view/1137/80/|Framework overview]].&lt;br /&gt;
&lt;br /&gt;
The Joomla! plugin architecture follows the [[http://en.wikipedia.org/wiki/Observer_pattern|Observer]] design pattern.  The [[references:joomla.framework:application:jplugin|JPlugin]] class is derived from [[references:joomla.framework:base:jobserver|JObserver]] and provides the means to register custom plugin code with core or custom events.  The [[references:joomla.framework:application:jeventdispatcher|JEventDispatcher]] class, derived from [[references:joomla.framework:base:jobservable|JObservable]], is an event handler which calls all plugins registered for a particular event, when that event is triggered.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:create_plugin|How to create your own plugin]]&lt;br /&gt;
  * [[plugins:using_plugins|How to use plugins in your own code]]&lt;br /&gt;
  * [[plugins:plugins_part2|Creating an Authentication Plugin]]&lt;br /&gt;
&lt;br /&gt;
Useful reference: [[http://codex.gallery2.org/index.php/Gallery2:Embedding:Event-Based_Loose-Coupled_Integration|Gallery 2: Embedding: Event-Based Loose-Coupled Integration]]&lt;br /&gt;
&lt;br /&gt;
Prior to Joomla! 1.5 plugins were known as mambots.  Mambots were able to change content only and were based on certain signal words.  Since then their scope has been stretched and extended to such an extent that to enhance the meaning of the new functionality the developers decided to change the name from mambots to plugins.  Joomla! 1.5 includes legacy support for Joomla! 1.0 mambots.&lt;br /&gt;
&lt;br /&gt;
======Events======&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:system_events|System events]]&lt;br /&gt;
  * [[plugins:user_events|User events]]&lt;br /&gt;
  * [[plugins:editor_events|Editor events]]&lt;br /&gt;
  * [[Reference:Content Events for Plugin System|Content events]]&lt;br /&gt;
&lt;br /&gt;
This is an alphabetical list of the core events in Joomla! 1.5 together with the group name to which each belongs.  Each event name links to more detailed information.&lt;br /&gt;
&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterContentSave|onAfterContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onAfterDeleteUser|onAfterDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplay|onAfterDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayTitle|onAfterDisplayTitle]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onAfterDisplayContent|onAfterDisplayContent]] (content)&lt;br /&gt;
  *[[plugins:system_events#onAfterInitialise|onAfterInitialise]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterRoute|onAfterRoute]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterDispatch|onAfterDispatch]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterRender|onAfterRender]] (system)&lt;br /&gt;
  *[[plugins:user_events#onAfterStoreUser|onAfterStoreUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticate|onAuthenticate]] (authentication)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticateFailure|onAuthenticateFailure]] (authentication)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeContentSave|onBeforeContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeDeleteUser|onBeforeDeleteUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplay|onBeforeDisplay]] (content)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onBeforeDisplayContent|onBeforeDisplayContent]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeStoreUser|onBeforeStoreUser]] (user)&lt;br /&gt;
  *[[plugins:editor_events#onCustomEditorButton|onCustomEditorButton]] (editors-xtd)&lt;br /&gt;
  *[[plugins:editor_events#onDisplay|onDisplay]] (editors)&lt;br /&gt;
  *[[plugins:editor_events#onGetContent|onGetContent]] (editors)&lt;br /&gt;
  *[[plugins:editor_events#onGetInsertMethod|onGetInsertMethod]] (editors)&lt;br /&gt;
  *[[plugins:system_events#onGetWebServices|onGetWebServices]] (xmlrpc)&lt;br /&gt;
  *[[plugins:editor_events#onInit|onInit]] (editors)&lt;br /&gt;
  *[[plugins:user_events#onLoginUser|onLoginUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onLogoutUser|onLogoutUser]] (user)&lt;br /&gt;
  *[[Reference:Content Events for Plugin System#onPrepareContent|onPrepareContent]] (content)&lt;br /&gt;
  *[[plugins:editor_events#onSave|onSave]] (editors)&lt;br /&gt;
  *[[plugins:system_events#onSearch|onSearch]] (search)&lt;br /&gt;
  *[[plugins:system_events#onSearchAreas|onSearchAreas]] (search)&lt;br /&gt;
  *[[plugins:editor_events#onSetContent|onSetContent]] (editors)&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugins:content_events&amp;diff=9687</id>
		<title>Plugins:content events</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugins:content_events&amp;diff=9687"/>
		<updated>2008-07-31T12:43:45Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Redirecting to Reference:Content Events for Plugin System&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Reference:Content_Events_for_Plugin_System]]&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/Content&amp;diff=9686</id>
		<title>J1.5:Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/Content&amp;diff=9686"/>
		<updated>2008-07-31T12:39:14Z</updated>

		<summary type="html">&lt;p&gt;Torkil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
====5.5 Content Events for Plugin System====&lt;br /&gt;
===5.5.1 Overview===&lt;br /&gt;
Content events are triggered during the content creation process. This may occur &lt;br /&gt;
in views in the com_content component, or in other components or modules. &lt;br /&gt;
&lt;br /&gt;
Note: This article does not yet describe the events onBeforeContentSave and onAfterContentSave that were added in [http://www.joomla.org/content/view/5180/1/1/1/#Content_Trigger_Additions Joomla 1.5.4]&lt;br /&gt;
&lt;br /&gt;
===5.5.2 onBeforeDisplay===&lt;br /&gt;
==5.5.2.1 Description==&lt;br /&gt;
This event is triggered when the framework is ready to create content. When this event &lt;br /&gt;
triggers, all features that can affect the presentation format are loaded.&lt;br /&gt;
==5.5.2.2 Parameters==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.2.3 Return Value==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.2.4 Used in files==&lt;br /&gt;
  *index.php&lt;br /&gt;
  *administrator/index.php&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
  *plugins/content/pagenavigation.php&lt;br /&gt;
  *plugins/content/vote.php&lt;br /&gt;
&lt;br /&gt;
===5.5.3 onAfterDisplay===&lt;br /&gt;
==5.5.3.1 Description==&lt;br /&gt;
This event is triggered when the framework has finished creating content.&lt;br /&gt;
==5.5.3.2 Parameters==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.3.3 Return Value==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.3.4 Used in files==&lt;br /&gt;
  *index.php&lt;br /&gt;
  *administrator/index.php&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
  &lt;br /&gt;
===5.5.4 onPrepareContent===&lt;br /&gt;
==5.5.4.1 Description==&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point &lt;br /&gt;
for content orientated plugins to do their work. Since the article and related parameters &lt;br /&gt;
are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
==5.5.4.2 Parameters==&lt;br /&gt;
  *article A reference to the article that is being rendered by the view.&lt;br /&gt;
  *params A reference to an associative array of relevant parameters. The view determines what it considers to be relevant and passes that information along.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated. Note that in the context of views that might not generate HTML output, a page is a reasonably abstract concept that depends on the context.&lt;br /&gt;
==5.5.4.3 Return Value==&lt;br /&gt;
None. Results are returned by modifying the referenced arguments.&lt;br /&gt;
==5.5.4.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/article/view.pdf.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *plugins/content/code.php&lt;br /&gt;
  *plugins/content/emailcloak.php&lt;br /&gt;
  *plugins/content/geshi.php&lt;br /&gt;
  *plugins/content/image.php&lt;br /&gt;
  *plugins/content/loadmodule.php&lt;br /&gt;
  *plugins/content/pagebreak.php&lt;br /&gt;
  *plugins/content/sef.php&lt;br /&gt;
&lt;br /&gt;
===5.5.5 onAfterDisplayTitle===&lt;br /&gt;
==5.5.5.1 Description==&lt;br /&gt;
This is a request for information that should be placed between the content title and &lt;br /&gt;
the content body.&lt;br /&gt;
==5.5.5.2 Parameters==&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters. Note that &lt;br /&gt;
unlike onPrepareContent, these parameters are passed by value.&lt;br /&gt;
  *article The article that is being rendered by the view.&lt;br /&gt;
  *params An associative array of relevant parameters.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
==5.5.5.3 Return Value==&lt;br /&gt;
An array. In XHTML/HTML views, this is is an array of strings, each of which becomes a line in the output stream.&lt;br /&gt;
==5.5.5.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
==5.5.5.5 See Also==&lt;br /&gt;
  *components/com_content/views/article/tmpl/default.php&lt;br /&gt;
&lt;br /&gt;
===5.5.6 onBeforeDisplayContent===&lt;br /&gt;
==5.5.6.1 Description==&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate XHTML/HTML, this might include the use of styles that are specified as part of the content or related parameters.&lt;br /&gt;
==5.5.6.2 Parameters==&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters. Note that &lt;br /&gt;
unlike onPrepareContent, these parameters are passed by value.&lt;br /&gt;
  *article The article that is being rendered by the view.&lt;br /&gt;
  *params An associative array of relevant parameters.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
==5.5.6.3 Return Value==&lt;br /&gt;
An array. In XHTML/HTML views, this is is an array of strings, each of which becomes a line in the output stream.&lt;br /&gt;
==5.5.6.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
==5.5.6.5 See Also==&lt;br /&gt;
  *components/com_content/views/article/tmpl/default.php&lt;br /&gt;
&lt;br /&gt;
===5.5.7 onAfterDisplayContent===&lt;br /&gt;
==5.5.7.1 Description==&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate XHTML/HTML, this might include the closure of styles that are specified as part of the content or related parameters.&lt;br /&gt;
==5.5.7.2 Parameters==&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters. Note that unlike onPrepareContent, these parameters are passed by value.&lt;br /&gt;
  *article The article that is being rendered by the view.&lt;br /&gt;
  *params An associative array of relevant parameters.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
==5.5.7.3 Return Value==&lt;br /&gt;
An array. In XHTML/HTML views, this is is an array of strings, each of which becomes a line in the output stream.&lt;br /&gt;
==5.5.7.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
==5.5.7.5 See Also==&lt;br /&gt;
  *components/com_content/views/article/tmpl/default.php&lt;br /&gt;
&lt;br /&gt;
== Overskrift ==&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/Content&amp;diff=9685</id>
		<title>J1.5:Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/Content&amp;diff=9685"/>
		<updated>2008-07-31T12:38:14Z</updated>

		<summary type="html">&lt;p&gt;Torkil: /* 5.5.1 Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
====5.5 Content Events for Plugin System====&lt;br /&gt;
===5.5.1 Overview===&lt;br /&gt;
Content events are triggered during the content creation process. This may occur &lt;br /&gt;
in views in the com_content component, or in other components or modules. &lt;br /&gt;
&lt;br /&gt;
Note: This article does not yet describe the events onBeforeContentSave and onAfterContentSave that were added in [http://www.joomla.org/content/view/5180/1/1/1/#Content_Trigger_Additions Joomla 1.5.4]&lt;br /&gt;
&lt;br /&gt;
===5.5.2 onBeforeDisplay===&lt;br /&gt;
==5.5.2.1 Description==&lt;br /&gt;
This event is triggered when the framework is ready to create content. When this event &lt;br /&gt;
triggers, all features that can affect the presentation format are loaded.&lt;br /&gt;
==5.5.2.2 Parameters==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.2.3 Return Value==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.2.4 Used in files==&lt;br /&gt;
  *index.php&lt;br /&gt;
  *administrator/index.php&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
  *plugins/content/pagenavigation.php&lt;br /&gt;
  *plugins/content/vote.php&lt;br /&gt;
&lt;br /&gt;
===5.5.3 onAfterDisplay===&lt;br /&gt;
==5.5.3.1 Description==&lt;br /&gt;
This event is triggered when the framework has finished creating content.&lt;br /&gt;
==5.5.3.2 Parameters==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.3.3 Return Value==&lt;br /&gt;
None.&lt;br /&gt;
==5.5.3.4 Used in files==&lt;br /&gt;
  *index.php&lt;br /&gt;
  *administrator/index.php&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
  &lt;br /&gt;
===5.5.4 onPrepareContent===&lt;br /&gt;
==5.5.4.1 Description==&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point &lt;br /&gt;
for content orientated plugins to do their work. Since the article and related parameters &lt;br /&gt;
are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
==5.5.4.2 Parameters==&lt;br /&gt;
  *article A reference to the article that is being rendered by the view.&lt;br /&gt;
  *params A reference to an associative array of relevant parameters. The view determines what it considers to be relevant and passes that information along.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated. Note that in the context of views that might not generate HTML output, a page is a reasonably abstract concept that depends on the context.&lt;br /&gt;
==5.5.4.3 Return Value==&lt;br /&gt;
None. Results are returned by modifying the referenced arguments.&lt;br /&gt;
==5.5.4.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/article/view.pdf.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *plugins/content/code.php&lt;br /&gt;
  *plugins/content/emailcloak.php&lt;br /&gt;
  *plugins/content/geshi.php&lt;br /&gt;
  *plugins/content/image.php&lt;br /&gt;
  *plugins/content/loadmodule.php&lt;br /&gt;
  *plugins/content/pagebreak.php&lt;br /&gt;
  *plugins/content/sef.php&lt;br /&gt;
&lt;br /&gt;
===5.5.5 onAfterDisplayTitle===&lt;br /&gt;
==5.5.5.1 Description==&lt;br /&gt;
This is a request for information that should be placed between the content title and &lt;br /&gt;
the content body.&lt;br /&gt;
==5.5.5.2 Parameters==&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters. Note that &lt;br /&gt;
unlike onPrepareContent, these parameters are passed by value.&lt;br /&gt;
  *article The article that is being rendered by the view.&lt;br /&gt;
  *params An associative array of relevant parameters.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
==5.5.5.3 Return Value==&lt;br /&gt;
An array. In XHTML/HTML views, this is is an array of strings, each of which becomes a line in the output stream.&lt;br /&gt;
==5.5.5.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
==5.5.5.5 See Also==&lt;br /&gt;
  *components/com_content/views/article/tmpl/default.php&lt;br /&gt;
&lt;br /&gt;
===5.5.6 onBeforeDisplayContent===&lt;br /&gt;
==5.5.6.1 Description==&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate XHTML/HTML, this might include the use of styles that are specified as part of the content or related parameters.&lt;br /&gt;
==5.5.6.2 Parameters==&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters. Note that &lt;br /&gt;
unlike onPrepareContent, these parameters are passed by value.&lt;br /&gt;
  *article The article that is being rendered by the view.&lt;br /&gt;
  *params An associative array of relevant parameters.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
==5.5.6.3 Return Value==&lt;br /&gt;
An array. In XHTML/HTML views, this is is an array of strings, each of which becomes a line in the output stream.&lt;br /&gt;
==5.5.6.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
  *modules/mod_newsflash/helper.php&lt;br /&gt;
==5.5.6.5 See Also==&lt;br /&gt;
  *components/com_content/views/article/tmpl/default.php&lt;br /&gt;
&lt;br /&gt;
===5.5.7 onAfterDisplayContent===&lt;br /&gt;
==5.5.7.1 Description==&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate XHTML/HTML, this might include the closure of styles that are specified as part of the content or related parameters.&lt;br /&gt;
==5.5.7.2 Parameters==&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters. Note that unlike onPrepareContent, these parameters are passed by value.&lt;br /&gt;
  *article The article that is being rendered by the view.&lt;br /&gt;
  *params An associative array of relevant parameters.&lt;br /&gt;
  *limitstart An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
==5.5.7.3 Return Value==&lt;br /&gt;
An array. In XHTML/HTML views, this is is an array of strings, each of which becomes a line in the output stream.&lt;br /&gt;
==5.5.7.4 Used in files==&lt;br /&gt;
  *components/com_content/views/article/view.html.php&lt;br /&gt;
  *components/com_content/views/category/view.html.php&lt;br /&gt;
  *components/com_content/views/frontpage/view.html.php&lt;br /&gt;
  *components/com_content/views/section/view.html.php&lt;br /&gt;
==5.5.7.5 See Also==&lt;br /&gt;
  *components/com_content/views/article/tmpl/default.php&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugins:content_events&amp;diff=9684</id>
		<title>Plugins:content events</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugins:content_events&amp;diff=9684"/>
		<updated>2008-07-31T12:35:18Z</updated>

		<summary type="html">&lt;p&gt;Torkil: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
== Content events ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
For a more detailed overview go to [[Reference:Content_Events_for_Plugin_System]]&lt;br /&gt;
&lt;br /&gt;
=== onAfterContentSave ===&lt;br /&gt;
This event was added in [http://www.joomla.org/content/view/5180/1/1/1/#Content_Trigger_Additions Joomla 1.5.4] and it is triggered after content is saved.&lt;br /&gt;
&lt;br /&gt;
=== onAfterDisplayTitle ===&lt;br /&gt;
&lt;br /&gt;
=== onAfterDisplayContent ===&lt;br /&gt;
&lt;br /&gt;
=== onBeforeContentSave ===&lt;br /&gt;
This event was added in [http://www.joomla.org/content/view/5180/1/1/1/#Content_Trigger_Additions Joomla 1.5.4] and it is triggered before content is saved.&lt;br /&gt;
&lt;br /&gt;
=== onBeforeDisplay ===&lt;br /&gt;
&lt;br /&gt;
=== onBeforeDisplayContent ===&lt;br /&gt;
&lt;br /&gt;
=== onPrepareContent ===&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=User:Torkil&amp;diff=9680</id>
		<title>User:Torkil</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=User:Torkil&amp;diff=9680"/>
		<updated>2008-07-31T12:25:37Z</updated>

		<summary type="html">&lt;p&gt;Torkil: New page: I&amp;#039;m Torkil, and I try to contribute here every now and then :)  I am watching changes to this page, so you could leave me a message right here if you wanted to. Oh the magic of wikis.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;m Torkil, and I try to contribute here every now and then :)&lt;br /&gt;
&lt;br /&gt;
I am watching changes to this page, so you could leave me a message right here if you wanted to. Oh the magic of wikis.&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugins:content_events&amp;diff=9679</id>
		<title>Plugins:content events</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugins:content_events&amp;diff=9679"/>
		<updated>2008-07-31T12:22:37Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Initial setup of this page, not much content here yet.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
== Content events ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
=== onAfterContentSave ===&lt;br /&gt;
This event was added in [http://www.joomla.org/content/view/5180/1/1/1/#Content_Trigger_Additions Joomla 1.5.4] and it is triggered after content is saved.&lt;br /&gt;
&lt;br /&gt;
=== onAfterDisplayTitle ===&lt;br /&gt;
&lt;br /&gt;
=== onAfterDisplayContent ===&lt;br /&gt;
&lt;br /&gt;
=== onBeforeContentSave ===&lt;br /&gt;
This event was added in [http://www.joomla.org/content/view/5180/1/1/1/#Content_Trigger_Additions Joomla 1.5.4] and it is triggered before content is saved.&lt;br /&gt;
&lt;br /&gt;
=== onBeforeDisplay ===&lt;br /&gt;
&lt;br /&gt;
=== onBeforeDisplayContent ===&lt;br /&gt;
&lt;br /&gt;
=== onPrepareContent ===&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/System&amp;diff=9678</id>
		<title>J1.5:Plugin/Events/System</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Plugin/Events/System&amp;diff=9678"/>
		<updated>2008-07-31T12:09:09Z</updated>

		<summary type="html">&lt;p&gt;Torkil: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Development]]&lt;br /&gt;
[[Category:Plugins]]&lt;br /&gt;
===Overview===&lt;br /&gt;
In a standard installation of Joomla! 1.5 we have several predefined events which, when triggered, call functions in the associated plugins.  For more information on plugins, look [[plugins:create_plugin|here]].&lt;br /&gt;
&lt;br /&gt;
This topic is aimed at &amp;quot;global&amp;quot; system events, including those triggered on every page load (onAfterInitialise, onAfterRoute, onAfterDispatch, onAfterRender), those supporting search within multiple plugins (onSearch, onSearchArea) and those supporting the presentation of web services (onGetWebServices). Visit [[Tutorial:Plugins|the plugins tutorial]] for a complete list over available core events.&lt;br /&gt;
&lt;br /&gt;
=== onAfterInitialise ===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This event is triggered after the framework has loaded and the applicaiton initialise method has been called.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return Value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Called in files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*index.php&lt;br /&gt;
*administrator/index.php&lt;br /&gt;
&lt;br /&gt;
===onAfterRoute===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This event is triggered after the framework has loaded and initialised and the router has route the client request.&lt;br /&gt;
&lt;br /&gt;
Routing is the process of examining the request environment to determine which component should receive the request. This component optional parameters are then set in the request object to be processed when the application is being dispatched.&lt;br /&gt;
&lt;br /&gt;
When this event triggers the router has parsed the route and pushed the request parameters into JRequest for retrieval by the application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return Value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Used in files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* index.php&lt;br /&gt;
* administrator/index.php&lt;br /&gt;
&lt;br /&gt;
===onAfterDispatch===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
This event is triggered after the framework has dispatched the application.&lt;br /&gt;
&lt;br /&gt;
Dispatching is the process of pulling the option from the request object and mapping them to a component. If the component do not exist, it handles determining a default component to dispatch.&lt;br /&gt;
&lt;br /&gt;
When this event is triggered the output of the component is available in the document buffer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return Value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Used in files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* index.php&lt;br /&gt;
* administrator/index.php&lt;br /&gt;
&lt;br /&gt;
===onAfterRender===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
This event is triggered after the framework has rendered the application.&lt;br /&gt;
&lt;br /&gt;
Rendering is the process of pushing the document buffers into the template placeholders, retrieving data from the document and pushing it into the into the JResponse buffer.&lt;br /&gt;
&lt;br /&gt;
When this event is triggered the output of the application is available in the response buffer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return Value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Used in files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* index.php&lt;br /&gt;
* administrator/index.php&lt;br /&gt;
&lt;br /&gt;
===onSearch===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This event is triggered by a variety of search related operations. It is a request for a&lt;br /&gt;
plugin to return the result of a search request. The rows must return the following fields, which are used in a common display routine:&lt;br /&gt;
&lt;br /&gt;
* href&lt;br /&gt;
* title&lt;br /&gt;
* section&lt;br /&gt;
* created&lt;br /&gt;
* text&lt;br /&gt;
* browsernav&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The target search string.&lt;br /&gt;
* A string matching option (exact|any|all).&lt;br /&gt;
* A string ordering option (newest|oldest|popular|alpha|category)&lt;br /&gt;
* An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return Value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Used in files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* administrator/components/com_statistics/admin.statistics.php&lt;br /&gt;
* components/com_search/search.php&lt;br /&gt;
* plugins/search/categories.php&lt;br /&gt;
* plugins/search/contacts.php&lt;br /&gt;
* plugins/search/content.php&lt;br /&gt;
* plugins/search/newsfeeds.php&lt;br /&gt;
* plugins/search/sections.php&lt;br /&gt;
* plugins/search/weblinks.php&lt;br /&gt;
* plugins/xmlrpc/joomla.php&lt;br /&gt;
&lt;br /&gt;
===onSearchAreas===&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This appears to be a request for plugins to identify which &amp;quot;areas&amp;quot; they provide&lt;br /&gt;
search facilities for.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return Value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An associative array of area names, indexed by the area identifier. For example, array( &#039;categories&#039; =&amp;gt; &#039;Categories&#039; ).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Used in files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* components/com_search/search.php&lt;br /&gt;
* plugins/search/categories.php&lt;br /&gt;
* plugins/search/contacts.php&lt;br /&gt;
* plugins/search/content.php&lt;br /&gt;
* plugins/search/newsfeeds.php&lt;br /&gt;
* plugins/search/sections.php&lt;br /&gt;
* plugins/search/weblinks.php&lt;br /&gt;
&lt;br /&gt;
===onGetWebServices===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This is an introspection request for plugins that provide web services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parameters&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return Value&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
An array of associative arrays. The outer array is indexed by the service method name and&lt;br /&gt;
contains an array with the following elements:&lt;br /&gt;
&lt;br /&gt;
* [&#039;function&#039;] The method to be invoked, typically a string like &#039;ClassName::staticMethod&#039;&lt;br /&gt;
* [&#039;docstring&#039;] A human-readable definition of the method&#039;s purpose.&lt;br /&gt;
* [&#039;signature&#039;] An array identifying the types of the method&#039;s parameters. See the global variables $xmlrpc* for more information.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Used in files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* plugins/xmlrpc/blogger.php&lt;br /&gt;
* plugins/xmlrpc/joomla.php&lt;br /&gt;
* xmlrpc/index.php&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&lt;br /&gt;
This is an example system plugin.  Please note that because system plugins are loaded before any other event group, they may also contain any other event.&lt;br /&gt;
&lt;br /&gt;
The following class would be located in the file &amp;lt;code&amp;gt;/plugins/system/example.php&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die( &#039;Restricted access&#039; );&lt;br /&gt;
&lt;br /&gt;
jimport( &#039;joomla.plugin.plugin&#039; );&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Example system plugin&lt;br /&gt;
 */&lt;br /&gt;
class plgSystemExample extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * For php4 compatability we must not use the __constructor as a constructor for plugins&lt;br /&gt;
	 * because func_get_args ( void ) returns a copy of all passed arguments NOT references.&lt;br /&gt;
	 * This causes problems with cross-referencing necessary for the observer design pattern.&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	protected&lt;br /&gt;
	 * @param	object	$subject The object to observe&lt;br /&gt;
	 * @param 	array   $config  An array that holds the plugin configuration&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	function plgSystemCache( &amp;amp;$subject, $config )&lt;br /&gt;
	{&lt;br /&gt;
		parent::__construct( $subject, $config );&lt;br /&gt;
&lt;br /&gt;
		// Do some extra initialisation in this constructor if required&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Do something onAfterInitialise &lt;br /&gt;
	 */&lt;br /&gt;
	function onAfterInitialise()&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Do something onAfterRoute &lt;br /&gt;
	 */&lt;br /&gt;
	function onAfterRoute()&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Do something onAfterDispatch &lt;br /&gt;
	 */&lt;br /&gt;
	function onAfterDispatch()&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Do something onAfterRender &lt;br /&gt;
	 */&lt;br /&gt;
	function onAfterRender()&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following XML document would be located in the file &amp;lt;code&amp;gt;/plugins/system/example.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;install version=&amp;quot;1.5&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;system&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;System - Example&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Author&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;Month 2008&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2008 Holder. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;email&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;url&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;An example system plugin&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;example&amp;quot;&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;params&amp;gt;&lt;br /&gt;
  		&amp;lt;param name=&amp;quot;example&amp;quot;&lt;br /&gt;
  		type=&amp;quot;text&amp;quot;&lt;br /&gt;
  		default=&amp;quot;&amp;quot;&lt;br /&gt;
  		label=&amp;quot;Example&amp;quot;&lt;br /&gt;
  		description=&amp;quot;An example text parameter&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/install&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9677</id>
		<title>Plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin&amp;diff=9677"/>
		<updated>2008-07-31T12:03:01Z</updated>

		<summary type="html">&lt;p&gt;Torkil: Added onBeforeContentSave and onAfterContentSave to the list.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Bin]]&lt;br /&gt;
====== Plugins ======&lt;br /&gt;
Joomla! plugins enable you to execute code in response to certain events, either Joomla! core events or custom events that are triggered from your own code.  This is a powerful way of extending the basic Joomla! functionality.  To see where plugins fit in with the overall Joomla! architecture, look at [[http://dev.joomla.org/content/view/1137/80/|Framework overview]].&lt;br /&gt;
&lt;br /&gt;
The Joomla! plugin architecture follows the [[http://en.wikipedia.org/wiki/Observer_pattern|Observer]] design pattern.  The [[references:joomla.framework:application:jplugin|JPlugin]] class is derived from [[references:joomla.framework:base:jobserver|JObserver]] and provides the means to register custom plugin code with core or custom events.  The [[references:joomla.framework:application:jeventdispatcher|JEventDispatcher]] class, derived from [[references:joomla.framework:base:jobservable|JObservable]], is an event handler which calls all plugins registered for a particular event, when that event is triggered.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:create_plugin|How to create your own plugin]]&lt;br /&gt;
  * [[plugins:using_plugins|How to use plugins in your own code]]&lt;br /&gt;
  * [[plugins:plugins_part2|Creating an Authentication Plugin]]&lt;br /&gt;
&lt;br /&gt;
Useful reference: [[http://codex.gallery2.org/index.php/Gallery2:Embedding:Event-Based_Loose-Coupled_Integration|Gallery 2: Embedding: Event-Based Loose-Coupled Integration]]&lt;br /&gt;
&lt;br /&gt;
Prior to Joomla! 1.5 plugins were known as mambots.  Mambots were able to change content only and were based on certain signal words.  Since then their scope has been stretched and extended to such an extent that to enhance the meaning of the new functionality the developers decided to change the name from mambots to plugins.  Joomla! 1.5 includes legacy support for Joomla! 1.0 mambots.&lt;br /&gt;
&lt;br /&gt;
======Events======&lt;br /&gt;
Joomla! ships with a variety of core events, organised into groups.  These are described in the following topics.&lt;br /&gt;
&lt;br /&gt;
  * [[plugins:system_events|System events]]&lt;br /&gt;
  * [[plugins:user_events|User events]]&lt;br /&gt;
  * [[plugins:editor_events|Editor events]]&lt;br /&gt;
  * [[plugins:content_events|Content events]]&lt;br /&gt;
&lt;br /&gt;
This is an alphabetical list of the core events in Joomla! 1.5 together with the group name to which each belongs.  Each event name links to more detailed information.&lt;br /&gt;
&lt;br /&gt;
  *[[plugins:content_events#onAfterContentSave|onAfterContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onAfterDeleteUser|onAfterDeleteUser]] (user)&lt;br /&gt;
  *[[plugins:content_events#onAfterDisplay|onAfterDisplay]] (content)&lt;br /&gt;
  *[[plugins:content_events#onAfterDisplayTitle|onAfterDisplayTitle]] (content)&lt;br /&gt;
  *[[plugins:content_events#onAfterDisplayContent|onAfterDisplayContent]] (content)&lt;br /&gt;
  *[[plugins:system_events#onAfterInitialise|onAfterInitialise]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterRoute|onAfterRoute]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterDispatch|onAfterDispatch]] (system)&lt;br /&gt;
  *[[plugins:system_events#onAfterRender|onAfterRender]] (system)&lt;br /&gt;
  *[[plugins:user_events#onAfterStoreUser|onAfterStoreUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticate|onAuthenticate]] (authentication)&lt;br /&gt;
  *[[plugins:user_events#onAuthenticateFailure|onAuthenticateFailure]] (authentication)&lt;br /&gt;
  *[[plugins:content_events#onBeforeContentSave|onBeforeContentSave]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeDeleteUser|onBeforeDeleteUser]] (user)&lt;br /&gt;
  *[[plugins:content_events#onBeforeDisplay|onBeforeDisplay]] (content)&lt;br /&gt;
  *[[plugins:content_events#onBeforeDisplayContent|onBeforeDisplayContent]] (content)&lt;br /&gt;
  *[[plugins:user_events#onBeforeStoreUser|onBeforeStoreUser]] (user)&lt;br /&gt;
  *[[plugins:editor_events#onCustomEditorButton|onCustomEditorButton]] (editors-xtd)&lt;br /&gt;
  *[[plugins:editor_events#onDisplay|onDisplay]] (editors)&lt;br /&gt;
  *[[plugins:editor_events#onGetContent|onGetContent]] (editors)&lt;br /&gt;
  *[[plugins:editor_events#onGetInsertMethod|onGetInsertMethod]] (editors)&lt;br /&gt;
  *[[plugins:system_events#onGetWebServices|onGetWebServices]] (xmlrpc)&lt;br /&gt;
  *[[plugins:editor_events#onInit|onInit]] (editors)&lt;br /&gt;
  *[[plugins:user_events#onLoginUser|onLoginUser]] (user)&lt;br /&gt;
  *[[plugins:user_events#onLogoutUser|onLogoutUser]] (user)&lt;br /&gt;
  *[[plugins:content_events#onPrepareContent|onPrepareContent]] (content)&lt;br /&gt;
  *[[plugins:editor_events#onSave|onSave]] (editors)&lt;br /&gt;
  *[[plugins:system_events#onSearch|onSearch]] (search)&lt;br /&gt;
  *[[plugins:system_events#onSearchAreas|onSearchAreas]] (search)&lt;br /&gt;
  *[[plugins:editor_events#onSetContent|onSetContent]] (editors)&lt;/div&gt;</summary>
		<author><name>Torkil</name></author>
	</entry>
</feed>