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:
@@ -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
|
||||
*
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user