Плагины расширения используются как на морде, так и в админке. Они должны быть созданы классов, производных от базового класса VmExtendedPlugin:

    public function __construct (&$subject, $config=array()) {
        parent::__construct($subject, $config);
        $this->_path = JPATH_PLUGINS.DS.$this->getName();
        JPlugin::loadLanguage('plg_vmextended_'.$this->getName());
    }


Ниже приведен список с событиями и описание на какой момент они вызываются.

onVmAdminController () - Это событие генерируется, когда вызываемый вид не был найден в главном контроллере админки. Это позволяет добавлять новые виды для VirtueMart 2.

Возвращает:
Он должен выполнить контроллер в плагине.

Параметры:

    (Строка) Имя контроллера.

	/**
	 * Вставка в бэкэнд логики контроллера для вставки пользовательского контроллера в компонент пространства VM
	 * Это означает, что ссылки могут быть построены как index.php?option=com_virtuemart&view=myaddon и работать
	 *
	 * @param string $controller Имя контроллера запроса
	 * @return Значение true, если этот  файл загружен (в противном случае null)
	 */
	public function onVmAdminController ($controller) 
	{ 
		if ($controller = 'myplug') 
		{
			require_once($this->_path.DS.'controllers'.DS.'myplug_admin.php');
			return true;	
		}
		return null; 
	}

 



onVmSiteController () - Это событие генерируется, когда вызываемый вид не был найден в главном контроллере морды. Это позволяет добавлять новые виды для VirtueMart 2.

Возвращает:
Он должен выполнить контроллер в плагине.

Параметры:

    (Строка) Имя контроллера.


	/**
	 * Plugs into the frontend controller logic to insert a custom controller into the VM component space
	 * This means that links can be constructed as index.php?option=com_virtuemart&view=myaddon and work
	 *
	 * @param string $controller Name of controller requested
	 * @return True if this loads a file (null otherwise)
	 */
	public function onVmSiteController ($controller) 
	{ 
		if ($controller = 'myplug') {
			require_once($this->_path.DS.'controllers'.DS.'myplug.php');
			return true;
		}
		return null; 
	}
onVmSqlRemove () Подключается к обновляемой модели , чтобы удалить дополнительные данные VM (полезно, если плагин зависит от полей в таблице VM.)


Параметры:

    (Объект) VirtueMartModelUpdatesMigration объект.

	/**
	 * Plugs into the updater model to remove additional VM data (useful if the plugin depends on fields in a VM table)
	 *
	 * @param object $updater VirtueMartModelUpdatesMigration object
	 */
	public function onVmSqlRemove (&$updater) 
	{ 
		$filename = $this->_path.DS.'install'.DS.'uninstall_required_data.sql';
		$updater->execSQLFile($filename);
		return null; 
	}

onVmSqlRestore () Подключается к обновляемой модели , чтобы переустановить дополнительные данные VM (полезно, если плагин зависит от полей в таблице VM.)  

Параметры:

    (Объект) VirtueMartModelUpdatesMigration объект.

	/**
	 * Plugs into the updater model to reinstall additional VM data (useful if the plugin depends on fields in a VM table)
	 *
	 * @param object $updater VirtueMartModelUpdatesMigration object
	 */
	public function onVmSqlRestore (&$updater) 
	{ 
		$filename = $this->_path.DS.'install'.DS.'install_required_data.sql';
		$updater->execSQLFile($filename);
		return null; 
	}