From: dongsheng Date: Thu, 26 Mar 2009 02:52:59 +0000 (+0000) Subject: "EDITOR/MDL-16698, replace htmleditor element with editor element in forum, move... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=8d96a7b4e68909317c0d72d2f07577f2bc697d28;p=moodle.git "EDITOR/MDL-16698, replace htmleditor element with editor element in forum, move draft files to correct file area" --- diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 0e05d9d5c8..51156e7cb1 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -2968,8 +2968,11 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa static $strpruneheading, $displaymode; static $strmarkread, $strmarkunread; + $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); + $post->course = $course->id; $post->forum = $forum->id; + $post->message = file_convert_relative_pluginfiles($post->message, 'pluginfile.php', "$modcontext->id/forum_post/$post->id/"); // caching if (!isset($cm->cache)) { @@ -2978,7 +2981,6 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa if (!isset($cm->cache->caps)) { $cm->cache->caps = array(); - $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); $cm->cache->caps['mod/forum:viewdiscussion'] = has_capability('mod/forum:viewdiscussion', $modcontext); $cm->cache->caps['moodle/site:viewfullnames'] = has_capability('moodle/site:viewfullnames', $modcontext); $cm->cache->caps['mod/forum:editanypost'] = has_capability('mod/forum:editanypost', $modcontext); @@ -4149,9 +4151,11 @@ function forum_add_attachment($post, $forum, $cm, $mform=null, &$message=null) { function forum_add_new_post($post, $mform, &$message) { global $USER, $CFG, $DB; + $message = $post->message; $discussion = $DB->get_record('forum_discussions', array('id' => $post->discussion)); $forum = $DB->get_record('forum', array('id' => $discussion->forum)); $cm = get_coursemodule_from_instance('forum', $forum->id); + $context = get_context_instance(CONTEXT_MODULE, $cm->id); $post->created = $post->modified = time(); $post->mailed = "0"; @@ -4162,6 +4166,8 @@ function forum_add_new_post($post, $mform, &$message) { return false; } + $message = file_convert_draftarea($post->itemid, $context->id, 'forum_post', $post->id, true, $message); + $DB->set_field('forum_posts', 'message', $message, array('id'=>$post->id)); forum_add_attachment($post, $forum, $cm, $mform, $message); // Update discussion modified date @@ -4184,6 +4190,7 @@ function forum_update_post($post, $mform, &$message) { $discussion = $DB->get_record('forum_discussions', array('id' => $post->discussion)); $forum = $DB->get_record('forum', array('id' => $discussion->forum)); $cm = get_coursemodule_from_instance('forum', $forum->id); + $context = get_context_instance(CONTEXT_MODULE, $cm->id); $post->modified = time(); @@ -4199,6 +4206,8 @@ function forum_update_post($post, $mform, &$message) { $discussion->timestart = $post->timestart; $discussion->timeend = $post->timeend; } + $post->message = file_convert_draftarea($post->itemid, $context->id, 'forum_post', $post->id, true, $post->message); + $DB->set_field('forum_posts', 'message', $post->message, array('id'=>$post->id)); if (!$DB->update_record('forum_discussions', $discussion)) { return false; @@ -4227,6 +4236,7 @@ function forum_add_discussion($discussion, $mform=null, &$message=null) { $forum = $DB->get_record('forum', array('id'=>$discussion->forum)); $cm = get_coursemodule_from_instance('forum', $forum->id); + $context = get_context_instance(CONTEXT_MODULE, $cm->id); $post = new object(); $post->discussion = 0; @@ -4247,6 +4257,9 @@ function forum_add_discussion($discussion, $mform=null, &$message=null) { return 0; } + $text = file_convert_draftarea($discussion->itemid, $context->id, 'forum_post', $post->id, true, $post->message); + $DB->set_field('forum_posts', 'message', $text, array('id'=>$post->id)); + // Now do the main entry for the discussion, linking to this first post $discussion->firstpost = $post->id; @@ -5260,8 +5273,8 @@ function forum_print_discussion($course, $cm, $forum, $discussion, $post, $mode, } else { $ownpost = false; } + $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); if ($canreply === NULL) { - $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id); $reply = forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext); } else { $reply = $canreply; diff --git a/mod/forum/post.php b/mod/forum/post.php index ca1e45d2ac..a5f9e2de55 100644 --- a/mod/forum/post.php +++ b/mod/forum/post.php @@ -496,10 +496,16 @@ $subscribe = !empty($USER->autosubscribe); } + $draftid_editor = file_get_submitted_draftitemid('message'); + $currenttext = file_prepare_draftarea($draftid_editor, $modcontext->id, 'forum_post', empty($post->id) ? null : $post->id, true, $post->message); $mform_post->set_data(array( 'attachments'=>$draftitemid, 'general'=>$heading, 'subject'=>$post->subject, - 'message'=>$post->message, + 'message'=>array( + 'text'=>$currenttext, + 'format'=>empty($post->format) ? FORMAT_HTML : $post->format, //TODO: add some better default + 'itemid'=>$draftid_editor + ), 'subscribe'=>$subscribe?1:0, 'mailnow'=>!empty($post->mailnow), 'userid'=>$post->userid, @@ -536,7 +542,10 @@ $errordestination = $SESSION->fromurl; } - trusttext_after_edit($fromform->message, $modcontext); + trusttext_after_edit($fromform->message['text'], $modcontext); + $fromform->format = $fromform->message['format']; + $fromform->itemid = $fromform->message['itemid']; + $fromform->message = $fromform->message['text']; if ($fromform->edit) { // Updating a post unset($fromform->groupid); diff --git a/mod/forum/post_form.php b/mod/forum/post_form.php index 5a3f2708bc..6ac5f4aa92 100644 --- a/mod/forum/post_form.php +++ b/mod/forum/post_form.php @@ -23,14 +23,11 @@ class mod_forum_post_form extends moodleform { $mform->addRule('subject', get_string('required'), 'required', null, 'client'); $mform->addRule('subject', get_string('maximumchars', '', 255), 'maxlength', 255, 'client'); - $mform->addElement('htmleditor', 'message', get_string('message', 'forum'), array('cols'=>50, 'rows'=>30, 'filearea'=>'forumpost')); + $mform->addElement('editor', 'message', get_string('message', 'forum'), array('maxfiles'=>-1, 'filearea'=>'forum_post')); $mform->setType('message', PARAM_RAW); $mform->addRule('message', get_string('required'), 'required', null, 'client'); $mform->setHelpButton('message', array('reading', 'writing', 'questions', 'richtext2'), false, 'editorhelpbutton'); - $mform->addElement('format', 'format', get_string('format')); - - if (isset($forum->id) && forum_is_forcesubscribed($forum)) { $mform->addElement('static', 'subscribemessage', get_string('subscription', 'forum'), get_string('everyoneissubscribed', 'forum'));