MDL-52930 forum: Correct get_unmailed_posts logic

This commit is contained in:
Josh Marshall
2016-02-05 14:37:04 +08:00
committed by Andrew Nicols
parent 22fa1056d7
commit 6d425afa4f
+4 -1
View File
@@ -2098,18 +2098,21 @@ function forum_get_unmailed_posts($starttime, $endtime, $now=null) {
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
AND p.created >= :ptimestart
$selectsql
AND (p.created < :ptimeend OR p.mailnow = :mailnow)
$timedsql
ORDER BY p.modified ASC", $params);