2012-10-25 211 views
2

我正在開發一個擴展(模塊),如果可能,我想與Joomla 1.5,2.5和3.0兼容。我的主要問題是解決所需的不同XML文件。我決定創建一個用於Joomla 1.5的manifest.xml文件,其中<install>標籤和一個mod_mymodule.xml文件用於Joomla 2.5/3.0,<extension>標籤包含mod_mymodule.xml包含字段集等,而manifest.xml包含<params>Joomla擴展安裝

我的問題是,我的擴展在Joomla 3.0(在本地主機上)上安裝得很好。但是,在Joomla 2.5上安裝時,參數下沒有任何顯示。 Joomla 2.5的優先級是什麼以及爲什麼它使用manifest.xml文件和安裝標籤而不是mod_mymodule.xml文件?

Joomla 2.5會優先處理XML文件頂部的<install>標記,而不是使用<extension>標記在同一目錄中的另一個XML文件上嗎?

清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<install type="module" client="site" method="upgrade" version="1.5"> 
    <name></name> 
    <author>George Wilson</author> 
    <creationDate>05-Mar-2012</creationDate> 
    <copyright></copyright> 
    <license>http://www.gnu.org/licenses/gpl-3.0.html</license> 
    <authorEmail></authorEmail> 
    <authorUrl></authorUrl> 
    <version>1.1.1</version> 
    <description></description> 
    <files> 
      <filename module="mod_mymodule">mod_mymodule.php</filename> 
      <filename>manifest.xml</filename> 
      <filename>index.html</filename> 
      <filename>helper.php</filename> 
      <folder>assets</folder> 
      <folder>tmpl</folder> 
    </files> 

    <languages> 
     <language tag="en-GB">language/en-GB/en-GB.mod_mymodule.ini</language> 
    </languages> 

    <params> 
     <param name="blah" type="text" default="5" label="Label" description="Description" /> 
    </params> 
</install> 

mod_mymodule.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<extension type="module" client="site" method="upgrade"> 
    <name></name> 
    <author>George Wilson</author> 
    <creationDate>05-Mar-2012</creationDate> 
    <copyright></copyright> 
    <license>http://www.gnu.org/licenses/gpl-3.0.html</license> 
    <authorEmail></authorEmail> 
    <authorUrl></authorUrl> 
    <version>1.1.1</version> 
    <description>Description</description> 
    <files> 
      <filename module="mod_mymodule">mod_mymodule.php</filename> 
      <filename>mod_mymodule.xml</filename> 
      <filename>index.html</filename> 
      <filename>helper.php</filename> 
      <folder>assets</folder> 
      <folder>sql</folder> 
      <folder>tmpl</folder> 
    </files> 

    <languages> 
     <language tag="en-GB">language/en-GB/en-GB.mod_mymodule.ini</language> 
     <language tag="en-GB">language/en-GB/en-GB.mod_mymodule.sys.ini</language> 
    </languages> 

    <install> 
     <sql> 
      <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file> 
     </sql> 
    </install> 
    <uninstall> 
     <sql> 
      <file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file> 
     </sql> 
    </uninstall> 

    <config> 
     <fields name="params"> 
      <fieldset name="basic"> 
       <field name="moduleclass_sfx" type="text" default="" label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL" description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" /> 
      </fieldset>     
     </fields> 
    </config> 
</extension> 

錯誤: 下方位置參數: 通知(!):試圖讓ROOT非對象的屬性\管理員\部件\ com_modules \視圖\模塊\ TMPL \上線50

edit.php下方訂貨參數 (! )注意:嘗試獲取第61行中的非對象屬性C:\ wamp \ www \ joomla25 \ administrator \ components \ com_modules \ views \ module \ tmpl \ edit.php on line 61

它也在底部顯示Module XML data not available

更新:經檢驗它絕對是manifest.xml文件正在安裝,而不是我想要的的Joomla 2.5使用mod_mymodule.xml

+0

其中參數的組件或模塊,您可以使用標籤,但在參數存在使用和j 2.5使用,這些標籤所以儘量還是舉一些例子說明差異Ĵ1.5支持參數您的xmls代碼 –

+0

