在joomla 3.0中安装组件时安装插件


Plugin installation in joomla 3.0 when component install

我正在尝试在joomla 3.0中使用插件创建新组件

i成功安装组件。我的要求是安装插件与组件,但在安装一些问题。

为此我创建了插件xml。

在main manifest.xml文件中,我编写了以下代码:

<plugins>
     <plugin plugin="switcher"  group="system">
         <files folder="plg_system_switcher">
        <file>switcher.php</file>
        <file>switcher.xml</file>
    </files>
     </plugin>
</plugins>

和我创建的脚本文件安装后,我写这段代码。

jimport('joomla.utilities.xmlelement');
jimport('joomla.utilities.simplexml');
$plugins = $this->manifest->plugins;

我想从$this->manifest中获取plugins信息,但是manifest不返回任何类似plugins的对象。

请帮忙,

提前感谢。

Mayur .

我不太明白你的意思。但是,如果您想将组件与插件一起安装,通常只需将其作为包安装即可。为此,您需要为组件和插件创建一个常规安装包。因此,每一个都可以独立于其他安装,有自己的清单和所有东西。

然后使用这两个zip文件创建第三个zip文件,以及名为plg_extensionname.xml的附加清单文件。这个清单文件看起来像这样:

<?xml version="1.0" encoding="UTF-8" ?>
<extension type="package" version="3.0" method="upgrade">
    <name>Extensionname Package</name>
    <creationDate>2013-04-13</creationDate>
    <author>Author Name</author>
    <authorEmail>dummy@example.com</authorEmail>
    <authorUrl>http://www.example.com</authorUrl>
    <license>Creative Commons 3.0</license>
    <version>1.0</version>
    <packagename>extensionname</packagename>
    <description>Description for Extension</description>
    <files>
        <file type="component" id="com_extensionname" >com_extensionname.zip</file>
        <file type="plugin" id="plg_extensionname">plg_extensionname.zip</file>
    </files>
</extension>

Joomla会自动将两个扩展安装在一起。

嗨,我解决了这个问题抓取tmp路径,插件,并调用安装程序类。所有这些都在脚本文件中。下面是代码:

    public function install($adapter){
        $installer = JInstaller::getInstance();
        $path = $installer->getPath('source');
        $plugin_dir = $path.'/my_plugin_dir';
        $plugin_installer = new JInstaller();
        $plugin_installer->install($plugin_dir);
}

还可以执行一些额外的检查,如果路径存在,如果包是有效的,等等…