如何使用 formslib 更改 MOODLE 中的默认编辑器值?

发布于 2024-12-10 23:52:54 字数 528 浏览 0 评论 0原文

这是 formslib Moodle 文档:

$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'));

这应该是第四个属性参数:

array(
    'subdirs'=>0,
    'maxbytes'=>0,
    'maxfiles'=>0,
    'changeformat'=>0,
    'context'=>null,
    'noclean'=>0,
    'trusttext'=>0);
)

我尝试过:

$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'), array('context'=>'test"));

但不起作用。有什么想法吗?

Here's the formslib moodle doc:

$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'));

And this is supposed to be the 4th attribute parameter:

array(
    'subdirs'=>0,
    'maxbytes'=>0,
    'maxfiles'=>0,
    'changeformat'=>0,
    'context'=>null,
    'noclean'=>0,
    'trusttext'=>0);
)

I tried:

$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'), array('context'=>'test"));

but doesn't work. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神仙妹妹 2024-12-17 23:52:54

我将您的示例代码复制到论坛模块中作为 Moodle 2.0 中的测试(mod/forum/post_form.php),并设法使用以下命令显示编辑器:

$forum_id = optional_param('forum', 0, PARAM_INT); // id of forum (from URL)

$cm = get_coursemodule_from_instance('forum', $forum_id, $course->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);

$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'), null, array('context' => $context) );

为表单编辑器元素指定模块上下文至关重要。另外,第四个参数是保留的 - 您应该使用第五个参数来设置上下文和其他变量,尽管我相信这两个参数实际上都有效(!)

该表单现在将具有

如果您想在用户输入任何内容之前为编辑器指定默认值,您可以使用 setValue() 作为对 addElement() 结果的方法调用:

$mform->addElement
(
   'editor',
   'fieldname',
   get_string('labeltext', 'langfile'),
   null,
   array('context' => $context)
)->setValue( array('text' => 'Default text!') );

我希望这能回答您的问题 - 但如果有任何问题,请发表评论具体我可以在这里帮忙。

I copied your example code into the forum module as a test (mod/forum/post_form.php) in Moodle 2.0 and managed to get an editor to display using the following:

$forum_id = optional_param('forum', 0, PARAM_INT); // id of forum (from URL)

$cm = get_coursemodule_from_instance('forum', $forum_id, $course->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);

$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'), null, array('context' => $context) );

It's crucial to specify module context for form editor elements. Also, the fourth argument is reserved - you should use the fifth argument for setting context and other variables, although I believe both arguments actually work (!)

The form will now have <textarea id="id_fieldname"> using the example code above.

If you want to specify a default value for the editor before the user has even input anything, you can use setValue() as a method call to the result of addElement():

$mform->addElement
(
   'editor',
   'fieldname',
   get_string('labeltext', 'langfile'),
   null,
   array('context' => $context)
)->setValue( array('text' => 'Default text!') );

I hope this answers your question - but please comment if there's anything specific I can help with here.

碍人泪离人颜 2024-12-17 23:52:54
$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'),
        array('context'=>'test")); 

上面的行有语法错误 :D 'test',而不是 'test"

$mform->addElement('editor', 'fieldname', get_string('labeltext', 'langfile'),
        array('context'=>'test")); 

You have a syntax error in the above line :D 'test', not 'test"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文