diff --git a/mod/forum/lib.php b/mod/forum/lib.php index d07bacbaadf..a3f9632bd6f 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -3471,9 +3471,10 @@ function forum_print_post($post, $discussion, $forum, &$cm, $course, $ownpost=fa $options->trusted = $post->messagetrust; $options->context = $modcontext; if ($shortenpost) { - // Prepare shortened version + // Prepare shortened version by filtering the text then shortening it. $postclass = 'shortenedpost'; - $postcontent = format_text(forum_shorten_post($post->message), $post->messageformat, $options, $course->id); + $postcontent = format_text($post->message, $post->messageformat, $options); + $postcontent = forum_shorten_post($postcontent); $postcontent .= html_writer::link($discussionlink, get_string('readtherest', 'forum')); $postcontent .= html_writer::tag('div', '('.get_string('numwords', 'moodle', count_words($post->message)).')', array('class'=>'post-word-count')); @@ -3817,50 +3818,9 @@ function forum_print_discussion_header(&$post, $forum, $group=-1, $datestring="" * @return string */ function forum_shorten_post($message) { + global $CFG; - global $CFG; - - $i = 0; - $tag = false; - $length = strlen($message); - $count = 0; - $stopzone = false; - $truncate = 0; - - for ($i=0; $i<$length; $i++) { - $char = $message[$i]; - - switch ($char) { - case "<": - $tag = true; - break; - case ">": - $tag = false; - break; - default: - if (!$tag) { - if ($stopzone) { - if ($char == ".") { - $truncate = $i+1; - break 2; - } - } - $count++; - } - break; - } - if (!$stopzone) { - if ($count > $CFG->forum_shortpost) { - $stopzone = true; - } - } - } - - if (!$truncate) { - $truncate = $i; - } - - return substr($message, 0, $truncate); + return shorten_text($message, $CFG->forum_shortpost); } /**