Difference between revisions of "Plugin"

From Joomla! Documentation

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

Revision as of 12:02, 10 February 2012

<translate> A plugin is a kind of Joomla! extension. Plugins provide functions which are associated with trigger events. Joomla provides a set of core plugin events, but any extension can fire (custom) events. When a particular event occurs, all plugin functions of the type associated with the event are executed in sequence. This is a powerful way of extending the functionality of Joomla. It also offers extension developers a way to allow other extensions to respond to their actions, making extensions extensible.</translate>

<translate> The Joomla! plugin architecture follows the Observer design pattern. The JPlugin class provides the means to register custom plugin code with core or custom events. The JEventDispatcher class is an event handler which calls all plugins registered for a particular event, when that event is triggered. In Joomla 4.x this has been moved to the \Joomla\Event\Dispatcher class in Joomla, and additionally follows the Mediator design pattern</translate>

<translate> See also: Component, Module, Template</translate>


Useful reference: Gallery 2: Embedding: Event-Based Loose-Coupled Integration

Recommended Reading[edit]

Developers[edit]

<translate> Plugin Development</translate>

{{Portal:Plugin_Development/Intro/<translate> en</translate>}}

<translate> Using Plugins</translate>

{{Portal:Plugin_Development/Using_Plugins/<translate> en</translate>}}

<translate> Reading list</translate>

{{Portal:Plugin_Development/Reading list/<translate> en</translate>}}

<translate> Tutorials</translate>

{{Portal:Plugin_Development/Tutorials/<translate> en</translate>}}


<translate> Plugin Development Articles Needed</translate>

{{Portal:Plugin_Development/Projects/<translate> en</translate>}}


For more developer information, see Plugin Development.

Events[edit]

<translate> Joomla! ships with a variety of core events, organised into groups. These are described in the following topics.</translate>

<translate>

Api Authentication[edit]

</translate>

<translate>

Authentication[edit]

</translate>

<translate>

Behaviour[edit]

</translate>

<translate>

Captcha[edit]

</translate>

<translate>

Content[edit]

</translate>

<translate>

Editors[edit]

</translate>

<translate>

Editors-xtd[edit]

</translate>

<translate>

Extensions[edit]

</translate>

<translate>

Fields[edit]

</translate>

<translate>

Filesystem[edit]

</translate>

<translate>

Finder[edit]

</translate>

<translate>

Installer[edit]

</translate>

<translate>

Media Action[edit]

</translate>

<translate>

Privacy[edit]

</translate>

<translate>

Quick Icons[edit]

</translate>

<translate>

Sampledata[edit]

</translate>

<translate>

Schemaorg[edit]

</translate>

<translate>

System[edit]

</translate>

<translate>

User[edit]

</translate>

<translate>

Web Services[edit]

</translate>

<translate>

Workflow[edit]

</translate>

<translate> === Other Core Component Events === </translate>

<translate>

Actionlog Component[edit]

</translate>

<translate>

Cache Component[edit]

</translate>

<translate>

Checkin Component[edit]

</translate>

<translate>

Config Component[edit]

</translate>

<translate>

Contact Component[edit]

</translate>

<translate>

Installer Component[edit]

</translate>

<translate>

Menu Component[edit]

</translate>

<translate>

Module[edit]

</translate>