如何在moodle表单之外使用tinymce编辑器?

时间:2015-08-20 05:18:37

标签: editor moodle

如何在tinymce editor之外使用moodle form?在moodle form我可以使用editor(tinymce)作为:

$mform->addElement('editor', 'title', 'Question');
$mform->addRule('title', null, 'required', null, 'client');
$mform->setType('title', PARAM_RAW);

但我想使用editor field(tinymce)moodle form并获取其中的值。

我该怎么做?请帮帮我......

我的 moodle版本是2.9.1

1 个答案:

答案 0 :(得分:1)

这有点尴尬,因为Moodle并不真的希望你在表单类之外使用这些东西。

但你可以这样做:

$editor = \editors_get_preferred_editor(); // This gets the default editor for your site
$editor->use_editor("someidhere"); // This is used to set the id of the html element

// This creates the html element
echo \html_writer::tag('textarea', 'somedefaultvalue',
                array('id' => "someidhere", 'name' => 'somenamehere', 'rows' => 5, 'cols' => 10));

这将使用" id"," name"等来回显一个textarea元素...你设置并应该将富文本编辑器应用于元素。为了获得价值,您只需将其视为普通的表单元素,因此如果您通过POST请求或其他方式提交它,您只需通过它来引用它" name"

以下是创建该元素的脚本的一个非常基本的示例,并在您提交表单时向您显示内容:

<?php

require_once '../../config.php';
require_once $CFG->dirroot.'/lib/form/editor.php';
require_once $CFG->dirroot . '/lib/editorlib.php';

// Set up PAGE
$PAGE->set_context( context_course::instance(1) );
$PAGE->set_url($CFG->wwwroot . '/test.php');
$PAGE->set_title( 'title');
$PAGE->set_heading( 'heading' );

echo $OUTPUT->header();

var_dump($_POST);

$editor = \editors_get_preferred_editor();
$editor->use_editor("someid");


echo "<form method='post'>";
echo \html_writer::tag('textarea', 'default',
    array('id' => "someid", 'name' => 'somename', 'rows' => 5, 'cols' => 10));

echo "<input type='submit' name='submit' />";
echo "</form>";

echo $PAGE->requires->get_end_code();