首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Joomla扩展安装

Joomla扩展安装
EN

Stack Overflow用户
提问于 2012-10-25 08:20:03
回答 2查看 5.9K关注 0票数 2

我正在开发一个扩展(模块),如果可能的话,我希望与Joomla1.5、2.5和3.0兼容。我的主要问题是绕过所需的不同XML文件。我决定使用manifest.xml标记为Joomla1.5创建一个<install>文件,为Joomla2.5/3.0创建一个带有包含字段集的mod_mymodule.xml<extension>标记的mod_mymodule.xml文件,而manifest.xml包含<params>

我的问题是我的扩展在Joomla3.0(本地主机上)上安装得非常好。但是,在Joomla2.5上安装时,参数下没有显示任何内容。Joomla2.5的优先级是什么?为什么它使用带有安装标记的manifest.xml文件而不是mod_mymodule.xml文件?

Joomla2.5是否将XML文件顶部的<install>标记优先于具有<extension>标记的目录中的另一个XML文件?

舱单档案:

代码语言:javascript
复制
<?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文件:

代码语言:javascript
复制
<?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在底部。

更新:在检查时,我希望Joomla2.5使用的绝对是安装manifest.xml文件而不是mod_mymodule.xml

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-26 05:11:14

两者的结构应该是manifest.xml :-

代码语言:javascript
复制
<?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。

代码语言:javascript
复制
<?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. manifest.xml b. mod_mymodule (dir)和zip都在一起.不在模块文件夹中添加清单

票数 1
EN

Stack Overflow用户

发布于 2012-10-26 01:05:39

您的第二个xml缺少版本(joomla!版本,而不是你的分机)。请见下文:

代码语言:javascript
复制
    <extension type="module" client="site" method="upgrade" version="2.5">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13064437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档