mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 01:16:44 +02:00

* debugging add_to_log() calls - the Moodle log is not the place for these kind of messages * subscribeall/unsusbcribeall - now individual subscriptions will fire events, there is no need for a catch all. * remove read tracking log entries - read tracking individual log entries do not provide enough reliable information, as the posts can be marked as read automatically after emailing or an expiry period.
106 lines
3.4 KiB
PHP
106 lines
3.4 KiB
PHP
<?php
|
|
|
|
// This file is part of Moodle - http://moodle.org/
|
|
//
|
|
// Moodle is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Moodle is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
/**
|
|
* Set tracking option for the forum.
|
|
*
|
|
* @package mod-forum
|
|
* @copyright 2005 mchurch
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
|
|
require_once("../../config.php");
|
|
require_once("lib.php");
|
|
|
|
$f = required_param('f',PARAM_INT); // The forum to mark
|
|
$mark = required_param('mark',PARAM_ALPHA); // Read or unread?
|
|
$d = optional_param('d',0,PARAM_INT); // Discussion to mark.
|
|
$returnpage = optional_param('returnpage', 'index.php', PARAM_FILE); // Page to return to.
|
|
|
|
$url = new moodle_url('/mod/forum/markposts.php', array('f'=>$f, 'mark'=>$mark));
|
|
if ($d !== 0) {
|
|
$url->param('d', $d);
|
|
}
|
|
if ($returnpage !== 'index.php') {
|
|
$url->param('returnpage', $returnpage);
|
|
}
|
|
$PAGE->set_url($url);
|
|
|
|
if (! $forum = $DB->get_record("forum", array("id" => $f))) {
|
|
print_error('invalidforumid', 'forum');
|
|
}
|
|
|
|
if (! $course = $DB->get_record("course", array("id" => $forum->course))) {
|
|
print_error('invalidcourseid');
|
|
}
|
|
|
|
if (!$cm = get_coursemodule_from_instance("forum", $forum->id, $course->id)) {
|
|
print_error('invalidcoursemodule');
|
|
}
|
|
|
|
$user = $USER;
|
|
|
|
require_login($course, false, $cm);
|
|
|
|
if ($returnpage == 'index.php') {
|
|
$returnto = forum_go_back_to($returnpage.'?id='.$course->id);
|
|
} else {
|
|
$returnto = forum_go_back_to($returnpage.'?f='.$forum->id);
|
|
}
|
|
|
|
if (isguestuser()) { // Guests can't change forum
|
|
$PAGE->set_title($course->shortname);
|
|
$PAGE->set_heading($course->fullname);
|
|
echo $OUTPUT->header();
|
|
echo $OUTPUT->confirm(get_string('noguesttracking', 'forum').'<br /><br />'.get_string('liketologin'), get_login_url(), $returnto);
|
|
echo $OUTPUT->footer();
|
|
exit;
|
|
}
|
|
|
|
$info = new stdClass();
|
|
$info->name = fullname($user);
|
|
$info->forum = format_string($forum->name);
|
|
|
|
if ($mark == 'read') {
|
|
if (!empty($d)) {
|
|
if (! $discussion = $DB->get_record('forum_discussions', array('id'=> $d, 'forum'=> $forum->id))) {
|
|
print_error('invaliddiscussionid', 'forum');
|
|
}
|
|
|
|
forum_tp_mark_discussion_read($user, $d);
|
|
} else {
|
|
// Mark all messages read in current group
|
|
$currentgroup = groups_get_activity_group($cm);
|
|
if(!$currentgroup) {
|
|
// mark_forum_read requires ===false, while get_activity_group
|
|
// may return 0
|
|
$currentgroup=false;
|
|
}
|
|
forum_tp_mark_forum_read($user, $forum->id,$currentgroup);
|
|
}
|
|
|
|
/// FUTURE - Add ability to mark them as unread.
|
|
// } else { // subscribe
|
|
// if (forum_tp_start_tracking($forum->id, $user->id)) {
|
|
// redirect($returnto, get_string("nowtracking", "forum", $info), 1);
|
|
// } else {
|
|
// print_error("Could not start tracking that forum", $_SERVER["HTTP_REFERER"]);
|
|
// }
|
|
}
|
|
|
|
redirect($returnto);
|
|
|