【发布时间】:2012-10-15 09:23:57
【问题描述】:
我正在开发一个扩展(模块),如果可能的话,我希望与 Joomla 1.5、2.5 和 3.0 兼容。我的主要问题是解决所需的不同 XML 文件。我决定为 Joomla 1.5 创建一个带有 <install> 标签的 manifest.xml 文件和一个带有 <extension> 标签的 Joomla 2.5/3.0 的 mod_mymodule.xml 文件,其中 mod_mymodule.xml 包含字段集等,而 manifest.xml 包含<params>。
我的问题是我的扩展在 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>
错误: 下方位置参数: ( ! ) 注意:尝试在第 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。
更新:经检查,我希望 Joomla 2.5 使用的肯定是 manifest.xml 文件,而不是 mod_mymodule.xml。
【问题讨论】:
-
哪个参数你没有看到组件或模块,你可以使用
标签但是在参数上有区别 j 1.5 支持参数使用 和 j 2.5 使用 所以试试使用这些标签或举一些您的 xmls 代码示例 -
更新了我的问题以指定其模块。我的观点是,在 manifest.xml 中我想要 J1.5 兼容所以使用
。还有我想要的用于 J2.5/3.0 的 mod_mymodule.xml,并且正在使用 -
我能看到你的清单以及你的 2.5 模块文件结构
-
是的,今晚当我回到我的笔记本电脑时,我会把它全部存储起来!
-
@RakeshSharma 将您请求的文件信息放上去。删除了一些细节。但是xml文件肯定没问题。因为它们在 Joomla 1.5 和 Joomla 3.0 上安装良好。并且该模块在 2.5 中安装时没有错误。但是后来我发现当我去编辑模块时没有参数和主帖子上列出的错误
标签: xml joomla joomla1.5 joomla2.5 joomla3.0