2013-04-13 265 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); 
} 

人們還可以執行一些額外的檢查,如果存在的路徑,如果包是有效的,等等...