在 Moodle 中保存并显示tinymce
内容。
我有一个在db中保存问题和答案的块。
我为此使用tinymce editor
,以便用户可以输入文字和图片。
我的编辑表格是:
.....
$editoroptions = array('maxfiles' => EDITOR_UNLIMITED_FILES, 'noclean'=>true, 'context'=>$context);
$mform->addElement('editor', 'title_editor', 'Questions', null, $editoroptions);
$mform->addRule('title_editor', null, 'required', null, 'client');
$mform->setType('title_editor', PARAM_RAW);
.....
我提交表单并从db
中的tinymce保存数据(文本+图像)......
if($data = $sample_form->get_data()) {
if ($draftitemid = file_get_submitted_draft_itemid('title_editor')) {
$data->title_editor['text'] = file_save_draft_area_files($draftitemid, $contextid, 'block_sample', questiontext, array('subdirs' => true, 'maxfiles' => 5),$data->title_editor['text']);
}
//insert to database
$inserRecord = new stdClass();
$inserRecord->suggestion = $sgid;
$inserRecord->questiontext = $data->title_editor['text'];
$inserRecord->answertext = $data->answer['text'];
$insertRes = add_question_desc($inserRecord);
......
在db中保存数据(此处为问题和答案)。问题数据如下:
<p>What color is this?</p>
<p><img src="@@PLUGINFILE@@/sample_image.png" width="309" height="212" alt="green" /></p>
这是完整的保存数据吗?上传的文件保存在哪里。我如何检索/显示上传的文件。
我用:
$qn = file_rewrite_pluginfile_urls($qnDetails[$qnid]->questiontext, "pluginfile.php", $context->id, "block_sample", 'questiontext', $qnid);
echo $qn;
以上代码仅显示文字,图片未显示。
我检查了破碎的图像区域,它是:
<img src="http://localhost/moodle/pluginfile.php/24/block_sample/questiontext/12/mc4.png" width="309" height="212" alt="mc4.png">
答案 0 :(得分:0)
要在编辑器中操作文件,您必须使用以下方法:
file_prepare_standard_editor()
file_postupdate_standard_editor()
file_rewrite_pluginfile_urls()
后跟format_text()
您可以在cohort/edit.php
和cohort/index.php
中找到相关示例。
完成后,您需要实现Moodle核心将调用以获取文件的函数_pluginfile
。 _pluginfile
函数是必需的,以便您的插件可以检查用户是否可以访问该文件。您可以在filelib.php file_pluginfile()
和各种lib.php <component_name>_pluginfile()
中找到默认实施。