次のphpを使用して、コンポーネント「/models/fields/time.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)、正しい値はselected="selected"ではありません。ただし、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分)。私はこのページごとにJoomlaDocsを使用しました: