<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kanta</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kanta"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Kanta"/>
	<updated>2026-05-25T06:45:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201733</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201733"/>
		<updated>2015-07-07T09:23:51Z</updated>

		<summary type="html">&lt;p&gt;Kanta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=серия}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин реагировать на неосновные системные события вашего выбора для &amp;lt;code&amp;gt;группы=&amp;quot;ХХХ&amp;quot;&amp;lt;/code&amp;gt; тег должен отличаться от любого из существующих базовых категорий.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить событие, используйте следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно отметить, что параметры должны передаваться в массиве. Функция же в плагине будет получить параметры как отдельные значения. Возвращаемое значение будет состоять из массив возвращаемых значений из разных плагинов (поэтому он также может содержать многоуровневые массивы). Возвращаться будет массив значений из разных плагинов (этот массив может быть многоуровневым).&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин для нового события, а не для встроенного события ядра. то не забудьте активировать плагин после установки. Перед ссылкой на ваш новый плагин должна стоять команда &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/7/ru&amp;diff=201732</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/7/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/7/ru&amp;diff=201732"/>
		<updated>2015-07-07T09:23:51Z</updated>

		<summary type="html">&lt;p&gt;Kanta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если вы создаете плагин реагировать на неосновные системные события вашего выбора для &amp;lt;code&amp;gt;группы=&amp;quot;ХХХ&amp;quot;&amp;lt;/code&amp;gt; тег должен отличаться от любого из существующих базовых категорий.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201731</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201731"/>
		<updated>2015-07-07T09:21:37Z</updated>

		<summary type="html">&lt;p&gt;Kanta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=серия}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить событие, используйте следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно отметить, что параметры должны передаваться в массиве. Функция же в плагине будет получить параметры как отдельные значения. Возвращаемое значение будет состоять из массив возвращаемых значений из разных плагинов (поэтому он также может содержать многоуровневые массивы). Возвращаться будет массив значений из разных плагинов (этот массив может быть многоуровневым).&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин для нового события, а не для встроенного события ядра. то не забудьте активировать плагин после установки. Перед ссылкой на ваш новый плагин должна стоять команда &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/14/ru&amp;diff=201730</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/14/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/14/ru&amp;diff=201730"/>
		<updated>2015-07-07T09:21:36Z</updated>

		<summary type="html">&lt;p&gt;Kanta: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Важно отметить, что параметры должны передаваться в массиве. Функция же в плагине будет получить параметры как отдельные значения. Возвращаемое значение будет состоять из массив возвращаемых значений из разных плагинов (поэтому он также может содержать многоуровневые массивы). Возвращаться будет массив значений из разных плагинов (этот массив может быть многоуровневым).&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201725</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201725"/>
		<updated>2015-07-07T09:13:49Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;серия&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=серия}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить событие, используйте следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно отметить, что параметры должны быть в массиве. Плагин функция сама будет получить параметры как отдельные значения. Возвращаемое значение будет состоять из массив возвращаемых значений из разных плагинов (поэтому он также может содержать многоуровневые массивы). Возвращаться будет массив значений из разных плагинов (этот массив может быть многоуровневым).&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин для нового события, а не для встроенного события ядра. то не забудьте активировать плагин после установки. Перед ссылкой на ваш новый плагин должна стоять команда &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/1/ru&amp;diff=201724</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/1/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/1/ru&amp;diff=201724"/>
		<updated>2015-07-07T09:13:49Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;серия&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;серия&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/Page_display_title/ru&amp;diff=201723</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/Page display title/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/Page_display_title/ru&amp;diff=201723"/>
		<updated>2015-07-07T09:13:01Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;J3.x:Создание плагина для Joomla&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;J3.x:Создание плагина для Joomla&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/16/ru&amp;diff=201718</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/16/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/16/ru&amp;diff=201718"/>
		<updated>2015-07-07T09:12:20Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Category:Tutorials Category:Plugin Development&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201717</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201717"/>
		<updated>2015-07-07T09:12:10Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Если вы создаете плагин для нового события, а не для встроенного события ядра. то не забудьте ак...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить событие, используйте следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно отметить, что параметры должны быть в массиве. Плагин функция сама будет получить параметры как отдельные значения. Возвращаемое значение будет состоять из массив возвращаемых значений из разных плагинов (поэтому он также может содержать многоуровневые массивы). Возвращаться будет массив значений из разных плагинов (этот массив может быть многоуровневым).&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин для нового события, а не для встроенного события ядра. то не забудьте активировать плагин после установки. Перед ссылкой на ваш новый плагин должна стоять команда &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/15/ru&amp;diff=201716</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/15/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/15/ru&amp;diff=201716"/>
		<updated>2015-07-07T09:12:09Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Если вы создаете плагин для нового события, а не для встроенного события ядра. то не забудьте ак...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если вы создаете плагин для нового события, а не для встроенного события ядра. то не забудьте активировать плагин после установки. Перед ссылкой на ваш новый плагин должна стоять команда &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201711</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201711"/>
		<updated>2015-07-07T09:08:45Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Важно отметить, что параметры должны быть в массиве. Плагин функция сама будет получить парамет...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить событие, используйте следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Важно отметить, что параметры должны быть в массиве. Плагин функция сама будет получить параметры как отдельные значения. Возвращаемое значение будет состоять из массив возвращаемых значений из разных плагинов (поэтому он также может содержать многоуровневые массивы). Возвращаться будет массив значений из разных плагинов (этот массив может быть многоуровневым).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/14/ru&amp;diff=201710</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/14/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/14/ru&amp;diff=201710"/>
		<updated>2015-07-07T09:08:44Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Важно отметить, что параметры должны быть в массиве. Плагин функция сама будет получить парамет...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Важно отметить, что параметры должны быть в массиве. Плагин функция сама будет получить параметры как отдельные значения. Возвращаемое значение будет состоять из массив возвращаемых значений из разных плагинов (поэтому он также может содержать многоуровневые массивы). Возвращаться будет массив значений из разных плагинов (этот массив может быть многоуровневым).&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201700</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201700"/>
		<updated>2015-07-07T08:55:38Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Чтобы запустить событие, используйте следующий код:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;br /&gt;
