在XML中向joomla菜单项添加自定义请求

时间:2013-03-10 15:50:37

标签: xml model-view-controller joomla

我正在尝试修改hikashop的XML文件,以便添加一个额外的下拉列表,允许我选择某些类型和值,稍后将由php文件解析。归结为我想在菜单项中添加一个额外的请求,我知道这样做的唯一方法是在XML文件中添加一个请求字段。

目前它确实有效,但只显示我的自定义字段;另一个人迷路了。如果我将标记放在fieldset标记内,则该功能不再起作用。

这是我的xml文件:

    <?xml version="1.0" encoding="utf-8"?>
<metadata>
    <state>
        <name>Product page</name>
        <params addpath="/components/com_hikashop/params">
            <param name="product_id" type="selectproduct" default="0" label="Select a product" description="Select here the product to display for the current link" />
    </params>
</state>
<layout title="COM_HIKASHOP_PRODUCT_FORM_VIEW_DEFAULT_TITLE">
    <message></message>
</layout>
<fields name="params" addfieldpath="/components/com_hikashop/fields">
    <fieldset name="basic" label="Select a product">
        <field
            id="product_id"
            name="product_id"
            type="selectproduct"
            label="Select a product"
            description="Select here the product to display for the current link"
                            />


    </fieldset>


</fields>

<fields name="request">
    <fieldset name="request">
        <field
            name="viewType"
            type="list"
            label="Type of Product"
            description="Select the type of product to grab the correct template"
            default="2"
        >
            <option value="1">Brace</option>
            <option value="2">Shoe</option>
            <option value="3">misc</option>
        </field>
    </fieldset>

</fields>

1 个答案:

答案 0 :(得分:1)

您的xml结构不正确。所有参数都应该在<fields>标记内,但是只能有一个这样的标记,所有参数都应该嵌套在里面。所以字段部分应该是这样的:

<fields name="params" addfieldpath="/components/com_hikashop/fields">
    <fieldset name="basic" label="Select a product">
        <field
            id="product_id"
            name="product_id"
            type="selectproduct"
            label="Select a product"
            description="Select here the product to display for the current link"
                            />
        <field
            name="viewType"
            type="list"
            label="Type of Product"
            description="Select the type of product to grab the correct template"
            default="2"
        >
            <option value="1">Brace</option>
            <option value="2">Shoe</option>
            <option value="3">misc</option>
        </field>
    </fieldset>
</fields>