图片(通过tinymce上传)未在Moodle 2.9中的Block中显示

时间:2016-10-17 11:06:43

标签: tinymce moodle

Moodle block(示例block_sample)中,通过tinymce编辑器上传的图片未显示。

我将文本(带图片)保存在db中:

 $context = context_block::instance($instanceid);
if($data = $question_form->get_data()) {
 if ($draftitemid = file_get_submitted_draft_itemid('title')) {
    $data->title['text'] = file_save_draft_area_files($draftitemid, $context->id 'block_sample', 'content', 0, array('subdirs' => true, 'maxfiles' => 5),$data->title['text']);

$inserRecord = new stdClass();
$inserRecord->blockid     = $cid;
$inserRecord->content     = $data->title['text'];
$insertRes = $DB->insert_record("sample_data", $inserRecord);
    }
}

此处content是保存问题的数据库字段名称。

数据保存在db中

id       blockid        content
1         2             <p>Test</p><p><img src="@@PLUGINFILE@@/flower_123.jpeg" width="200" height="200" /></p>

现在我需要显示来自db的数据(例如第一条记录):

$descDetails = $DB->get_records('sample_data', array('id'=>1));

    $qn = file_rewrite_pluginfile_urls($descDetails[1]->content, "pluginfile.php", $context->id, "block_sample", 'content', $descDetails[1]->id);
    $format = FORMAT_HTML;
        $filteropt = new stdClass;
        $filteropt->overflowdiv = true;
        $qn = format_text($qn, $format, $filteropt);
        echo $qn;

但是这里没有显示图像。我怎样才能解决这个问题? 我检查了元素,我得到了:

<img src="http://localhost/moodle/pluginfile.php/122/block_sample/content/1/flower_123.jpeg" width="297" height="203" alt="d" id="yui_3_17_2_2_1476699462273_239">

请帮助我..在阻止context id时有任何问题,或者还有其他问题。

对于moodle module(activity),我成功显示了相同案例的图像。这不适用于moodle block

这里唯一的区别是context idactivity module的{​​{1}}。

对于block,我将activity module视为:

context id

结论:对于活动模块,图像(通过tinymce编辑器上传)正在显示,但是moodle块图像没有显示。

我该如何解决这个问题?

修改

$context = context_module::instance($cm->id); 中的

block_sample_pluginfile函数(参考lib.php函数)

block_html_pluginfile

0 个答案:

没有答案