2016-10-12 6 views
0

Сохранить и отобразить tinymce содержание в Moodle.Как сохранить и отобразить загруженное изображение через редактор tinymce в MOODLE 2.9

У меня есть блок, который сохранит вопрос и ответ в 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); 
..... 

я отправить форму и сохранить данные (текст + изображение) с 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); 
...... 

В дб данных (здесь вопрос и ответ) сохранены. Данные вопроса выглядят так:

<p>What color is this?</p> 
<p><img src="@@[email protected]@/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; 

Приведенный выше код показывает только текст и изображение не отображается.

enter image description here

я осмотреть сломанное поле изображения и оно:

<img src="http://localhost/moodle/pluginfile.php/24/block_sample/questiontext/12/mc4.png" width="309" height="212" alt="mc4.png"> 

ответ

0

Для работы с файлами в редакторе необходимо использовать следующие методы:

  • До отображения формы : file_prepare_standard_editor()
  • При сохранении формы: file_postupdate_standard_editor()
  • При отображении содержимого: file_rewrite_pluginfile_urls() с последующим format_text()

Вы можете найти пример этого в cohort/edit.php и cohort/index.php.

Как только это будет сделано, вам необходимо реализовать функцию _pluginfile, которую ядро ​​Moodle вызовет, чтобы получить файл. Функции _pluginfile необходимы, чтобы ваш плагин мог проверить, может ли пользователь получить доступ к файлу. Вы можете найти версии по умолчанию в filelib.php file_pluginfile() и в различных lib.php <component_name>_pluginfile().