已更新我的問題以指定其模塊。我的觀點是,我需要J1的manifest.xml文件。5 compat所以使用。和我想要的J2.5/3.0的mod_mymodule.xml,並使用

。然而,這是不是在J2.5 –

+0

工作可我看到你的表現,也是你的模塊文件struture 2.5 –

回答

1

兩個struture應的manifest.xml: -

<?xml version="1.0" encoding="utf-8"?> 
<install type="module" version="2.5" method="upgrade"> 
    <name>my module</name> 
    <author>George Wilson</author> 
    <creationDate>05-Mar-2012</creationDate> 
    <copyright></copyright> 
    <license>http://www.gnu.org/licenses/gpl-3.0.html</license> 
    <authorEmail></authorEmail> 
    <authorUrl></authorUrl> 
    <version>1.1.1</version> 
    <description>Description</description> 

    <!-- Installation --> 
    <!--<install> 
     <sql> 
      <file driver="mysql" charset="utf8">mod_mymodule/sql/install.mysql.utf8.sql</file> 
     </sql> 
    </install> 
    <installfile>install/install.php</installfile> 
    <uninstall> 
     <sql> 
      <file driver="mysql" charset="utf8">mod_mymodule/sql/uninstall.mysql.utf8.sql</file> 
     </sql> 
    </uninstall> 
    <uninstallfile>install/uninstall.php</uninstallfile> 

    <languages> 
     <language tag="en-GB">language/en-GB/en-GB.mod_mymodule.ini</language> 
     <language tag="en-GB">language/en-GB/en-GB.mod_mymodule.sys.ini</language> 
    </languages>--> 

    <!-- Modules --> 
      <files folder="mod_mymodule"> 
       <filename module="mod_mymodule">mod_mymodule.php</filename> 
       <filename>mod_mymodule.xml</filename> 
       <!--<filename>index.html</filename> 
       <filename>helper.php</filename> 
       <folder>assets</folder> 
       <folder>sql</folder> 
       <folder>tmpl</folder>-->   
      </files> 
</install> 

和模塊文件應該是module.xml

<?xml version="1.0" encoding="utf-8"?> 
<extension type="module" client="site" method="upgrade" version="2.5"> 
    <name>my module</name> 
    <author>George Wilson</author> 
    <creationDate>05-Mar-2012</creationDate> 
    <copyright></copyright> 
    <license>http://www.gnu.org/licenses/gpl-3.0.html</license> 
    <authorEmail></authorEmail> 
    <authorUrl></authorUrl> 
    <version>1.1.1</version> 
    <description></description> 
    <files> 
      <filename module="mod_mymodule">mod_mymodule.php</filename> 
      <filename>mod_mymodule.xml</filename> 
      <!-- <filename>index.html</filename> 
      <filename>helper.php</filename> 
      <folder>assets</folder> 
      <folder>tmpl</folder>--> 
    </files> 

    <config> 
     <fields name="params"> 
      <fieldset name="basic"> 
       <field name="moduleclass_sfx" type="text" default="" label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL" description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" /> 
      </fieldset>     
     </fields> 
    </config> 
</extension> 

希望這有助於你唯一的變化1.5的參數在我的演示中測試過,如果你想要包含更多的文件,請創建一個模塊包,然後你的模型將被編輯爲

a。

a。 manifest.xml b。 mod_mymodule(dir)和zip一體。未在模塊文件夾添加清單君不見

+0

謝謝repsonse!當你說「兩者的struture應的manifest.xml」這將在隨後的工作3.0作爲在mod_mymodule.xml文件我看到你註釋掉等部分 –

+0

是的,它需要的清單知道模塊的安裝,它的工作你的結局? –

+0

我無法得到這個工作,所以最終分裂了1.5和2.5/3.0版本,以便我可以合併joomla更新功能等。謝謝你的幫助!標明它是正確的,所以有人可以用它作爲起點! –

0

你的第二個xml缺少版本(joomla!版本,不是你的擴展)。請看下面:

<extension type="module" client="site" method="upgrade" version="2.5"> 
+0

列出的錯誤感謝您指出這一點!我試過了,但它仍然沒有在2.5上工作 - 它仍然在安裝manifest.xml而不是其他xml文件。不過還是不錯的補充 –