Joomla 扩展安装



我正在开发一个扩展(模块),如果可能的话,我希望与Joomla 1.5,2.5和3.0兼容。我的主要问题是绕过所需的不同XML文件。我决定为 Joomla 1.5 创建一个带有<install>标签的manifest.xml文件,并为 Joomla 2.5/3.0 创建一个mod_mymodule.xml带有<extension>标签的文件,其中包含包含字段集等的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

更新:经过检查,它肯定是正在安装的manifest.xml文件,而不是我希望Joomla 2.5使用的mod_mymodule.xml

两者的结构应该是显而易见的.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>

模块文件应该是模块.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 的参数并提交,如果您想包含更多文件,请创建一个模块包和您的 sturuture sholu

A. 清单.xml b. mod_mymodule (目录) 和 zip 二合一。不在模块文件夹中添加清单

你的第二个xml缺少版本(joomla!版本,而不是你的扩展)。请看下面:

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

最新更新