【问题标题】:Moodle date selector (year only)Moodle 日期选择器(仅限年份)
【发布时间】:2018-05-23 00:41:42
【问题描述】:

我是 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);

【问题讨论】:

    标签: php forms moodle moodle-api


    【解决方案1】:

    您需要日期选择器吗?也许使用下拉选择来代替年份并存储年份而不是日期。

    $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);
    

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多