【问题标题】:How to set multiple default values in a groupedlist type form field in joomla如何在 joomla 的 groupedlist 类型的表单字段中设置多个默认值
【发布时间】:2013-11-01 08:42:36
【问题描述】:

我正在创建自己的模板,我需要为 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" />

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

【问题讨论】:

  • 您能否为您的“groupedlist”表单域提供一个 HTML 示例?例如是指selectoptgroup 还是别的什么?
  • "groupedlist" 是一个标准的 joomla 表单域,用于将选项列表分成组。所以,我没有使用任何自定义 HTML 代码。是的,它是一个带有 optgroup 的选择。
  • 工作忙,迟迟无法回复。我只是在问,因为您似乎不知道如何使用 JFields 制作选择列表,我想在回复之前确定一下,无论如何,请参阅下面的答案。

标签: joomla form-fields


【解决方案1】:

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']" 不起作用。

【讨论】:

  • 这是这个问题的正确答案,感谢 Jeremy
【解决方案2】:

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

例如,此示例显示组和选项,您当然可以使用 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>

【讨论】:

  • 感谢您的回答,但我真正想要的是:我想将“group #1”中的“0”和“group #2 -Amphibians”中的“frog”设置为默认值。我想设置多个默认值,很抱歉我的问题不太清楚。
  • 一个&lt;select&gt;元素只能有一个被选择的选项(即默认)——w3.org/TR/html-markup/select.html
【解决方案3】:

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

找到奇异模型并找到类似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);
}

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

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 2019-06-03
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2022-12-05
    • 1970-01-01
    相关资源
    最近更新 更多