&lt;br /&gt;
Чтобы запустить событие, используйте следующий код:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/13/ru&amp;diff=201699</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/13/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/13/ru&amp;diff=201699"/>
		<updated>2015-07-07T08:55:38Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Чтобы запустить событие, используйте следующий код:&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чтобы запустить событие, используйте следующий код:&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201698</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201698"/>
		<updated>2015-07-07T08:55:11Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;=== Использования плагинов в коде === Теперь, когда вы создали свой плагин, то вам наверняка захоче...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/12/ru&amp;diff=201697</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/12/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/12/ru&amp;diff=201697"/>
		<updated>2015-07-07T08:55:10Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;=== Использования плагинов в коде === Теперь, когда вы создали свой плагин, то вам наверняка захоче...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Использования плагинов в коде ===&lt;br /&gt;
Теперь, когда вы создали свой плагин, то вам наверняка захочется его вызвать. Но необязательно, ядро Joomla! имеет набор встроенных событий, которые вы пожете использовать для запуска плагина. Тогда нижеописанное делать не нужно:&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201696</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201696"/>
		<updated>2015-07-07T08:52:18Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его назван...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/11/ru&amp;diff=201695</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/11/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/11/ru&amp;diff=201695"/>
		<updated>2015-07-07T08:52:18Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его назван...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В следующем примере &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; представляет группу (тип) плагина, а &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; его название. Обратите внимание, что имена класса и функции в PHP не чувствительны к регистру.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201694</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201694"/>
		<updated>2015-07-07T08:50:59Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the parameters set for this plugin by the administrator * &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина * &amp;lt;code&amp;gt;$th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/10/ru&amp;diff=201693</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/10/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/10/ru&amp;diff=201693"/>
		<updated>2015-07-07T08:50:59Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the parameters set for this plugin by the administrator * &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина * &amp;lt;code&amp;gt;$th...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: имя плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: группа (тип) плагина&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: объект базы данных (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: объект приложения (since {{JVer|3.1}})&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201692</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201692"/>
		<updated>2015-07-07T08:50:03Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;=== Создание плагинов === Объектно-ориентированный подход к написанию плагинов включает в себя со...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/9/ru&amp;diff=201691</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/9/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/9/ru&amp;diff=201691"/>
		<updated>2015-07-07T08:50:03Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;=== Создание плагинов === Объектно-ориентированный подход к написанию плагинов включает в себя со...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Создание плагинов ===&lt;br /&gt;
Объектно-ориентированный подход к написанию плагинов включает в себя создание подклассов от [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], базового класса, реализующего основные свойства плагинов. Для ваших методов доступны следующие свойства:&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201690</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201690"/>
		<updated>2015-07-07T08:46:59Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет уст...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;br /&gt;
&lt;br /&gt;
=== Creating the Plugin ===&lt;br /&gt;
The object-oriented way of writing plugins involves writing a subclass of [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], a base class that implements the basic properties of plugins. In your methods, the following properties are available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/8/ru&amp;diff=201689</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/8/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/8/ru&amp;diff=201689"/>
		<updated>2015-07-07T08:46:59Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет уст...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Совет: если вы добавляете атбибут &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot; &amp;lt;/code&amp;gt; к тэгу &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, то плагин можно будет устанавливать без удаления предыдущей версии. Все существующие файлы будут перезаписаны, но оставшиеся файлы удалены не будут..&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201688</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201688"/>
		<updated>2015-07-07T08:44:35Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039; If you add the attribute &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot;&amp;lt;/code&amp;gt; to the tag &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, this plugin can be installed without uninstalling an earlier version. All existing files will be overwritten, but old files will not be deleted.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Plugin ===&lt;br /&gt;
The object-oriented way of writing plugins involves writing a subclass of [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], a base class that implements the basic properties of plugins. In your methods, the following properties are available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/7/ru&amp;diff=201687</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/7/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/7/ru&amp;diff=201687"/>
		<updated>2015-07-07T08:44:34Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если вы делаете плагин, которые будет реагировать не на системные события ядра, то тег &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен отличаться от существующих базовых категорий ядра.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201686</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201686"/>
		<updated>2015-07-07T08:42:34Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin to respond to non-core system events your choice for the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; tag should be different than any of the existing core categories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039; If you add the attribute &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot;&amp;lt;/code&amp;gt; to the tag &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, this plugin can be installed without uninstalling an earlier version. All existing files will be overwritten, but old files will not be deleted.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Plugin ===&lt;br /&gt;
The object-oriented way of writing plugins involves writing a subclass of [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], a base class that implements the basic properties of plugins. In your methods, the following properties are available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/6/ru&amp;diff=201685</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/6/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/6/ru&amp;diff=201685"/>
		<updated>2015-07-07T08:42:33Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если вы создаете плагин, который реагирует на существующие события ядра, атрибут &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; должен быть изменен в соответствии с именем уже существующей папки для события, которое вы хотите использовать. Например, &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. Смотрите [[S:MyLanguage/Plugin/Events|Plugin/Events]] полный список существующих категорий событий. При создании нового плагина важно, чтобы его название было уникальным, и чтобы он не конфликтовал с уже существующими плагинами, которые могут реагировать на то же событие, какое используете вы.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201684</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201684"/>
		<updated>2015-07-07T06:28:06Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из о...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin that responds to existing core events, the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; attribute would be changed to reflect the name of existing plugin folder for the event type you wish to augment. e.g. &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. See [[S:MyLanguage/Plugin/Events|Plugin/Events]] for a complete list of existing core event categories. In creating a new plugin to respond to core events it is important that your plugin&#039;s name is unique and does not conflict with any of the other plugins that may also be responding to the core event you wish to service as well.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin to respond to non-core system events your choice for the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; tag should be different than any of the existing core categories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039; If you add the attribute &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot;&amp;lt;/code&amp;gt; to the tag &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, this plugin can be installed without uninstalling an earlier version. All existing files will be overwritten, but old files will not be deleted.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Plugin ===&lt;br /&gt;
The object-oriented way of writing plugins involves writing a subclass of [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], a base class that implements the basic properties of plugins. In your methods, the following properties are available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/3/ru&amp;diff=201683</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/3/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/3/ru&amp;diff=201683"/>
		<updated>2015-07-07T06:28:05Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из о...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В этом руководстве описаны основы разработки своего плагина. Большинство плагинов состоит из одного файла с кодом, но для правильной установки он должен быть упакован в установочный файл, который будет обработан установщиком Joomla!.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201046</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201046"/>
		<updated>2015-07-06T09:20:18Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
This How-To should provide you with the basics of what you need to know to develop your own plugin. Most plugins consist of just a single code file but to correctly install the plugin code it must be packaged into an installation file which can be processed by the Joomla! installer.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin that responds to existing core events, the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; attribute would be changed to reflect the name of existing plugin folder for the event type you wish to augment. e.g. &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. See [[S:MyLanguage/Plugin/Events|Plugin/Events]] for a complete list of existing core event categories. In creating a new plugin to respond to core events it is important that your plugin&#039;s name is unique and does not conflict with any of the other plugins that may also be responding to the core event you wish to service as well.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin to respond to non-core system events your choice for the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; tag should be different than any of the existing core categories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039; If you add the attribute &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot;&amp;lt;/code&amp;gt; to the tag &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, this plugin can be installed without uninstalling an earlier version. All existing files will be overwritten, but old files will not be deleted.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Plugin ===&lt;br /&gt;
The object-oriented way of writing plugins involves writing a subclass of [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], a base class that implements the basic properties of plugins. In your methods, the following properties are available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/5/ru&amp;diff=201045</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/5/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/5/ru&amp;diff=201045"/>
		<updated>2015-07-06T09:20:17Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Как можно заметить, он похожа на другие инсталляционные XML файлы для Joomla!. Нужно только обратить внимание на запись &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; в разделе &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt;, а также на дополнительную информацию в разделе &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; . Эта информация сообщает Joomla!, в какую папку копировать файл и в какую группу будет добавлен плагин.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201044</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201044"/>
		<updated>2015-07-06T08:40:25Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;===  Создание установочного файла === Как и любые расширения для Joomla, плагины легко устанавливаютс...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
This How-To should provide you with the basics of what you need to know to develop your own plugin. Most plugins consist of just a single code file but to correctly install the plugin code it must be packaged into an installation file which can be processed by the Joomla! installer.&lt;br /&gt;
&lt;br /&gt;
===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, the system is similar to other Joomla! XML installation files. You only have to look out for the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; entry in the &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; tag and the extended information in the &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; tag. This information tells Joomla! into which folder to copy the file and to which group the plugin should be added.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin that responds to existing core events, the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; attribute would be changed to reflect the name of existing plugin folder for the event type you wish to augment. e.g. &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. See [[S:MyLanguage/Plugin/Events|Plugin/Events]] for a complete list of existing core event categories. In creating a new plugin to respond to core events it is important that your plugin&#039;s name is unique and does not conflict with any of the other plugins that may also be responding to the core event you wish to service as well.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin to respond to non-core system events your choice for the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; tag should be different than any of the existing core categories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039; If you add the attribute &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot;&amp;lt;/code&amp;gt; to the tag &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, this plugin can be installed without uninstalling an earlier version. All existing files will be overwritten, but old files will not be deleted.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Plugin ===&lt;br /&gt;
The object-oriented way of writing plugins involves writing a subclass of [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], a base class that implements the basic properties of plugins. In your methods, the following properties are available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/4/ru&amp;diff=201043</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/4/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/4/ru&amp;diff=201043"/>
		<updated>2015-07-06T08:40:24Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;===  Создание установочного файла === Как и любые расширения для Joomla, плагины легко устанавливаютс...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===  Создание установочного файла ===&lt;br /&gt;
Как и любые расширения для Joomla, плагины легко устанавливаются в виде .zip файлов (.tar.gz тоже поддерживается), но архив должен содержать правильно составленный XML файл. Вот пример XML файла для плагина поиска по категориям.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201042</id>
		<title>J3.x:Creating a Plugin for Joomla/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_Plugin_for_Joomla/ru&amp;diff=201042"/>
		<updated>2015-07-06T08:36:42Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для о...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=3.x|comment=series}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;br /&gt;
