<?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=Phproberto</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=Phproberto"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Phproberto"/>
	<updated>2026-05-14T23:51:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122323</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122323"/>
		<updated>2014-07-15T18:21:56Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Used in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
* browsernav&lt;br /&gt;
* catslug&lt;br /&gt;
* created&lt;br /&gt;
* href&lt;br /&gt;
* section&lt;br /&gt;
* slug&lt;br /&gt;
* text&lt;br /&gt;
* title&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/administrator/components/com_search/models/searches.php#L158 administrator/components/com_search/models/searches.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/components/com_search/models/search.php#L154 components/com_search/models/search.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/categories/categories.php#L62 plugins/search/categories/categories.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/contacts/contacts.php#L60 plugins/search/contacts/contacts.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/content/content.php#L53 plugins/search/content/content.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/newsfeeds/newsfeeds.php#L60 plugins/search/newsfeeds/newsfeeds.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/tags/tags.php#L60 plugins/search/tags/tags.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/weblinks/weblinks.php#L62 plugins/search/weblinks/weblinks.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122322</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122322"/>
		<updated>2014-07-15T18:15:29Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Used in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
* browsernav&lt;br /&gt;
* catslug&lt;br /&gt;
* created&lt;br /&gt;
* href&lt;br /&gt;
* section&lt;br /&gt;
* slug&lt;br /&gt;
* text&lt;br /&gt;
* title&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/administrator/components/com_search/models/searches.php#L158 administrator/components/com_search/models/searches.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/components/com_search/models/search.php#L154 components/com_search/models/search.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/categories/categories.php#L62 plugins/search/categories/categories.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/contacts/contacts.php#L60 plugins/search/contacts/contacts.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/content/content.php#L53 plugins/search/content/content.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122321</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122321"/>
		<updated>2014-07-15T18:13:22Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Used in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
* browsernav&lt;br /&gt;
* catslug&lt;br /&gt;
* created&lt;br /&gt;
* href&lt;br /&gt;
* section&lt;br /&gt;
* slug&lt;br /&gt;
* text&lt;br /&gt;
* title&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/administrator/components/com_search/models/searches.php#L158 administrator/components/com_search/models/searches.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/components/com_search/models/search.php#L154 components/com_search/models/search.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/categories/categories.php#L62 plugins/search/categories/categories.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122320</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122320"/>
		<updated>2014-07-15T18:11:12Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Used in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
* browsernav&lt;br /&gt;
* catslug&lt;br /&gt;
* created&lt;br /&gt;
* href&lt;br /&gt;
* section&lt;br /&gt;
* slug&lt;br /&gt;
* text&lt;br /&gt;
* title&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/administrator/components/com_search/models/searches.php#L158 administrator/components/com_search/models/searches.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/components/com_search/models/search.php#L154 components/com_search/models/search.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122319</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122319"/>
		<updated>2014-07-15T18:10:08Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Used in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
* browsernav&lt;br /&gt;
* catslug&lt;br /&gt;
* created&lt;br /&gt;
* href&lt;br /&gt;
* section&lt;br /&gt;
* slug&lt;br /&gt;
* text&lt;br /&gt;
* title&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/administrator/components/com_search/models/searches.php#L158 administrator/components/com_search/models/searches.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122318</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122318"/>
		<updated>2014-07-15T17:49:33Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
* browsernav&lt;br /&gt;
* catslug&lt;br /&gt;
* created&lt;br /&gt;
* href&lt;br /&gt;
* section&lt;br /&gt;
* slug&lt;br /&gt;
* text&lt;br /&gt;
* title&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;administrator/components/com_search/models/searches.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122317</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122317"/>
		<updated>2014-07-15T17:42:45Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;administrator/components/com_search/models/searches.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122316</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122316"/>
		<updated>2014-07-15T17:41:39Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all).&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category)&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;administrator/components/com_search/models/searches.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122315</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122315"/>
		<updated>2014-07-15T17:40:00Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Used in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
===Parameters===&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;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;administrator/components/com_search/models/searches.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122314</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=122314"/>
		<updated>2014-07-15T17:38:05Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Used in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; 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;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; 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;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/emailcloak/emailcloak.php#L31 plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onPrepareContent event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onPrepareContent for that purpose.&lt;br /&gt;
