Moodle Form APIのdate_selectorで初期値設定どうやるの???って一瞬なったのでdate_selectorまわりのメモ。
コード
moodleform::setDefault
の第2引数にタイムスタンプ入れると任意の日付を初期値にできます。
ファイルの配置
plugintype/
└ pluginname/
│ classes/
│ └ form/
│ └ my_form.php
└ view.php
my_form.php
<?php
namespace plugintype_pluginname\form;
require_once($CFG->libdir . '/formslib.php');
class my_form extends \moodleform {
public function definition() {
$mform = $this->_form;
list($year, $month, $day) = [2018, 10, 31];
$mform->addElement('date_selector', 'date_selector_1', 'Label1');
$mform->setDefault('date_selector_1', make_timestamp($year, $month, $day));
$mform->addElement('date_selector', 'date_selector_2', 'Label2');
}
}
表示例
初期値を指定しなかった場合、ページを開いた日(語弊あるかも?)が入ります。