} else { if ($moderator) { $topic->editrecord = true; } else { if (user_can_edit_post($topic->poster, $topic->ctime, $USER->get('id'), false)) { $SESSION->add_error_msg(get_string('postaftertimeout', 'interaction.forum', get_config_plugin('interaction', 'forum', 'postdelay'))); redirect('/interaction/forum/topic.php?id=' . $topicid); } else { throw new AccessDeniedException(get_string('cantedittopic', 'interaction.forum')); } } } } $editform = array('name' => isset($topic) ? 'edittopic' : 'addtopic', 'method' => 'post', 'autofocus' => isset($topic) ? 'body' : 'subject', 'elements' => array('subject' => array('type' => 'text', 'title' => get_string('Subject', 'interaction.forum'), 'defaultvalue' => isset($topic) ? $topic->subject : null, 'rules' => array('required' => true, 'maxlength' => 255)), 'body' => array('type' => 'wysiwyg', 'title' => get_string('Body', 'interaction.forum'), 'rows' => 18, 'cols' => 70, 'defaultvalue' => isset($topic) ? $topic->body : null, 'rules' => array('required' => true, 'maxlength' => 65536)), 'sticky' => array('type' => 'switchbox', 'title' => get_string('Sticky', 'interaction.forum'), 'description' => get_string('stickydescription', 'interaction.forum'), 'defaultvalue' => isset($topic) && $topic->sticky == 1 ? 'checked' : null), 'closed' => array('type' => 'switchbox', 'title' => get_string('Closed', 'interaction.forum'), 'description' => get_string('closeddescription', 'interaction.forum'), 'defaultvalue' => isset($topic) ? $topic->closed : !empty($forumconfig['closetopics']->value)), 'sendnow' => array('type' => 'switchbox', 'title' => get_string('sendnow', 'interaction.forum'), 'description' => get_string('sendnowdescription', 'interaction.forum', get_config_plugin('interaction', 'forum', 'postdelay')), 'defaultvalue' => false), 'submit' => array('type' => 'submitcancel', 'value' => array(isset($topic) ? get_string('save') : get_string('Post', 'interaction.forum'), get_string('cancel')), 'goto' => get_config('wwwroot') . 'interaction/forum/' . (isset($topic) && $returnto != 'view' ? 'topic.php?id=' . $topicid : 'view.php?id=' . $forumid)), 'post' => array('type' => 'hidden', 'value' => isset($topic) ? $topic->postid : false), 'editrecord' => array('type' => 'hidden', 'value' => isset($topic) ? $topic->editrecord : false))); if (!$moderator) { if (!group_sendnow($forum->groupid) && !$admintutor) { unset($editform['elements']['sendnow']); } unset($editform['elements']['sticky']); unset($editform['elements']['closed']); } $editform = pieform($editform); function addtopic_validate(Pieform $form, $values) { if ($baddomain = get_first_blacklisted_domain($values['body'])) { $form->set_error('body', get_string('blacklisteddomaininurl', 'mahara', $baddomain)); } $result = probation_validate_content($values['body']); if ($result !== true) { $form->set_error('body', get_string('newuserscantpostlinksorimages')); }
$post->editrecord = true; } else { if (user_can_edit_post($post->poster, $post->ctime, $USER->get('id'), false)) { $SESSION->add_error_msg(get_string('postaftertimeout', 'interaction.forum', get_config_plugin('interaction', 'forum', 'postdelay'))); redirect('/interaction/forum/topic.php?id=' . $parent->topic); } else { throw new AccessDeniedException(get_string('canteditpost', 'interaction.forum')); } } } $action = get_string('editpost', 'interaction.forum'); define('TITLE', $parent->topicsubject . ' - ' . $action); } $parent->ctime = relative_date(get_string('strftimerecentfullrelative', 'interaction.forum'), get_string('strftimerecentfull'), $parent->ctime); $editform = array('name' => 'editpost', 'successcallback' => isset($post) ? 'editpost_submit' : 'addpost_submit', 'autofocus' => 'body', 'elements' => array('subject' => array('type' => 'text', 'title' => get_string('Subject', 'interaction.forum'), 'defaultvalue' => isset($post) ? $post->subject : null, 'rules' => array('maxlength' => 255), 'hidewhenempty' => true, 'expandtext' => get_string('clicksetsubject', 'interaction.forum')), 'body' => array('type' => 'wysiwyg', 'title' => get_string('Body', 'interaction.forum'), 'rows' => 18, 'cols' => 70, 'defaultvalue' => isset($post) ? $post->body : null, 'rules' => array('required' => true, 'maxlength' => 65536)), 'sendnow' => array('type' => 'switchbox', 'title' => get_string('sendnow', 'interaction.forum'), 'description' => get_string('sendnowdescription', 'interaction.forum', get_config_plugin('interaction', 'forum', 'postdelay')), 'defaultvalue' => false), 'submit' => array('type' => 'submitcancel', 'class' => 'btn-primary', 'value' => array(isset($post) ? get_string('save') : get_string('Post', 'interaction.forum'), get_string('cancel')), 'goto' => get_config('wwwroot') . 'interaction/forum/topic.php?id=' . $parent->topic . '&post=' . (isset($postid) ? $postid : $parentid)), 'topic' => array('type' => 'hidden', 'value' => $parent->topic), 'editrecord' => array('type' => 'hidden', 'value' => isset($post) ? $post->editrecord : false))); if (!$moderator && !$admintutor && !group_sendnow($parent->group) || get_config_plugin('interaction', 'forum', 'postdelay') <= 0) { unset($editform['elements']['sendnow']); } $editform = pieform($editform); function editpost_validate(Pieform $form, $values) { if ($baddomain = get_first_blacklisted_domain($values['body'])) { $form->set_error('body', get_string('blacklisteddomaininurl', 'mahara', $baddomain)); } $result = probation_validate_content($values['body']); if ($result !== true) { $form->set_error('body', get_string('newuserscantpostlinksorimages')); } } function get_groupid_from_postid($postid) {