Using Joomla Ajax Interface

From Joomla! Documentation

Revision as of 08:57, 21 November 2013 by Betweenbrain (talk | contribs)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

What is The Joomla Ajax Interface

A slim, extensible component to act as an entry point for Ajax functionality in Joomla. It enables the ability to make requests to modules and plugins.

Anatomy of an Ajax Request

Required

  • option=com_ajax
  • [module|plugin]=name

Optional

  • format=[json|debug] defaults to raw if omitted.
  • method=[custom fragment] defaults to get if omitted.

Overview

All requests begin with ?option=com_ajax, which calls this extension, and must indicate the type of extension to call, and the data format to be returned.

Additional variables and values used by your extension may also be included in the URL.

For example, a request to ?option=com_ajax&module=session would call mod_session with results returned in the default format. In contrast,?option=com_ajax&plugin=session&format=json would trigger the onAjaxSession plugin group with results returned in JSON.

Module Support

Summary

Module support is accomplished by calling a method in the module's helper.php file.

Details

Module requests must include the module variable in the URL, paired with the name of the module (i.e. module=session for mod_session).

This value is also used for:

  • The name of the directory to check for the helper file, e.g. /modules/mod_session/helper.php
  • The class name to call, e.g. modSessionHelper

Optionally, the method variable may be included to override the default method prefix of get.

NOTE: All methods must end in Ajax. For example, method=mySuperAwesomeMethodToTrigger will call mySuperAwesomeMethodToTriggerAjax

The Ajax Session Module is an example module that demonstrates this functionality.

Plugin Response

Summary

Plugin support is accomplished by triggering the onAjax[Name] plugin event.

Details

Plugin requests must include the plugin variable in the URL, paired with the name of the plugin event, e.g. plugin=session for onAjaxSession.

This value is also used for:

  • The plugin class name following the plgAjax[Name] convention.
  • The plugin function name following the onAjax[Name] convention.

The Ajax Latest Articles plugin is an example plugin that demonstrates this functionality.

Response Format

format=[json|debug] is an optional argument for the results format:

  • json for JSON format
  • debug for human-readable output of the results.