smart_build: buildThread
This commit is contained in:
parent
14671e0535
commit
f2a74812f0
@ -2068,51 +2068,62 @@ function buildThread($id, $return = false, $mod = false) {
|
|||||||
cache::delete("thread_{$board['uri']}_{$id}");
|
cache::delete("thread_{$board['uri']}_{$id}");
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE (`thread` IS NULL AND `id` = :id) OR `thread` = :id ORDER BY `thread`,`id`", $board['uri']));
|
if (!$config['smart_build'] || $return || $mod) {
|
||||||
$query->bindValue(':id', $id, PDO::PARAM_INT);
|
$query = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE (`thread` IS NULL AND `id` = :id) OR `thread` = :id ORDER BY `thread`,`id`", $board['uri']));
|
||||||
$query->execute() or error(db_error($query));
|
$query->bindValue(':id', $id, PDO::PARAM_INT);
|
||||||
|
$query->execute() or error(db_error($query));
|
||||||
|
|
||||||
while ($post = $query->fetch(PDO::FETCH_ASSOC)) {
|
while ($post = $query->fetch(PDO::FETCH_ASSOC)) {
|
||||||
if (!isset($thread)) {
|
if (!isset($thread)) {
|
||||||
$thread = new Thread($post, $mod ? '?/' : $config['root'], $mod);
|
$thread = new Thread($post, $mod ? '?/' : $config['root'], $mod);
|
||||||
} else {
|
} else {
|
||||||
$thread->add(new Post($post, $mod ? '?/' : $config['root'], $mod));
|
$thread->add(new Post($post, $mod ? '?/' : $config['root'], $mod));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if any posts were found
|
||||||
|
if (!isset($thread))
|
||||||
|
error($config['error']['nonexistant']);
|
||||||
|
|
||||||
|
$hasnoko50 = $thread->postCount() >= $config['noko50_min'];
|
||||||
|
$antibot = $mod || $return ? false : create_antibot($board['uri'], $id);
|
||||||
|
|
||||||
|
$body = Element('thread.html', array(
|
||||||
|
'board' => $board,
|
||||||
|
'thread' => $thread,
|
||||||
|
'body' => $thread->build(),
|
||||||
|
'config' => $config,
|
||||||
|
'id' => $id,
|
||||||
|
'mod' => $mod,
|
||||||
|
'hasnoko50' => $hasnoko50,
|
||||||
|
'isnoko50' => false,
|
||||||
|
'antibot' => $antibot,
|
||||||
|
'boardlist' => createBoardlist($mod),
|
||||||
|
'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
|
||||||
|
if ($config['api']['enabled']) {
|
||||||
|
$api = new Api();
|
||||||
|
$json = json_encode($api->translateThread($thread));
|
||||||
|
$jsonFilename = $board['dir'] . $config['dir']['res'] . $id . '.json';
|
||||||
|
file_write($jsonFilename, $json);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
// Check if any posts were found
|
|
||||||
if (!isset($thread))
|
|
||||||
error($config['error']['nonexistant']);
|
|
||||||
|
|
||||||
$hasnoko50 = $thread->postCount() >= $config['noko50_min'];
|
|
||||||
$antibot = $mod || $return ? false : create_antibot($board['uri'], $id);
|
|
||||||
|
|
||||||
$body = Element('thread.html', array(
|
|
||||||
'board' => $board,
|
|
||||||
'thread' => $thread,
|
|
||||||
'body' => $thread->build(),
|
|
||||||
'config' => $config,
|
|
||||||
'id' => $id,
|
|
||||||
'mod' => $mod,
|
|
||||||
'hasnoko50' => $hasnoko50,
|
|
||||||
'isnoko50' => false,
|
|
||||||
'antibot' => $antibot,
|
|
||||||
'boardlist' => createBoardlist($mod),
|
|
||||||
'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
|
|
||||||
if ($config['api']['enabled']) {
|
|
||||||
$api = new Api();
|
|
||||||
$json = json_encode($api->translateThread($thread));
|
|
||||||
$jsonFilename = $board['dir'] . $config['dir']['res'] . $id . '.json';
|
$jsonFilename = $board['dir'] . $config['dir']['res'] . $id . '.json';
|
||||||
file_write($jsonFilename, $json);
|
file_unlink($jsonFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($return) {
|
if ($config['smart_build'] && !$return && !$mod) {
|
||||||
|
$noko50fn = $board['dir'] . $config['dir']['res'] . link_for(array('id' => $id), true);
|
||||||
|
file_unlink($noko50fn);
|
||||||
|
|
||||||
|
file_unlink($board['dir'] . $config['dir']['res'] . link_for(array('id' => $id)));
|
||||||
|
} else if ($return) {
|
||||||
return $body;
|
return $body;
|
||||||
} else {
|
} else {
|
||||||
$noko50fn = $board['dir'] . $config['dir']['res'] . link_for($thread, true);
|
$noko50fn = $board['dir'] . $config['dir']['res'] . link_for($thread, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user