dataid)) {
error('Data ID is incorrect');
}
if (! $course = get_record('course', 'id', $data->course)) {
error('Course is misconfigured');
}
require_login($course->id);
$cm = data_get_cm($data);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
if ($commentid) {
if (! $comment = get_record('data_comments', 'id', $commentid)) {
error('Comment ID is misconfigured');
}
if ($comment->recordid != $record->id) {
error('Comment ID is misconfigured');
}
if (!has_capability('mod/data:managecomments', $context->id) && $comment->userid != $USER->id) {
error('Comment is not yours to edit!');
}
}
switch ($mode) {
case 'add':
if (empty($commentcontent)) {
redirect('view.php?rid='.$record->id.'&page='.$page, get_string('commentempty', 'data'));
}
$newcomment = new object;
$newcomment->userid = $USER->id;
$newcomment->created = time();
$newcomment->modified = time();
if (($newcomment->content = $commentcontent) && ($newcomment->recordid = $record->id)) {
insert_record('data_comments',$newcomment);
}
redirect('view.php?rid='.$record->id.'&page='.$page, get_string('commentsaved', 'data'));
break;
case 'edit': //print edit form
print_header();
print_heading(get_string('edit'));
echo '
';
echo '
';
print_footer();
break;
case 'editcommit': //update db
if (empty($commentcontent)) {
redirect('view.php?rid='.$record->id.'&page='.$page, get_string('commentempty', 'data'));
}
if ($comment) {
$newcomment = new object;
$newcomment->id = $comment->id;
$newcomment->content = $commentcontent;
$newcomment->modified = time();
update_record('data_comments',$newcomment);
}
redirect('view.php?rid='.$record->id.'&page='.$page, get_string('commentsaved', 'data'));
break;
case 'delete': //deletes single comment from db
if ($confirm and confirm_sesskey() and $comment) {
delete_records('data_comments','id',$comment->id);
redirect('view.php?rid='.$record->id.'&page='.$page, get_string('commentdeleted', 'data'));
} else { //print confirm delete form
print_header();
data_print_comment($data, $comment, $page);
notice_yesno(get_string('deletecomment','data'),
'comment.php?rid='.$record->id.'&commentid='.$comment->id.'&page='.$page.
'&sesskey='.sesskey().'&mode=delete&confirm=1',
'view.php?rid='.$record->id.'&page='.$page);
print_footer();
}
break;
default: //print all listing, and add comment form
print_header();
data_print_comments($data, $record, $search, $template, $sort, $page, $rid, $order, $group);
print_footer();
break;
}
?>