3

我正在创建自己的模板,并且需要为 groupedlist 类型的表单字段设置多个默认值。

我做了什么:

<field name="grid-top" 
       type="groupedlist" 
       label="COM_TPL_MYTEMPLATE_DIV_TYPE_LABEL" 
       description="COM_TPL_MYTEMPLATE_DIV_TYPE_DESC"
       multiple="true" 
       class="big"
       default="VALUE-1, VALUE-2" />

但是这种方式行不通。任何人请指出正确的方向,我如何设置多个默认值?

4

3 回答 3

2

xml 中的默认值应该是 JSON 编码数组。

所以你的 XML 应该显示如下:

<field name="grid-top" 
       type="groupedlist" 
       label="COM_TPL_MYTEMPLATE_DIV_TYPE_LABEL" 
       description="COM_TPL_MYTEMPLATE_DIV_TYPE_DESC"
       multiple="true" 
       class="big"
       default='["VALUE-1","VALUE-2"]' />

另请注意,值必须由双引号保护,因此您需要使用单引号来封装整个默认值。使用 default="['VALUE-1','VALUE-2']" 不起作用。

于 2020-12-14T16:20:15.390 回答
0

GroupedList像使用标准一样构建它,list只需将每个选项包装group在它自己的<group />元素中。您还可以在同一个菜单中混合group使用 's 和独立s。optionlist

例如,此示例显示组和选项,您当然可以使用JText键而不是我在示例中使用的直接文本。

   <field name="experimentalGroupedList"
           type="groupedlist"
           label="Grouped List Experiment"
           default="0" >
        <option value="">Standard Option</option>
        <group label="Group #1">
            <option value="1">JYES</option>
            <option value="0">JNO</option>
        </group>
        <group label="Group #2 — Amphibians">
            <option value="frog">Frog</option>
            <option value="caecilian">Caecilian</option>
            <option value="salamander">Salamander</option>
        </group>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </field>
于 2013-10-26T03:21:07.120 回答
0

字段类型列表不提供设置两个或多个默认值的任何选项。您可以通过使用奇异模型来做到这一点。

找到奇异模型并找到类似的函数public function getItem($pk = null)(如果不存在则创建它)

该功能将如下所示 -

public function getItem($pk = null) {
    if ($item = parent::getItem($pk)) {
        if (empty($item->experimentalGroupedList)) {
            $item->experimentalGroupedList = array('VALUE-1', 'VALUE-2');
        }
        return $item;
    }
    return parent::getItem($pk);
}

当没有找到保存的值时,这将为多个列表字段设置默认值。希望这能解决您的问题。

于 2019-05-02T09:10:18.000 回答