【问题标题】:Plugin installation in joomla 3.0 when component install组件安装时在 joomla 3.0 中安装插件
【发布时间】:2013-04-13 04:43:58
【问题描述】:

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

我成功安装了组件。我的要求是安装带有组件的插件,但安装时出现了一些问题。

为此我创建了插件 xml。

在主 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 的插件信息,但清单不返回任何像插件这样的对象。

请帮忙,

提前致谢。

马尤尔。

【问题讨论】:

  • 在 Joomla 3.0 中,不推荐使用 Jxmlelement。要使用它,您需要使用 jimport('legacy.utilities.xmlelement'); 否则使用 PHP SimpleXML Element 类

标签: php joomla joomla3.0


【解决方案1】:

我不确定我的理解是否正确。但是,如果您想将组件与插件一起安装,通常只需将其安装为一个包。 为此,您为组件和插件创建一个常规安装包。因此,每个都可以独立于另一个安装,具有自己的清单和所有内容。

这两个 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 会自动同时安装这两个扩展。

【讨论】:

    【解决方案2】:

    您好,我通过获取插件的 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);
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多