我正在开发一个扩展(模块),如果可能的话,我希望与 Joomla 1.5、2.5 和 3.0 兼容。我的主要问题是解决所需的不同 XML 文件。我决定manifest.xml
为 Joomla 1.5 创建一个带有<install>
标签的mod_mymodule.xml
文件,并为 Joomla 2.5/3.0创建一个<extension>
带有mod_mymodule.xml
包含字段集等标签的文件,同时manifest.xml
包含<params>
.
我的问题是我的扩展在 Joomla 3.0(在本地主机上)上安装得非常好。然而,在 Joomla 2.5 上安装时,参数下没有任何显示。Joomla 2.5 的优先级是什么,为什么它使用manifest.xml
带有安装标签的文件而不是mod_mymodule.xml
文件?
Joomla 2.5 是否<install>
将 XML 文件顶部的标记优先于具有标记的同一目录中的另一个 XML 文件<extension>
?
清单文件:
<?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>
错误:在位置参数下方:(!)注意:尝试在第 50 行的 ROOT\administrator\components\com_modules\views\module\tmpl\edit.php 中获取非对象的属性
在排序参数(!)下注意:尝试在第 61 行的 C:\wamp\www\joomla25\administrator\components\com_modules\views\module\tmpl\edit.php 中获取非对象的属性
它还Module XML data not available
在底部说。
更新:经检查,它肯定manifest.xml
是正在安装的文件,而不是mod_mymodule.xml
我希望 Joomla 2.5 使用的文件。