@ -201,8 +201,6 @@
}
function openBoard($uri) {
$query = prepare("SELECT * FROM `boards` WHERE `uri` = :uri LIMIT 1");
$query->bindValue(':uri', $uri);
$query->execute() or error(db_error($query));
@ -1223,9 +1221,16 @@
}
function buildThread($id, $return=false, $mod=false) {
global $board, $config;
global $board, $config, $memcached ;
$id = round($id);
if($config['memcached']['cache_threads'] & & $config['memcached']['enabled'] & & $return & & $mod) {
// Experimental: cache entire threads (for mods, since we already cache it with static HTML anyway)
if($body = $memcached->get('thread_' . $board['uri'] . '_' . $id)) {
return $body;
}
}
$query = prepare(sprintf("SELECT * FROM `posts_%s` WHERE (`thread` IS NULL AND `id` = :id) OR `thread` = :id ORDER BY `thread`,`time`", $board['uri']));
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute() or error(db_error($query));
@ -1252,6 +1257,10 @@
'return' => ($mod ? '?' . $board['url'] . $config['file_index'] : $config['root'] . $board['uri'] . '/' . $config['file_index'])
));
if($config['memcached']['cache_threads'] & & $config['memcached']['enabled']) {
$memcached->set('thread_' . $board['uri'] . '_' . $id, $body, time() + 60);
}
if($return)
return $body;
else