&lt;br /&gt;
===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;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&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;
===Parameters===&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;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;administrator/components/com_statistics/admin.statistics.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/sections.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/xmlrpc/joomla.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&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;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&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;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122311</id>
		<title>Plugin/Events/Captcha</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122311"/>
		<updated>2014-07-15T17:33:30Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Called in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Captcha&lt;br /&gt;
&lt;br /&gt;
== onInit ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
Event called to initialise the captcha&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
* &amp;lt;code&amp;gt;$id&amp;lt;/code&amp;gt; DOM id of the field that will contain the captcha&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
Boolean	True on success, false otherwise&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
* &amp;lt;code&amp;gt;libraries/cms/captcha/captcha.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== onDisplay ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
== onCheckAnswer ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122310</id>
		<title>Plugin/Events/Captcha</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122310"/>
		<updated>2014-07-15T17:26:00Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Captcha&lt;br /&gt;
&lt;br /&gt;
== onInit ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
Event called to initialise the captcha&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
* &amp;lt;code&amp;gt;$id&amp;lt;/code&amp;gt; DOM id of the field that will contain the captcha&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
Boolean	True on success, false otherwise&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
== onDisplay ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
== onCheckAnswer ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122309</id>
		<title>Plugin/Events/Captcha</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122309"/>
		<updated>2014-07-15T17:25:50Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Captcha&lt;br /&gt;
&lt;br /&gt;
== onInit ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
Event called to initialise the captcha&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
* &amp;lt;code&amp;gt;$id&amp;lt;/code&amp;gt;DOM id of the field that will contain the captcha&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
Boolean	True on success, false otherwise&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
== onDisplay ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
== onCheckAnswer ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122307</id>
		<title>Plugin/Events/Captcha</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Captcha&amp;diff=122307"/>
		<updated>2014-07-15T17:25:22Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* onInit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Captcha&lt;br /&gt;
&lt;br /&gt;
== onInit ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
Event called to initialise the captcha&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
DOM id of the field that will contain the captcha&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
Boolean	True on success, false otherwise&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
== onDisplay ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
== onCheckAnswer ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122305</id>
		<title>Plugin/Events/Quickicon</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122305"/>
		<updated>2014-07-15T17:20:13Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Events of Quickicon&lt;br /&gt;
