try_smarter: fix two bugs. 1. uncovered by the second, during a bump only the page the thread was on and first page were rebuild, despite threads rearranging their positions on the remaining pages. happening always. 2. during smart build, the page wasn`t ordered to be rebuilt

This commit is contained in:
czaks 2015-04-06 18:59:33 +02:00
parent 64a0b486f2
commit 094f60d34d

View File

@ -1104,8 +1104,9 @@ function bumpThread($id) {
if (event('bump', $id)) if (event('bump', $id))
return true; return true;
if ($config['try_smarter']) if ($config['try_smarter']) {
$build_pages[] = thread_find_page($id); $build_pages = array_merge(range(1, thread_find_page($id)), $build_pages);
}
$query = prepare(sprintf("UPDATE ``posts_%s`` SET `bump` = :time WHERE `id` = :id AND `thread` IS NULL", $board['uri'])); $query = prepare(sprintf("UPDATE ``posts_%s`` SET `bump` = :time WHERE `id` = :id AND `thread` IS NULL", $board['uri']));
$query->bindValue(':time', time(), PDO::PARAM_INT); $query->bindValue(':time', time(), PDO::PARAM_INT);
@ -2146,6 +2147,9 @@ function buildThread($id, $return = false, $mod = false) {
cache::delete("thread_{$board['uri']}_{$id}"); cache::delete("thread_{$board['uri']}_{$id}");
} }
if ($config['try_smarter'] && !$mod)
$build_pages[] = thread_find_page($id);
if (!$config['smart_build'] || $return || $mod) { if (!$config['smart_build'] || $return || $mod) {
$query = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE (`thread` IS NULL AND `id` = :id) OR `thread` = :id ORDER BY `thread`,`id`", $board['uri'])); $query = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE (`thread` IS NULL AND `id` = :id) OR `thread` = :id ORDER BY `thread`,`id`", $board['uri']));
$query->bindValue(':id', $id, PDO::PARAM_INT); $query->bindValue(':id', $id, PDO::PARAM_INT);
@ -2180,9 +2184,6 @@ function buildThread($id, $return = false, $mod = false) {
'return' => ($mod ? '?' . $board['url'] . $config['file_index'] : $config['root'] . $board['dir'] . $config['file_index']) 'return' => ($mod ? '?' . $board['url'] . $config['file_index'] : $config['root'] . $board['dir'] . $config['file_index'])
)); ));
if ($config['try_smarter'] && !$mod)
$build_pages[] = thread_find_page($id);
// json api // json api
if ($config['api']['enabled']) { if ($config['api']['enabled']) {
$api = new Api(); $api = new Api();