&lt;br /&gt;
This How-To should provide you with the basics of what you need to know to develop your own plugin. Most plugins consist of just a single code file but to correctly install the plugin code it must be packaged into an installation file which can be processed by the Joomla! installer.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Installation File ===&lt;br /&gt;
As with all extensions in Joomla, plugins are easily installed as a .zip file (.tar.gz is also supported) but a correctly formatted XML file must be included. As an example, here is the XML installation file for the categories search plugin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;search&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_search_categories&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;November 2005&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;3.1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_SEARCH_CATEGORIES_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;categories&amp;quot;&amp;gt;categories.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_search_categories.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_limit&amp;quot; type=&amp;quot;text&amp;quot;&lt;br /&gt;
					default=&amp;quot;50&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL&amp;quot;&lt;br /&gt;
					size=&amp;quot;5&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_content&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ALL_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ALL_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;search_archived&amp;quot; type=&amp;quot;radio&amp;quot;&lt;br /&gt;
					default=&amp;quot;0&amp;quot;&lt;br /&gt;
					description=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;JFIELD_PLG_SEARCH_ARCHIVED_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOFF&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JON&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see, the system is similar to other Joomla! XML installation files. You only have to look out for the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; entry in the &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; tag and the extended information in the &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; tag. This information tells Joomla! into which folder to copy the file and to which group the plugin should be added.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin that responds to existing core events, the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; attribute would be changed to reflect the name of existing plugin folder for the event type you wish to augment. e.g. &amp;lt;code&amp;gt;group=&amp;quot;authentication&amp;quot;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;group=&amp;quot;user&amp;quot;&amp;lt;/code&amp;gt;. See [[S:MyLanguage/Plugin/Events|Plugin/Events]] for a complete list of existing core event categories. In creating a new plugin to respond to core events it is important that your plugin&#039;s name is unique and does not conflict with any of the other plugins that may also be responding to the core event you wish to service as well.&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin to respond to non-core system events your choice for the &amp;lt;code&amp;gt;group=&amp;quot;xxx&amp;quot;&amp;lt;/code&amp;gt; tag should be different than any of the existing core categories.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039; If you add the attribute &amp;lt;code&amp;gt;method=&amp;quot;upgrade&amp;quot;&amp;lt;/code&amp;gt; to the tag &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;, this plugin can be installed without uninstalling an earlier version. All existing files will be overwritten, but old files will not be deleted.&lt;br /&gt;
