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