&lt;br /&gt;
== onGetIcons ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This method is called when the Quick Icons module is constructing its set of icons. You can return an array which defines a single icon and it will be rendered right after the stock Quick Icons.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
A list of icon definition associative arrays, consisting of the keys link, image, text and access.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$return = array(&lt;br /&gt;
	array(&lt;br /&gt;
		&#039;link&#039; =&amp;gt; &#039;index.php?option=com_joomlaupdate&#039;,&lt;br /&gt;
		&#039;image&#039; =&amp;gt; &#039;joomla&#039;,&lt;br /&gt;
		&#039;icon&#039; =&amp;gt; &#039;header/icon-48-download.png&#039;,&lt;br /&gt;
		&#039;text&#039; =&amp;gt; JText::_(&#039;PLG_QUICKICON_JOOMLAUPDATE_CHECKING&#039;),&lt;br /&gt;
		&#039;id&#039; =&amp;gt; &#039;plg_quickicon_joomlaupdate&#039;,&lt;br /&gt;
		&#039;group&#039; =&amp;gt; &#039;MOD_QUICKICON_MAINTENANCE&#039;&lt;br /&gt;
	)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
* &amp;lt;code&amp;gt;administrator/modules/mod_quickicon/helper.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122304</id>
		<title>Plugin/Events/Quickicon</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122304"/>
		<updated>2014-07-15T17:19:33Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Called in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Quickicon&lt;br /&gt;
&lt;br /&gt;
== onGetIcons ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This method is called when the Quick Icons module is constructing its set of icons. You can return an array which defines a single icon and it will be rendered right after the stock Quick Icons.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
A list of icon definition associative arrays, consisting of the keys link, image, text and access.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$return = array(&lt;br /&gt;
	array(&lt;br /&gt;
		&#039;link&#039; =&amp;gt; &#039;index.php?option=com_joomlaupdate&#039;,&lt;br /&gt;
		&#039;image&#039; =&amp;gt; &#039;joomla&#039;,&lt;br /&gt;
		&#039;icon&#039; =&amp;gt; &#039;header/icon-48-download.png&#039;,&lt;br /&gt;
		&#039;text&#039; =&amp;gt; JText::_(&#039;PLG_QUICKICON_JOOMLAUPDATE_CHECKING&#039;),&lt;br /&gt;
		&#039;id&#039; =&amp;gt; &#039;plg_quickicon_joomlaupdate&#039;,&lt;br /&gt;
		&#039;group&#039; =&amp;gt; &#039;MOD_QUICKICON_MAINTENANCE&#039;&lt;br /&gt;
	)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
* &amp;lt;code&amp;gt;administrator/modules/mod_quickicon/helper.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122303</id>
		<title>Plugin/Events/Quickicon</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122303"/>
		<updated>2014-07-15T17:19:10Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Called in files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Quickicon&lt;br /&gt;
&lt;br /&gt;
== onGetIcons ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This method is called when the Quick Icons module is constructing its set of icons. You can return an array which defines a single icon and it will be rendered right after the stock Quick Icons.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
A list of icon definition associative arrays, consisting of the keys link, image, text and access.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$return = array(&lt;br /&gt;
	array(&lt;br /&gt;
		&#039;link&#039; =&amp;gt; &#039;index.php?option=com_joomlaupdate&#039;,&lt;br /&gt;
		&#039;image&#039; =&amp;gt; &#039;joomla&#039;,&lt;br /&gt;
		&#039;icon&#039; =&amp;gt; &#039;header/icon-48-download.png&#039;,&lt;br /&gt;
		&#039;text&#039; =&amp;gt; JText::_(&#039;PLG_QUICKICON_JOOMLAUPDATE_CHECKING&#039;),&lt;br /&gt;
		&#039;id&#039; =&amp;gt; &#039;plg_quickicon_joomlaupdate&#039;,&lt;br /&gt;
		&#039;group&#039; =&amp;gt; &#039;MOD_QUICKICON_MAINTENANCE&#039;&lt;br /&gt;
	)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&amp;lt;code&amp;gt;administrator/modules/mod_quickicon/helper.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122302</id>
		<title>Plugin/Events/Quickicon</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122302"/>
		<updated>2014-07-15T17:18:06Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Return Value */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Quickicon&lt;br /&gt;
&lt;br /&gt;
== onGetIcons ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This method is called when the Quick Icons module is constructing its set of icons. You can return an array which defines a single icon and it will be rendered right after the stock Quick Icons.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
A list of icon definition associative arrays, consisting of the keys link, image, text and access.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$return = array(&lt;br /&gt;
	array(&lt;br /&gt;
		&#039;link&#039; =&amp;gt; &#039;index.php?option=com_joomlaupdate&#039;,&lt;br /&gt;
		&#039;image&#039; =&amp;gt; &#039;joomla&#039;,&lt;br /&gt;
		&#039;icon&#039; =&amp;gt; &#039;header/icon-48-download.png&#039;,&lt;br /&gt;
		&#039;text&#039; =&amp;gt; JText::_(&#039;PLG_QUICKICON_JOOMLAUPDATE_CHECKING&#039;),&lt;br /&gt;
		&#039;id&#039; =&amp;gt; &#039;plg_quickicon_joomlaupdate&#039;,&lt;br /&gt;
		&#039;group&#039; =&amp;gt; &#039;MOD_QUICKICON_MAINTENANCE&#039;&lt;br /&gt;
	)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122301</id>
		<title>Plugin/Events/Quickicon</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122301"/>
		<updated>2014-07-15T17:17:31Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Return Value */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Quickicon&lt;br /&gt;
&lt;br /&gt;
== onGetIcons ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This method is called when the Quick Icons module is constructing its set of icons. You can return an array which defines a single icon and it will be rendered right after the stock Quick Icons.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
A list of icon definition associative arrays, consisting of the keys link, image, text and access.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
return array(&lt;br /&gt;
	array(&lt;br /&gt;
		&#039;link&#039; =&amp;gt; &#039;index.php?option=com_joomlaupdate&#039;,&lt;br /&gt;
		&#039;image&#039; =&amp;gt; &#039;joomla&#039;,&lt;br /&gt;
		&#039;icon&#039; =&amp;gt; &#039;header/icon-48-download.png&#039;,&lt;br /&gt;
		&#039;text&#039; =&amp;gt; JText::_(&#039;PLG_QUICKICON_JOOMLAUPDATE_CHECKING&#039;),&lt;br /&gt;
		&#039;id&#039; =&amp;gt; &#039;plg_quickicon_joomlaupdate&#039;,&lt;br /&gt;
		&#039;group&#039; =&amp;gt; &#039;MOD_QUICKICON_MAINTENANCE&#039;&lt;br /&gt;
	)&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122300</id>
		<title>Plugin/Events/Quickicon</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122300"/>
		<updated>2014-07-15T17:13:32Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Quickicon&lt;br /&gt;
&lt;br /&gt;
== onGetIcons ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This method is called when the Quick Icons module is constructing its set of icons. You can return an array which defines a single icon and it will be rendered right after the stock Quick Icons.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122299</id>
		<title>Plugin/Events/Quickicon</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Quickicon&amp;diff=122299"/>
		<updated>2014-07-15T17:11:53Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page|needs completion|This page need completing to be a useful doc reference.}}&lt;br /&gt;
&lt;br /&gt;
Events of Quickicon&lt;br /&gt;
&lt;br /&gt;
== onGetIcons ==&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
This method is called when the Quick Icons module is constructing its set of icons. You can return an array which defines a single icon and it will be rendered right after the stock Quick Icons.&lt;br /&gt;
&lt;br /&gt;
=== Parameters ===&lt;br /&gt;
&lt;br /&gt;
=== Return Value ===&lt;br /&gt;
&lt;br /&gt;
=== Called in files ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Display_error_messages_and_notices&amp;diff=79945</id>
		<title>Display error messages and notices</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Display_error_messages_and_notices&amp;diff=79945"/>
		<updated>2013-01-17T09:07:47Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: Fix missin quote&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
Errors, warnings and notices can be displayed from any component, module, plugin or template using the methods outlined below.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Get a handle to the Joomla! application object&lt;br /&gt;
$application = JFactory::getApplication();&lt;br /&gt;
&lt;br /&gt;
// Add a message to the message queue&lt;br /&gt;
$application-&amp;gt;enqueueMessage(JText::_(&#039;SOME_ERROR_OCCURRED&#039;), &#039;error&#039;);&lt;br /&gt;
&lt;br /&gt;
/** Alternatively you may use chaining */&lt;br /&gt;
JFactory::getApplication()-&amp;gt;enqueueMessage(JText::_(&#039;SOME_ERROR_OCCURRED&#039;), &#039;error&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second argument to the [[JApplication/enqueueMessage|enqueueMessage]] function is the type of the message. The default is &#039;message&#039;, but &#039;error&#039; results in a different style for the message.  The message will be displayed in place of a special &amp;lt;tt&amp;gt;jdoc:include&amp;lt;/tt&amp;gt; statement in your template.  Place the following in your template at the location where you want messages to appear.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;jdoc:include type=&amp;quot;message&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Message ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #c3d2e5; color: #0055bb; border-top: 3px solid #84a7db; border-bottom: 3px solid #84a7db; padding-left: 1em; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
Message&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
JFactory::getApplication()-&amp;gt;enqueueMessage(&#039;Message&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notice ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #efe7b8; color: #c00; border-top: 3px solid #f0dc7e; border-bottom: 3px solid #f0dc7e; padding-left: 1em; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
Notice&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
JError::raiseNotice( 100, &#039;Notice&#039; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Warning ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #e6c0c0; color: #c00; border-top: 3px solid #DE7A7B; border-bottom: 3px solid #DE7A7B; padding-left: 1em; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
Warning&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
JError::raiseWarning( 100, &#039;Warning&#039; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Error ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
JError::raiseError( 4711, &#039;A severe error occurred&#039; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Joomla! 3.x is bootstraped ==&lt;br /&gt;
Since Joomla! {{JVer|3.0}} will use bootstraped templates, the messages will use the standard boostrap CSS styles for Alerts.&lt;br /&gt;
&lt;br /&gt;
See: http://twitter.github.com/bootstrap/components.html#alerts&lt;br /&gt;
&lt;br /&gt;
The general syntax remains:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
JFactory::getApplication()-&amp;gt;enqueueMessage(&#039;Your Message&#039;, &#039;type&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;&#039;&#039;type&#039;&#039;&#039; can be one of&lt;br /&gt;
&lt;br /&gt;
* EMPTY - yellow&lt;br /&gt;
* &#039;info&#039; - blue&lt;br /&gt;
* &#039;error&#039; - red&lt;br /&gt;
* &#039;success&#039; - green&lt;br /&gt;
&lt;br /&gt;
== Success ==&lt;br /&gt;
Note the new style in Joomla! 3 using the type &#039;&#039;&#039;success&#039;&#039;&#039; which is now used instead of the former &amp;quot;Message&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #dff0d8; color: #468847; border-top: 3px solid #468847; border-bottom: 3px solid #468847; padding-left: 1em; font-weight: bold;&amp;quot;&amp;gt;&lt;br /&gt;
Success&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
JFactory::getApplication()-&amp;gt;enqueueMessage(&#039;Success&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[JError]]&lt;br /&gt;
* [[JApplication]]&lt;br /&gt;
*  [http://api.joomla.org/1.5/Joomla-Framework/Application/JApplication.html JApplication on api.joomla.org]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Development]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]][[Category:Component Development]]&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=76421</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=76421"/>
		<updated>2012-10-11T15:07:56Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: Add onContentBeforeSave &amp;amp; onContentAfterSave events modifications&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
The platform removed a larger number of deprecated classes and methods. For most extensions written for Joomla 2.5, the required changes should be reasonably small. Note that there are still deprecated classes in the platform that will be removed in future versions -- developers should stop using them where possible.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*Due to upcoming changes to the MVC implementation in the platform, JModel, JView, and JController are re-used as the names of the new interfaces. For now, use JModelLegacy, JViewLegacy and JControllerLegacy instead.&lt;br /&gt;
*JFolder and JFile now require you to do your own jimport statement (You always had to do that, just before it was rather likely something else had loaded them before)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
JDatabase had been renamed JDatabaseDriver. JDatabase is still around (but deprecated) and is the base of JDatabaseDriver, this way type hints and instance of checks keep working.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;t support a string as the second parameter anymore. This used to be the path to the file in Joomla 1.5 and has been removed now.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;t support a string as the second parameter anymore. This used to be the path to the file in Joomla 1.5 and has been removed now.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed.&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Checkbox_form_field_type&amp;diff=76153</id>
		<title>Checkbox form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Checkbox_form_field_type&amp;diff=76153"/>
		<updated>2012-10-03T16:29:38Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: Add information about how to set the uncheck status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;checkbox&#039;&#039;&#039; form field type provides a single checkbox.  If the parameter has a saved value this is selected when the page is first loaded.  If not, the default value (if any) is selected.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be checkbox&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the parameter.&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&lt;br /&gt;
* &#039;&#039;&#039;value&#039;&#039;&#039; (optional) is the default value of the checkbox. If exist the checkbox will be checked by default.&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039; (optional) is the default value (usually 0 or 1).&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; (optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the label.&lt;br /&gt;
* &#039;&#039;&#039;class&#039;&#039;&#039; (optional) is a CSS class name for the HTML form field.  If omitted this will default to &#039;inputbox&#039;.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Example XML field definition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;show_title&amp;quot; type=&amp;quot;checkbox&amp;quot; label=&amp;quot;Show title&amp;quot; description=&amp;quot;Show the title of the item&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example XML field definition (unchecked):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;show_title&amp;quot; type=&amp;quot;checkbox&amp;quot; label=&amp;quot;Show title&amp;quot; description=&amp;quot;Show the title of the item&amp;quot; value=&amp;quot;1&amp;quot; default=&amp;quot;0&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [[Standard form field types|List of standard form field types]]&lt;br /&gt;
[[Category:Standard form field types]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Package&amp;diff=67392</id>
		<title>Package</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Package&amp;diff=67392"/>
		<updated>2012-05-28T23:13:59Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: Added template subpackage example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a package? ==&lt;br /&gt;
&lt;br /&gt;
A package is a extension that is used to install multiple extensions in one go. This is used if you have for example a component and a module that are depending on each other. Combining them in a package will let the user install and uninstall both extensions in one go. Package extensions can be used with Joomla [[File:Compat icon 1 6.png]] and higher.&lt;br /&gt;
&lt;br /&gt;
== How do I create a package? ==&lt;br /&gt;
&lt;br /&gt;
A package extension is created by zipping all zip files of the extensions together with a xml manifest file. For example if you have a package composed by:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;component&#039;&#039;&#039; helloworld&lt;br /&gt;
* &#039;&#039;&#039;module&#039;&#039;&#039; helloworld&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; helloworld &lt;br /&gt;
* &#039;&#039;&#039;system plugin&#039;&#039;&#039; helloworld &lt;br /&gt;
* &#039;&#039;&#039;template&#039;&#039;&#039; helloworld&lt;br /&gt;
&lt;br /&gt;
The package should have the following tree in your zipfile:&lt;br /&gt;
&lt;br /&gt;
  -- pkg_helloworld.xml&lt;br /&gt;
  -- packages &amp;lt;dir&amp;gt;&lt;br /&gt;
      |-- com_helloworld.zip&lt;br /&gt;
      |-- mod_helloworld.zip&lt;br /&gt;
      |-- lib_helloworld.zip&lt;br /&gt;
      |-- plg_sys_helloworld.zip&lt;br /&gt;
      |-- tpl_helloworld.zip&lt;br /&gt;
&lt;br /&gt;
The pkg_helloworld.xml could have the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&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;extension type=&amp;quot;package&amp;quot; version=&amp;quot;1.6&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;name&amp;gt;Hello World Package&amp;lt;/name&amp;gt;&lt;br /&gt;
 &amp;lt;author&amp;gt;Hello World Package Team&amp;lt;/author&amp;gt;&lt;br /&gt;
 &amp;lt;creationDate&amp;gt;May 2012&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
 &amp;lt;packagename&amp;gt;helloworld&amp;lt;/packagename&amp;gt;&lt;br /&gt;
 &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
 &amp;lt;url&amp;gt;http://www.yoururl.com/&amp;lt;/url&amp;gt;&lt;br /&gt;
 &amp;lt;packager&amp;gt;Hello World Package Team&amp;lt;/packager&amp;gt;&lt;br /&gt;
 &amp;lt;packagerurl&amp;gt;http://www.yoururl.com/&amp;lt;/packagerurl&amp;gt;&lt;br /&gt;
 &amp;lt;description&amp;gt;Example package to combine multiple extensions&amp;lt;/description&amp;gt;&lt;br /&gt;
 &amp;lt;update&amp;gt;http://www.updateurl.com/update&amp;lt;/update&amp;gt;&lt;br /&gt;
 &amp;lt;files folder=&amp;quot;packages&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;component&amp;quot; id=&amp;quot;helloworld&amp;quot; &amp;gt;com_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;module&amp;quot; id=&amp;quot;helloworld&amp;quot; client=&amp;quot;site&amp;quot;&amp;gt;mod_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;library&amp;quot; id=&amp;quot;helloworld&amp;quot;&amp;gt;lib_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;plugin&amp;quot; id=&amp;quot;helloworld&amp;quot; group=&amp;quot;system&amp;quot;&amp;gt;plg_sys_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;template&amp;quot; id=&amp;quot;helloworld&amp;quot; client=&amp;quot;site&amp;quot;&amp;gt;tpl_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
 &amp;lt;/files&amp;gt;&lt;br /&gt;
 &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you zip this and try to install it, you will see that every extension will be installed. Also the package will be visible in the extension list to uninstall all the extension of this package. &lt;br /&gt;
&lt;br /&gt;
Remember to use the package uninstaller instead of individual subpackage uninstallers to avoid orphan extension entries in the extension manager.&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions| Package]]&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Package&amp;diff=67391</id>
		<title>Package</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Package&amp;diff=67391"/>
		<updated>2012-05-28T23:09:00Z</updated>

		<summary type="html">&lt;p&gt;Phproberto: Added library and system plugin examples. Fix bad ids that cause issues uninstalling package. Also added author and creation date that will be shown in extension manager&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What is a package? ==&lt;br /&gt;
&lt;br /&gt;
A package is a extension that is used to install multiple extensions in one go. This is used if you have for example a component and a module that are depending on each other. Combining them in a package will let the user install and uninstall both extensions in one go. Package extensions can be used with Joomla [[File:Compat icon 1 6.png]] and higher.&lt;br /&gt;
&lt;br /&gt;
== How do I create a package? ==&lt;br /&gt;
&lt;br /&gt;
A package extension is created by zipping all zip files of the extensions together with a xml manifest file. For example if you have a package composed by:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;component&#039;&#039;&#039; helloworld&lt;br /&gt;
* &#039;&#039;&#039;module&#039;&#039;&#039; helloworld&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; helloworld &lt;br /&gt;
* &#039;&#039;&#039;system plugin&#039;&#039;&#039; helloworld &lt;br /&gt;
&lt;br /&gt;
The package should have the following tree in your zipfile:&lt;br /&gt;
&lt;br /&gt;
  -- pkg_helloworld.xml&lt;br /&gt;
  -- packages &amp;lt;dir&amp;gt;&lt;br /&gt;
      |-- com_helloworld.zip&lt;br /&gt;
      |-- mod_helloworld.zip&lt;br /&gt;
      |-- lib_helloworld.zip&lt;br /&gt;
      |-- plg_sys_helloworld.zip&lt;br /&gt;
&lt;br /&gt;
The pkg_helloworld.xml could have the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&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;extension type=&amp;quot;package&amp;quot; version=&amp;quot;1.6&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;name&amp;gt;Hello World Package&amp;lt;/name&amp;gt;&lt;br /&gt;
 &amp;lt;author&amp;gt;Hello World Package Team&amp;lt;/author&amp;gt;&lt;br /&gt;
 &amp;lt;creationDate&amp;gt;May 2012&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
 &amp;lt;packagename&amp;gt;helloworld&amp;lt;/packagename&amp;gt;&lt;br /&gt;
 &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
 &amp;lt;url&amp;gt;http://www.yoururl.com/&amp;lt;/url&amp;gt;&lt;br /&gt;
 &amp;lt;packager&amp;gt;Hello World Package Team&amp;lt;/packager&amp;gt;&lt;br /&gt;
 &amp;lt;packagerurl&amp;gt;http://www.yoururl.com/&amp;lt;/packagerurl&amp;gt;&lt;br /&gt;
 &amp;lt;description&amp;gt;Example package to combine multiple extensions&amp;lt;/description&amp;gt;&lt;br /&gt;
 &amp;lt;update&amp;gt;http://www.updateurl.com/update&amp;lt;/update&amp;gt;&lt;br /&gt;
 &amp;lt;files folder=&amp;quot;packages&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;component&amp;quot; id=&amp;quot;helloworld&amp;quot; &amp;gt;com_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;module&amp;quot; id=&amp;quot;helloworld&amp;quot; client=&amp;quot;site&amp;quot;&amp;gt;mod_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;library&amp;quot; id=&amp;quot;helloworld&amp;quot;&amp;gt;lib_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
   &amp;lt;file type=&amp;quot;plugin&amp;quot; id=&amp;quot;helloworld&amp;quot; group=&amp;quot;system&amp;quot;&amp;gt;plg_sys_helloworld.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
 &amp;lt;/files&amp;gt;&lt;br /&gt;
 &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you zip this and try to install it, you will see that every extension will be installed. Also the package will be visible in the extension list to uninstall all the extension of this package. &lt;br /&gt;
&lt;br /&gt;
Remember to use the package uninstaller instead of individual subpackage uninstallers to avoid orphan extension entries in the extension manager.&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions| Package]]&lt;/div&gt;</summary>
		<author><name>Phproberto</name></author>
	</entry>
</feed>