&lt;br /&gt;
=== Creating the Plugin ===&lt;br /&gt;
The object-oriented way of writing plugins involves writing a subclass of [http://api.joomla.org/Joomla-Platform/Plugin/JPlugin.html JPlugin], a base class that implements the basic properties of plugins. In your methods, the following properties are available:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;params&amp;lt;/code&amp;gt;: the [[S:MyLanguage/Parameter|parameters]] set for this plugin by the administrator&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_name&amp;lt;/code&amp;gt;: the name of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;_type&amp;lt;/code&amp;gt;: the group (type) of the plugin&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;db&amp;lt;/code&amp;gt;: the db object (since {{JVer|3.1}})&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;app&amp;lt;/code&amp;gt;: the application object (since {{JVer|3.1}})&lt;br /&gt;
&lt;br /&gt;
In the following code example, &amp;lt;code&amp;gt;&amp;lt;PluginGroup&amp;gt;&amp;lt;/code&amp;gt; represents the group (type) of the plugin, and &amp;lt;code&amp;gt;&amp;lt;PluginName&amp;gt;&amp;lt;/code&amp;gt; represents its name. Note that class and function names in PHP are case-insensitive.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die;&lt;br /&gt;
&lt;br /&gt;
class plg&amp;lt;PluginGroup&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Load the language file on instantiation. Note this is only available in Joomla 3.1 and higher.&lt;br /&gt;
	 * If you want to support 3.0 series you must override the constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var    boolean&lt;br /&gt;
	 * @since  3.1&lt;br /&gt;
	 */&lt;br /&gt;
	protected $autoloadLanguage = true;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Plugin method with the same name as the event will be called automatically.&lt;br /&gt;
	 */&lt;br /&gt;
	 function &amp;lt;EventName&amp;gt;()&lt;br /&gt;
	 {&lt;br /&gt;
		/*&lt;br /&gt;
		 * Plugin code goes here.&lt;br /&gt;
		 * You can access database and application objects and parameters via $this-&amp;gt;db,&lt;br /&gt;
		 * $this-&amp;gt;app and $this-&amp;gt;params respectively&lt;br /&gt;
		 */&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Using Plugins in Your Code ===&lt;br /&gt;
Now that you&#039;ve created your plugin, you will probably want to call it in your code. You might not: the Joomla! core has a number of built-in events that you might want your plugin code to be registered to. In that case you don&#039;t need to do the following.&lt;br /&gt;
&lt;br /&gt;
If you want to trigger an event then you use code like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger( &#039;&amp;lt;EventName&amp;gt;&#039;, &amp;lt;ParameterArray&amp;gt; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the parameters have to be in an array. The plugin function itself will get the parameters as single values. The return value will consist of an array of return values from the different plugins (so it can also contain multilevel arrays).&lt;br /&gt;
&lt;br /&gt;
If you are creating a plugin for a new, non-core event, remember to activate your plugin after you install it. Precede any reference to your new plugin with the &amp;lt;code&amp;gt;JPluginHelper::importPlugin()&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Plugin Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/2/ru&amp;diff=201041</id>
		<title>Translations:J3.x:Creating a Plugin for Joomla/2/ru</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Creating_a_Plugin_for_Joomla/2/ru&amp;diff=201041"/>
		<updated>2015-07-06T08:36:42Z</updated>

		<summary type="html">&lt;p&gt;Kanta: Created page with &amp;quot;Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для о...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Система плагинов в Joomla! 1.5 была очень мощной и гибкой. Плагины можно использовать не только для обработки событий, вызванных ядром приложения и его расширениями, но и для того, чтобы сделать сторонние дополнения более мощными и расширяемыми. Изменения в Joomla!  2.5/3.x в отличие от 1.5 в основном касаются имен событий.&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC:Documentation_Translators&amp;diff=200840</id>
		<title>JDOC:Documentation Translators</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC:Documentation_Translators&amp;diff=200840"/>
		<updated>2015-07-04T20:57:55Z</updated>

		<summary type="html">&lt;p&gt;Kanta: /* ru - Русский - Russian */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:JDOC translation icon.png|right]]&lt;br /&gt;
Here, people &#039;&#039;&#039;translating&#039;&#039;&#039; {{SITENAME}} can sign up as a translator. Please be sure to read the required reading list below. &lt;br /&gt;
&lt;br /&gt;
After you add your username to the list below under the appropriate language heading, a [[JDOC:Translation Administrators|Translation Administrator]] will assign your username translator permissions. After your username is added as a translator you can start translating! Please be on the look out for a [[Template:Translator welcome|welcome message]] with more information posted to your user talk page.{{-}}&lt;br /&gt;
&lt;br /&gt;
== Required Reading ==&lt;br /&gt;
* Getting started, read [[JDOC:Page Translation Quickstart Guide|Page Translation Quickstart Guide]]&lt;br /&gt;
* Detailed explanation of translating, [[JDOC:Page Translation Explained|Page Translation Explained]].&lt;br /&gt;
* Our [[JDOC:Language policy|Language policy]]&lt;br /&gt;
* [[JDOC:Translator Tips|Translator Tips]]&lt;br /&gt;
* Having an [[JDOC:Translation Questions|issue or need help]]?&lt;br /&gt;
&lt;br /&gt;
{{tip|text=Dear translators! Please [[Special:TranslatorSignup|register for translator notifications about your language]]. You are placed on a list to receive notices about new/updated pages that need translation.|title=A Tip for Translators}}&lt;br /&gt;
&lt;br /&gt;
===Add Your Username===&lt;br /&gt;
Add your username below under a language you want to translate and you will be added to the [[Special:ListUsers/translator|Translator user group]].&lt;br /&gt;
&lt;br /&gt;
===Add Your Language===&lt;br /&gt;
If your language isn&#039;t listed below, please add it using the format:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;lang code&amp;gt; - Localised language name - English language name &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use the syntax, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;* {{User|YourUsername}}&amp;lt;/nowiki&amp;gt; - requested&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a Translation Administrator adds you as a translator, they will remove the &amp;quot;- requested&amp;quot; from your username.&lt;br /&gt;
&lt;br /&gt;
==Current Translations Teams==&lt;br /&gt;
&lt;br /&gt;
Documentation language codes are different from Joomla! language codes, they are ISO 639-1 2 letter code. A small quantity of 4 letter language codes are used as an exception, but these language codes are all lowercase.&lt;br /&gt;
&lt;br /&gt;
=== ar - عربي - arabe ===&lt;br /&gt;
* {{User|ghilo}}&lt;br /&gt;
* {{User|Hicham72}}&lt;br /&gt;
&lt;br /&gt;
=== af - Afrikaans ===&lt;br /&gt;
*{{User|JoeSA}}&lt;br /&gt;
&lt;br /&gt;
=== bg - Български - Bulgarian ===&lt;br /&gt;
* {{User|bdimov}}&lt;br /&gt;
* {{User|Mastwd}}&lt;br /&gt;
&lt;br /&gt;
=== ca - Català - Catalan === &lt;br /&gt;
* {{User|el_libre}}&lt;br /&gt;
* {{User|Jcollver}}&lt;br /&gt;
* {{User|Johnnydement}}&lt;br /&gt;
&lt;br /&gt;
=== da - Dansk - Danish ===&lt;br /&gt;
* {{User|Jespertoender}}&lt;br /&gt;
* {{User|rbuelund}}&lt;br /&gt;
* {{User|tienloantran}}&lt;br /&gt;
&lt;br /&gt;
=== de - Deutsch - German ===&lt;br /&gt;
* {{User|FrankyD}}&lt;br /&gt;
* {{User|gorgonz}}&lt;br /&gt;
* {{User|joomla-agency}}&lt;br /&gt;
* {{User|Ka3media}}&lt;br /&gt;
* {{User|Paterna}}&lt;br /&gt;
* {{User|Sisko1990}}&lt;br /&gt;
* {{User|Stefanie}}&lt;br /&gt;
* {{User|Tkahl}}&lt;br /&gt;
&lt;br /&gt;
=== es - Español - Spanish ===&lt;br /&gt;
* {{User|carcam}}&lt;br /&gt;
* {{User|Crsanchez}}&lt;br /&gt;
* {{User|danielperaza}}&lt;br /&gt;
* {{User|Irene.lopez}}&lt;br /&gt;
* {{User|isidrobaq}}&lt;br /&gt;
* {{User|ivanramosnet}}&lt;br /&gt;
* {{User|Javiparati}}&lt;br /&gt;
* {{User|Jcollver}}&lt;br /&gt;
* {{User|Leo_Soto}}&lt;br /&gt;
* {{User|netandsoftware}}&lt;br /&gt;
* {{User|pfvidal}}&lt;br /&gt;
* {{User|VictorYork87}}&lt;br /&gt;
* {{User|viena}}&lt;br /&gt;
* {{User|Willin}}&lt;br /&gt;
&lt;br /&gt;
=== et - Eesti - Estonian ===&lt;br /&gt;
* {{User|Eraser}}&lt;br /&gt;
&lt;br /&gt;
=== fa - فارسی - Persian ===&lt;br /&gt;
* {{User|Grand}}&lt;br /&gt;
* {{User|Levelup}}&lt;br /&gt;
* {{User|mhehm}}&lt;br /&gt;
&lt;br /&gt;
=== fr - Français - French ===&lt;br /&gt;
* {{User|BerCalva}}&lt;br /&gt;
* {{User|Daniel}}&lt;br /&gt;
* {{User|Dylis}}&lt;br /&gt;
* {{User|Erix}}&lt;br /&gt;
* {{User|MATsxm}}&lt;br /&gt;
* {{User|Opware2000}}&lt;br /&gt;
* {{User|Rajoz}}&lt;br /&gt;
* {{User|Sandra97}}&lt;br /&gt;
* {{User|Simon}}&lt;br /&gt;
* {{User|Webdjam}}&lt;br /&gt;
&lt;br /&gt;
=== hu - Magyar - Hungarian ===&lt;br /&gt;
* {{User|Balazs}}&lt;br /&gt;
&lt;br /&gt;
=== hy - Հայերեն - Armenian ===&lt;br /&gt;
* {{User|Aaleksanyants}}&lt;br /&gt;
&lt;br /&gt;
=== id - Bahasa Indonesia - Indonesian ===&lt;br /&gt;
* {{User|dw1Rianto}}&lt;br /&gt;
* {{User|Micokelana}}&lt;br /&gt;
* {{User|sikumbang}}&lt;br /&gt;
&lt;br /&gt;
=== it - Italiano - Italian ===&lt;br /&gt;
* {{User|alexred}}&lt;br /&gt;
* {{User|alikon}}&lt;br /&gt;
* {{User|donato}}&lt;br /&gt;
* {{User|nemo_bis}} (occasionally)&lt;br /&gt;
* {{User|ste}}&lt;br /&gt;
&lt;br /&gt;
=== ja - 日本語 - Japanese ===&lt;br /&gt;
* {{User|Nori}}&lt;br /&gt;
* {{User|Richell}}&lt;br /&gt;
* {{User|Yama}}&lt;br /&gt;
&lt;br /&gt;
=== nl - Nederlands - Dutch ===&lt;br /&gt;
* {{User|Arkomat}}&lt;br /&gt;
* {{User|bcdesign}}&lt;br /&gt;
* {{User|crommie}}&lt;br /&gt;
* {{User|Grubosoft}}&lt;br /&gt;
* {{User|Hvdmeer}}&lt;br /&gt;
* {{User|Lara}}&lt;br /&gt;
* {{User|Lianne}}&lt;br /&gt;
* {{User|marionnijhuis}}&lt;br /&gt;
* {{User|Marnix}}&lt;br /&gt;
* {{User|MartijnM}}&lt;br /&gt;
* {{User|metdick}}&lt;br /&gt;
* {{User|Mtb}}&lt;br /&gt;
* {{User|n9iels}}&lt;br /&gt;
* {{User|Onderzoekspraktijk}}&lt;br /&gt;
* {{User|Rineke}}&lt;br /&gt;
* {{User|Schrijvers123}}&lt;br /&gt;
* {{User|slibbe}}&lt;br /&gt;
* {{User|Stitch123}}&lt;br /&gt;
* {{User|webmiep}}&lt;br /&gt;
* {{User|webcatsolutions}}&lt;br /&gt;
* {{User|wimstrik}}&lt;br /&gt;
&lt;br /&gt;
=== pl - Polski - Polish ===&lt;br /&gt;
* {{User|Derek}}&lt;br /&gt;
* {{User|justyna}}&lt;br /&gt;
&lt;br /&gt;
=== pt - Português - Portuguese ===&lt;br /&gt;
* {{User|Djesus}}&lt;br /&gt;
* {{User|Horus_68}}&lt;br /&gt;
* {{User|Mansil}}&lt;br /&gt;
&lt;br /&gt;
=== pt-br - Português Brasil - Brazilian Portuguese ===&lt;br /&gt;
* {{User|Airton}}&lt;br /&gt;
* {{User|AleMorettiSan}}&lt;br /&gt;
* {{User|Anabarcellos}}&lt;br /&gt;
* {{User|Ariadnepinheiro}}&lt;br /&gt;
* {{User|Dagoberto}}&lt;br /&gt;
* {{User|DiLeu}}&lt;br /&gt;
* {{User|Filipetorres}}&lt;br /&gt;
* {{User|Helvecio}}&lt;br /&gt;
* {{User|Henrydouglas}}&lt;br /&gt;
* {{User|Murilotimo}}&lt;br /&gt;
&lt;br /&gt;
=== ru - Русский - Russian ===&lt;br /&gt;
* {{User|AlexSmirnov}}&lt;br /&gt;
* {{User|Antonio3}}&lt;br /&gt;
* {{User|Dosfanat}}&lt;br /&gt;
* {{User|Vyatka}}&lt;br /&gt;
* {{User|Kanta}}&lt;br /&gt;
&lt;br /&gt;
=== sv - Svenska - Swedish ===&lt;br /&gt;
* {{User|Propellerhuvud}}&lt;br /&gt;
* {{User|Sgagner}}&lt;br /&gt;
&lt;br /&gt;
=== sw - Kiswahili - Swahili ===&lt;br /&gt;
* {{User|Ayeko}}&lt;br /&gt;
&lt;br /&gt;
=== th - ไทย - Thai ===&lt;br /&gt;
* {{User|Supachai_chai}}&lt;br /&gt;
&lt;br /&gt;
=== tr - Türkçe - Turkish ===&lt;br /&gt;
* {{User|Enes}}&lt;br /&gt;
* {{User|Ugur}}&lt;br /&gt;
* {{User|Umitkenan}}&lt;br /&gt;
&lt;br /&gt;
=== ur - ur-PK - اردو - Urdu Pakistan ===&lt;br /&gt;
* {{User|hoornayyer}}&lt;br /&gt;
&lt;br /&gt;
=== vi - Tiếng Việt - Vietnamese ===&lt;br /&gt;
* {{User|huyhoa}}&lt;br /&gt;
&lt;br /&gt;
=== zh - 中文 - Chinese ===&lt;br /&gt;
* {{User|asika32764}}&lt;br /&gt;
* {{User|eyesofkids}}&lt;br /&gt;
* {{User|Zhang19min88}}&lt;br /&gt;
&lt;br /&gt;
==Translation Administrators==&lt;br /&gt;
&lt;br /&gt;
The responsibilities of a Translation Administrator will require slightly more attention to the documents for translation. Translation Administrators should feel comfortable with using wiki markup, made hundreds of contributions to their specific language and assisted others in translation of docs. Administrators will need to check the documentation every few days and perform any required tasks. These tasks include re-marking pages in en-GB with edit changes, tracking language units which need translation and welcoming new translators. Ideally, we should have at least one Translation Administrator who will not be tied to any specific language and when the time comes, one Translation Administrator for active language teams. [[JDOC_talk:Documentation Translators|Volunteer as a Translation Administrator here]].&lt;br /&gt;
&lt;br /&gt;
===Current Volunteer Translation Administrators===&lt;br /&gt;
{{:Special:ListUsers/translationadmins}}&lt;br /&gt;
&lt;br /&gt;
==Common Language Codes==&lt;br /&gt;
&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; afr - Afrikaans - Afrikaans&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ar - عربي - Arabic&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; bg - Български - Bulgarian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; bg - Български - Bulgarian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; bn - বাংলা - Bengali&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; bo - བོད་ཡིག - tibetan&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ca - Català - Catalan&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ce - Nohçi - Chechen&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; da - Dansk - Danish&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; de - Deutsch - German&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; es - Español - Spanish&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; fa - فارسی - Persian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; fi - - Finnish&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; fr - Français - French&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; hu - Magyar - Hungarian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; hy - Հայերեն - Armenian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; id - Bahasa Indonesia - Indonesian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; is - Íslenska - Icelandic&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; it - Italiano - Italian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ja - 日本語 - Japanese&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ko - 한국어 - Korean&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; lb - Lëtzebuergesch - Luxembourgish&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; min - Baso Minangkabau - Minang&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ml - liviox alvax - Malayalam&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; mr - मराठी - Marathi&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ms - Bahasa Melayu - Malay&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; nl - Nederlands - Dutch&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; pl - Polski - Polish&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; pt - Português - Portuguese&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; pt-br - Português do Brasil - Brazilian Portuguese&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ro - Română - Romanian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ru - Русский - Russian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; sl - Slovenščina - Slovenianjtökók&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; sq - Shqip - Albanian&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; sv - Svenska - Swedish&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; sw - Kiswahili - Swahili&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; ta - தமிழ் - Tamil&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; th - ไทย - Thai&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; tr - Türkçe - Turkish&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; vi - Tiếng Việt - Vietnamese&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;small-4 columns&amp;quot;&amp;gt; zh 中文 Chinese&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Documentation Wiki Policies and Guidelines]]&lt;br /&gt;
[[Category:Documentation Translation]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kanta</name></author>
	</entry>
</feed>