我在我的组件“/models/fields/time.php”中使用以下 php 创建了一个自定义字段类型:
defined('JPATH_BASE') or die;
jimport('joomla.form.formfield');
class JFormFieldTime extends JFormField
{
protected $type = 'time';
public function getInput()
{
return '<select id="'.$this->id.'" name="'.$this->name.'">'.
'<option value="08:00:00" > 8:00 AM</option>'.
'<option value="09:30:00" > 9:30 AM</option>'.
'</select>';
}
}
和我的 course.xml (/models/forms/course.xml) 如下:
<field
name="starttime"
type="time"
label="COM_CEXPRESS_FORM_LBL_COURSE_STARTTIME"
description="COM_CEXPRESS_FORM_DESC_COURSE_STARTTIME"
required="true"
filter="safehtml" />
表单将在数据库中保存正确的值 (09:30:00),但当显示表单时 (8:00 AM),正确的值未选择=“已选择”。但是,如果我将 course.xml 字段修改为:
<field
name="starttime"
type="list"
label="COM_CEXPRESS_FORM_LBL_COURSE_STARTTIME"
description="COM_CEXPRESS_FORM_DESC_COURSE_STARTTIME"
required="true"
filter="safehtml">
<option value="08:00:00" > 8:00 AM</option>
<option value="09:30:00" > 9:30 AM</option>
</field>
该表单将正确显示(上午 9:30)“选定的”数据库值。我在本页使用了 Joomla 文档:
http://docs.joomla.org/Creating_a_custom_form_field_type http://docs.joomla.org/Creating_a_custom_form_field_type
您必须自行设置所选选项获取输入()。您可以通过以下方式获取当前值$这个->值.
您也可以通过 JHTML 使用,而不是自己打印该元素:
public function getInput()
{
$options = array(
'08:00:00' => '8:00 AM',
'09:30:00' => '9:30 AM'
);
return JHtml::_('select.genericlist', $options, $this->name, null, 'value', 'text', $this->value, $this->id);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)