Moodle 日期选择器(仅限年份)

Moodle date selector (year only)

我是 Moodle 的新手,需要一些帮助来创建(仅限年份)日期选择器。 在下面的代码中,我有几个输入字段。

如果可能,我想自定义底部的 2 个 日期选择器 字段以仅显示用户选择的年份。我尝试的解决方法是使用“PARAM_INT”作为数据类型,这似乎不起作用。它也不会阻止用户输入年份,例如 0000 或 1000。提前感谢您的帮助!

$mform->addElement('text', 'article_type', 'Article Type');
$mform->setType('article_type', PARAM_TEXT);

$mform->addElement('date_selector', 'print_article_date', 'Print Article Date');
$mform->setType('article_date', PARAM_INT);

$mform->addElement('date_selector', 'earliest_article_year', 'Earliest Article Year');
$mform->setType('earliest_publication_year', PARAM_INT);

你需要约会吗select或者?也许使用下拉列表 select 代替年份并存储年份而不是日期。

$options = array_combine(range(1900,2018), range(1900,2018));
$mform->addElement('select', 'earliest_article_year', 'Earliest Article Year', $options);
$mform->setType('earliest_publication_year', PARAM_INT);

顺便说一句,您应该将字符串存储在语言文件中。

如果它是本地插件,则此语言文件将是 /local/yourplugin/lang/en/local_yourplugin.php

然后在语言文件中有这样的东西:

$string['earliestyear'] = 'Earliest Article Year';

然后将您的表单代码更改为:

$mform->addElement('select', 'earliest_article_year',
    get_string('earliestyear', 'local_yourplugin'), $options);