2013-04-13 212 views
0

我试图用Joomla 3.0中的插件创建新组件安装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> 

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

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

我想要$ this-> manifest的插件信息,但不会显示像插件一样的任何对象。

请帮忙,

在此先感谢。

Mayur。

+0

在Joomla 3.0中,Jxmlelement已弃用。要使用它,你需要使用'jimport('legacy.utilities.xmlelement');'否则使用PHP SimpleXML Element类 –

回答

3

我不知道我理解你改正。但是,如果您想要将某个组件与插件一起安装,通常只需将其作为一个包安装即可。 为此,您可以为组件和插件创建常规安装包。所以每一个都可以独立于另一个独立的清单和所有东西。

然后,您可以使用这两个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>[email protected]</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将自动将两个扩展安装在一起。

0

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

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