MDL-46881 mod_forum: Remove unused functions

Note: I have not applied the deprecation policy to these functions as
they are extremely core to the cron functionality and were never
intended to be used outside of cron.
This commit is contained in:
Andrew Nicols
2019-01-30 07:48:38 +08:00
parent 4459ad290d
commit b231aabb2d
2 changed files with 0 additions and 296 deletions
-80
View File
@@ -1338,86 +1338,6 @@ function forum_search_posts($searchterms, $courseid=0, $limitfrom=0, $limitnum=5
return $DB->get_records_sql($searchsql, $params, $limitfrom, $limitnum);
}
/**
* Returns a list of all new posts that have not been mailed yet
*
* @param int $starttime posts created after this time
* @param int $endtime posts created before this
* @param int $now used for timed discussions only
* @return array
*/
function forum_get_unmailed_posts($starttime, $endtime, $now=null) {
global $CFG, $DB;
$params = array();
$params['mailed'] = FORUM_MAILED_PENDING;
$params['ptimestart'] = $starttime;
$params['ptimeend'] = $endtime;
$params['mailnow'] = 1;
if (!empty($CFG->forum_enabletimedposts)) {
if (empty($now)) {
$now = time();
}
$selectsql = "AND (p.created >= :ptimestart OR d.timestart >= :pptimestart)";
$params['pptimestart'] = $starttime;
$timedsql = "AND (d.timestart < :dtimestart AND (d.timeend = 0 OR d.timeend > :dtimeend))";
$params['dtimestart'] = $now;
$params['dtimeend'] = $now;
} else {
$timedsql = "";
$selectsql = "AND p.created >= :ptimestart";
}
return $DB->get_records_sql("SELECT p.*, d.course, d.forum
FROM {forum_posts} p
JOIN {forum_discussions} d ON d.id = p.discussion
WHERE p.mailed = :mailed
$selectsql
AND (p.created < :ptimeend OR p.mailnow = :mailnow)
$timedsql
ORDER BY p.modified ASC", $params);
}
/**
* Marks posts before a certain time as being mailed already
*
* @global object
* @global object
* @param int $endtime
* @param int $now Defaults to time()
* @return bool
*/
function forum_mark_old_posts_as_mailed($endtime, $now=null) {
global $CFG, $DB;
if (empty($now)) {
$now = time();
}
$params = array();
$params['mailedsuccess'] = FORUM_MAILED_SUCCESS;
$params['now'] = $now;
$params['endtime'] = $endtime;
$params['mailnow'] = 1;
$params['mailedpending'] = FORUM_MAILED_PENDING;
if (empty($CFG->forum_enabletimedposts)) {
return $DB->execute("UPDATE {forum_posts}
SET mailed = :mailedsuccess
WHERE (created < :endtime OR mailnow = :mailnow)
AND mailed = :mailedpending", $params);
} else {
return $DB->execute("UPDATE {forum_posts}
SET mailed = :mailedsuccess
WHERE discussion NOT IN (SELECT d.id
FROM {forum_discussions} d
WHERE d.timestart > :now)
AND (created < :endtime OR mailnow = :mailnow)
AND mailed = :mailedpending", $params);
}
}
/**
* Get all the posts for a user in a forum suitable for forum_print_post
*
-216
View File
@@ -2961,65 +2961,6 @@ class mod_forum_lib_testcase extends advanced_testcase {
$this->assertEmpty($neighbours['next']);
}
/**
* @dataProvider forum_get_unmailed_posts_provider
*/
public function test_forum_get_unmailed_posts($discussiondata, $enabletimedposts, $expectedcount, $expectedreplycount) {
global $CFG, $DB;
$this->resetAfterTest();
// Configure timed posts.
$CFG->forum_enabletimedposts = $enabletimedposts;
$course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', ['course' => $course->id]);
$user = $this->getDataGenerator()->create_user();
$forumgen = $this->getDataGenerator()->get_plugin_generator('mod_forum');
// Keep track of the start time of the test. Do not use time() after this point to prevent random failures.
$time = time();
$record = new stdClass();
$record->course = $course->id;
$record->userid = $user->id;
$record->forum = $forum->id;
if (isset($discussiondata['timecreated'])) {
$record->timemodified = $time + $discussiondata['timecreated'];
}
if (isset($discussiondata['timestart'])) {
$record->timestart = $time + $discussiondata['timestart'];
}
if (isset($discussiondata['timeend'])) {
$record->timeend = $time + $discussiondata['timeend'];
}
if (isset($discussiondata['mailed'])) {
$record->mailed = $discussiondata['mailed'];
}
$discussion = $forumgen->create_discussion($record);
// Fetch the unmailed posts.
$timenow = $time;
$endtime = $timenow - $CFG->maxeditingtime;
$starttime = $endtime - 2 * DAYSECS;
$unmailed = forum_get_unmailed_posts($starttime, $endtime, $timenow);
$this->assertCount($expectedcount, $unmailed);
// Add a reply just outside the maxeditingtime.
$replyto = $DB->get_record('forum_posts', array('discussion' => $discussion->id));
$reply = new stdClass();
$reply->userid = $user->id;
$reply->discussion = $discussion->id;
$reply->parent = $replyto->id;
$reply->created = max($replyto->created, $endtime - 1);
$forumgen->create_post($reply);
$unmailed = forum_get_unmailed_posts($starttime, $endtime, $timenow);
$this->assertCount($expectedreplycount, $unmailed);
}
/**
* Test for forum_is_author_hidden.
*/
@@ -3055,163 +2996,6 @@ class mod_forum_lib_testcase extends advanced_testcase {
forum_is_author_hidden($post, $forum);
}
public function forum_get_unmailed_posts_provider() {
return [
'Untimed discussion; Single post; maxeditingtime not expired' => [
'discussion' => [
],
'timedposts' => false,
'postcount' => 0,
'replycount' => 0,
],
'Untimed discussion; Single post; maxeditingtime expired' => [
'discussion' => [
'timecreated' => - DAYSECS,
],
'timedposts' => false,
'postcount' => 1,
'replycount' => 2,
],
'Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime not expired' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => 0,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 0,
],
'Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime expired' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => - DAYSECS,
],
'timedposts' => true,
'postcount' => 1,
'replycount' => 2,
],
'Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime expired; timeend not reached' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => - DAYSECS,
'timeend' => + DAYSECS
],
'timedposts' => true,
'postcount' => 1,
'replycount' => 2,
],
'Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime expired; timeend passed' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => - DAYSECS,
'timeend' => - HOURSECS,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 0,
],
'Timed discussion; Single post; Posted 1 week ago; timeend not reached' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timeend' => + DAYSECS
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 1,
],
'Timed discussion; Single post; Posted 1 week ago; timeend passed' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timeend' => - DAYSECS,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 0,
],
'Previously mailed; Untimed discussion; Single post; maxeditingtime not expired' => [
'discussion' => [
'mailed' => 1,
],
'timedposts' => false,
'postcount' => 0,
'replycount' => 0,
],
'Previously mailed; Untimed discussion; Single post; maxeditingtime expired' => [
'discussion' => [
'timecreated' => - DAYSECS,
'mailed' => 1,
],
'timedposts' => false,
'postcount' => 0,
'replycount' => 1,
],
'Previously mailed; Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime not expired' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => 0,
'mailed' => 1,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 0,
],
'Previously mailed; Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime expired' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => - DAYSECS,
'mailed' => 1,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 1,
],
'Previously mailed; Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime expired; timeend not reached' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => - DAYSECS,
'timeend' => + DAYSECS,
'mailed' => 1,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 1,
],
'Previously mailed; Timed discussion; Single post; Posted 1 week ago; timestart maxeditingtime expired; timeend passed' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timestart' => - DAYSECS,
'timeend' => - HOURSECS,
'mailed' => 1,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 0,
],
'Previously mailed; Timed discussion; Single post; Posted 1 week ago; timeend not reached' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timeend' => + DAYSECS,
'mailed' => 1,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 1,
],
'Previously mailed; Timed discussion; Single post; Posted 1 week ago; timeend passed' => [
'discussion' => [
'timecreated' => - WEEKSECS,
'timeend' => - DAYSECS,
'mailed' => 1,
],
'timedposts' => true,
'postcount' => 0,
'replycount' => 0,
],
];
}
/**
* Test the forum_discussion_is_locked function.
*