Создание плагина для Joomla

Материал из Newman's WiKi.

Перейти к: навигация, поиск

Описание создания плагина (plugin) для Joomla 1.5

Содержание

Типы плагинов

  • authentication
  • content
  • editors
  • editors-xtd
  • search
  • system
  • user
  • xmlrpc

Структура плагина

Плагин состоит из двух файлов: файл описания в формате XML и файл PHP скрипта. Файл скрипта имеет следующую структуру:

Файл описания

пример для системного плагина test

<?xml version="1.0" encoding="utf-8"?>
<install version="1.5.2" type="plugin" group="system" method="upgrade">
	<name>System - Test</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>A test system plugin</description>
	<files>
		<filename plugin="test">test.php</filename>
	</files>
	<params>
  		<param name="example"
  		type="text"
  		default=""
  		label="Example"
  		description="An example text parameter" />
	</params>
</install>

Файл скрипта

приведен пример системного плагина (system) с именем файла (test.php)

defined( '_JEXEC' ) or die( 'Restricted access' );

jimport( 'joomla.plugin.plugin' );

class plgSystemTest extends JPlugin
{
	function plgSystemTest( &$subject, $config )
	{
		parent::__construct( $subject, $config );
	}
}

Вся основная обработка производится в методах класса с заранее определенными именами.

Соглашение о имени файла и имени класса

Имя файла может состоять из любых символов латинского алфавита. Особое внимание следует обратить на имя класса. Оно формируется следующим образом: plg<Folder><Filename>

где plg - обязательный префикс, <Folder> - имя категории к которой относится плагин, <Filename> - имя файла плагина (без расширения)

Методы - обработчики событий

  • Authentication
    • onAuthenticate
  • Content
    • onPrepareContent
    • onAfterDisplayTitle
    • onBeforeDisplayContent
    • onBeforeContentSave (new in 1.5.4)
    • onAfterContentSave (new in 1.5.4)
  • Editors
    • onInit
    • onGetContent
    • onSetContent
    • onSave
    • onDisplay
    • onGetInsertMethod
  • Editors XTD (Extended)
    • onDisplay
  • Search
    • onSearch
    • onSearchAreas
  • System
    • onAfterInitialise
    • onAfterRoute
    • onAfterDispatch
    • onAfterRender
  • User
    • onLoginUser
    • onLoginFailure
    • onLogoutUser
    • onLogoutFailure
    • onBeforeStoreUser
    • onAfterStoreUser
    • onBeforeDeleteUser
    • onAfterDeleteUser
  • XML-RPC
    • onGetWebServices