Plugin
m (Referenced "Recommended Reading" reference) |
m (Split off events to Plugin events) |
||
| Line 15: | Line 15: | ||
==Events== | ==Events== | ||
| − | + | {{:Plugin events}} | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
<noinclude>[[Category:Landing Pages]][[Category:Glossary]][[Category:Development]][[Category:Plugins]]</noinclude> | <noinclude>[[Category:Landing Pages]][[Category:Glossary]][[Category:Development]][[Category:Plugins]]</noinclude> | ||
Revision as of 08:41, 14 July 2011
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 the Joomla! Framework. It also offers extension developers a way to allow other extensions to respond to their actions, making extensions extensible.
The Joomla! plugin architecture follows the Observer design pattern. The JPlugin class is derived from JObserver and provides the means to register custom plugin code with core or custom events. The JEventDispatcher class, derived from JObservable, is an event handler which calls all plugins registered for a particular event, when that event is triggered.
See also: Component, Module, Template
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 Framework overview.
The Joomla! plugin architecture follows the Observer design pattern. The JPlugin class is derived from JObserver and provides the means to register custom plugin code with core or custom events. The JEventDispatcher class, derived from JObservable, is an event handler which calls all plugins registered for a particular event, when that event is triggered.
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.
Useful reference: Gallery 2: Embedding: Event-Based Loose-Coupled Integration
Contents |
Recommended Reading
Developers
- Plugin Developer Overview
- Creating a Plugin for Joomla 1.5
- Creating a content plugin
- Creating a search plugin
- Creating a Smart Search plug-in
- Creating an Authentication Plugin for Joomla 1.5
- Supporting plugins in your component
- Triggering content plugins in your extension
- Creating a System Plugin to augment JRouter
For more developer information, see Plugin Development.
Events
Joomla! ships with a variety of core events, organised into groups. These are described in the following topics.
Authentication
Captcha
Content
- onAfterDisplay
- onAfterContentSave
- onAfterDisplayTitle
- onAfterDisplayContent
- onPrepareContent
- onBeforeDisplay
- onBeforeContentSave
- onBeforeDisplayContent
- onContentPrepareForm
- onContentPrepareData
- onContentAfterDelete
- onContentBeforeDelete

- onContentBeforeDisplay

- onContentAfterDisplay

- onContentBeforeSave

- onContentAfterSave

- onContentChangeState
- onContentPrepare

- onContentSearch

- onContentSearchAreas

- onContentAfterTitle
Contact
Editors
- onCustomEditorButton (editors-xtd)
- onInit
- onSave
- onSetContent
- onDisplay
- onGetContent
- onGetInsertMethod
Extensions
Finder
- onFinderCategoryChangeState
- onFinderChangeState
- onFinderAfterDelete
- onFinderAfterDelete
- onFinderBeforeSave
- onFinderAfterSave
Quick Icons
Search
System
- onAfterInitialise
- onAfterRoute
- onAfterDispatch
- onAfterRender
- onBeforeRender
- onBeforeCompileHead
- onSearch
- onSearchAreas
- onGetWebServices
User
- onBeforeDeleteUser
- onAfterDeleteUser
- onBeforeStoreUser
- onAfterStoreUser
- onLoginUser
- onLoginFailure
- onLogoutUser
- onLogoutFailure
- onUserBeforeSave
- onUserAfterSave
- onUserBeforeDelete
- onUserAfterDelete
- onUserLogin
- onUserLogout
- onUserLogout
- onUserAuthenticate
- onUserAuthorisation