diff --git a/inc/config.php b/inc/config.php index cb9220fe..5297f538 100644 --- a/inc/config.php +++ b/inc/config.php @@ -73,6 +73,7 @@ $config['threads_per_page'] = 10; $config['max_pages'] = 10; $config['threads_preview'] = 5; + $config['threads_preview_sticky'] = 1; // For development purposes. Turns 'display_errors' on. Not recommended for production. $config['verbose_errors'] = true; diff --git a/inc/functions.php b/inc/functions.php index 77e1be91..35a8d31a 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -437,16 +437,16 @@ $posts = prepare(sprintf("SELECT `id`, `subject`, `email`, `name`, `trip`, `body`, `time`, `thumb`, `thumbwidth`, `thumbheight`, `file`, `filewidth`, `fileheight`, `filesize`, `filename`,`ip` FROM `posts_%s` WHERE `thread` = ? ORDER BY `id` DESC LIMIT ?", $board['uri'])); $posts->bindValue(1, $th['id']); - $posts->bindValue(2, $config['threads_preview'], PDO::PARAM_INT); + $posts->bindValue(2, ($th['sticky'] ? $config['threads_preview_sticky'] : $config['threads_preview']), PDO::PARAM_INT); $posts->execute() or error(db_error($posts)); - if($posts->rowCount() == $config['threads_preview']) { + if($posts->rowCount() == ($th['sticky'] ? $config['threads_preview_sticky'] : $config['threads_preview'])) { $count = prepare(sprintf("SELECT COUNT(`id`) as `num` FROM `posts_%s` WHERE `thread` = ?", $board['uri'])); $count->bindValue(1, $th['id']); $count->execute() or error(db_error($count)); $count = $count->fetch(); - $omitted = $count['num'] - $config['threads_preview']; + $omitted = $count['num'] - ($th['sticky'] ? $config['threads_preview_sticky'] : $config['threads_preview']); $thread->omitted = $omitted; unset($count); unset($omitted); @@ -474,7 +474,10 @@ $pages = Array(); for($x=0;$x<$count && $x<$config['max_pages'];$x++) { - $pages[] = Array('num' => $x+1, 'link' => $x==0 ? ($mod ? '?/' : $config['root']) . $board['dir'] . $config['file_index'] : ($mod ? '?/' : $config['root']) . $board['dir'] . sprintf($config['file_page'], $x+1)); + $pages[] = Array( + 'num' => $x+1, + 'link' => $x==0 ? ($mod ? '?/' : $config['root']) . $board['dir'] . $config['file_index'] : ($mod ? '?/' : $config['root']) . $board['dir'] . sprintf($config['file_page'], $x+1) + ); } return $pages; @@ -589,6 +592,7 @@ if(file_exists($filename)) $md5 = md5_file($filename); $content['pages'] = $pages; + $content['pages'][$page-1]['selected'] = true; @file_put_contents($filename, Element('index.html', $content)) or error("Couldn't write to file."); if(isset($md5) && $md5 == md5_file($filename)) { diff --git a/mod.php b/mod.php index 23950f8c..66b7cdef 100644 --- a/mod.php +++ b/mod.php @@ -318,10 +318,14 @@ if(!openBoard($boardName)) error($config['error']['noboard']); - if(!$page = index(empty($matches[2]) || $matches[2] == $config['file_index'] ? 1 : $matches[2], $mod)) { + $page_no = empty($matches[2]) || $matches[2] == $config['file_index'] ? 1 : $matches[2]; + + if(!$page = index($page_no, $mod)) { error($config['error']['404']); } + $page['pages'] = getPages(true); + $page['pages'][$page_no-1]['selected'] = true; $page['mod'] = true; echo Element('index.html', $page); diff --git a/style.css b/style.css index 4aec2b96..d4a5b944 100644 --- a/style.css +++ b/style.css @@ -270,4 +270,19 @@ table.test td img { } fieldset label { display: block; +} +div.pages { + color: #89A; + background: #D6DAF0; + display: inline; + padding: 8px; + border-right: 1px solid #B7C5D9; + border-bottom: 1px solid #B7C5D9; +} +div.pages a.selected { + color: black; + font-weight: bolder; +} +div.pages a:link { + text-decoration: none; } \ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 424cf21b..3548eeef 100644 --- a/templates/index.html +++ b/templates/index.html @@ -102,9 +102,9 @@ - Pages: {pages: - [{pages[num]}]{!%last? } - } -

Tinyboard Software Copyright © 2010-2011 OmegaSDG

+
Pages: {pages: + [{pages[num]}]{!%last? } + }
+

Tinyboard Software Copyright © 2010-2011 OmegaSDG

\ No newline at end of file diff --git a/yotsuba.css b/yotsuba.css index 65509290..bda05955 100644 --- a/yotsuba.css +++ b/yotsuba.css @@ -37,4 +37,11 @@ div.ban { } div.ban p { color: black; +} +div.pages { + background: #F0E0D6; + border-color: #D9BFB7; +} +div.pages a.selected { + color: #800; } \ No newline at end of file