Php 组件安装时joomla 3.0中的插件安装

Php 组件安装时joomla 3.0中的插件安装,php,joomla,joomla3.0,Php,Joomla,Joomla3.0,我正在尝试用joomla 3.0中的插件创建新组件 我成功地安装了这个组件。我的要求是安装带有组件的插件,但在安装过程中出现了一些问题 为此,我创建了插件xml 我在main manifest.xml文件中编写了这段代码 <plugins> <plugin plugin="switcher" group="system"> <files folder="plg_system_switcher"> <file&

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

我成功地安装了这个组件。我的要求是安装带有组件的插件,但在安装过程中出现了一些问题

为此,我创建了插件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,但manifest不返回任何类似插件的对象

请帮忙

提前谢谢


Mayur.

嗨,我解决了这个问题,获取插件的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);
}

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

嗨,我解决了这个问题,获取插件的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);
}

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

我不确定您的理解是否正确。但是如果你想把一个组件和一个插件一起安装,你通常只是把它作为一个包来安装。 为此,您需要为组件和插件创建一个常规安装包。因此,每一个都是可以独立安装的,彼此都有自己的清单和所有内容

然后使用这两个zipfile创建第三个zipfile和另一个名为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>

扩展名包
2013-04-13
作者姓名
dummy@example.com
http://www.example.com
知识共享3.0
1
扩展名
扩展说明
com_extensionname.zip
plg_extensionname.zip

Joomla将自动同时安装这两个扩展。

我不确定您的理解是否正确。但是如果你想把一个组件和一个插件一起安装,你通常只是把它作为一个包来安装。 为此,您需要为组件和插件创建一个常规安装包。因此,每一个都是可以独立安装的,彼此都有自己的清单和所有内容

然后使用这两个zipfile创建第三个zipfile和另一个名为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>

扩展名包
2013-04-13
作者姓名
dummy@example.com
http://www.example.com
知识共享3.0
1
扩展名
扩展说明
com_extensionname.zip
plg_extensionname.zip

Joomla将自动同时安装这两个扩展。

在Joomla 3.0中,不推荐使用Jxmlelement。要使用它,您需要使用
jimport('legacy.utilities.xmlement')否则请使用PHP SimpleXML元素classIn Joomla 3.0,不推荐使用Jxmlelement。要使用它,您需要使用
jimport('legacy.utilities.xmlement')
else使用PHP SimpleXML元素类