From eedd6ab3f4476cae6c1d7919de181df7dd03b158 Mon Sep 17 00:00:00 2001 From: Savetheinternet Date: Fri, 15 Apr 2011 04:53:29 +1000 Subject: "recent" theme --- templates/homepage/recent/info.php | 21 ++++++ templates/homepage/recent/theme.php | 134 ++++++++++++++++++++++++++++++++++++ templates/homepage/recent/thumb.png | Bin 0 -> 24532 bytes 3 files changed, 155 insertions(+) create mode 100644 templates/homepage/recent/info.php create mode 100644 templates/homepage/recent/theme.php create mode 100644 templates/homepage/recent/thumb.png (limited to 'templates') diff --git a/templates/homepage/recent/info.php b/templates/homepage/recent/info.php new file mode 100644 index 00000000..2f5c977a --- /dev/null +++ b/templates/homepage/recent/info.php @@ -0,0 +1,21 @@ + 'Title', + 'name' => 'title', + 'type' => 'text' + ); + + // Unique function name for building everything + $theme['build_function'] = 'recentposts_build'; +?> \ No newline at end of file diff --git a/templates/homepage/recent/theme.php b/templates/homepage/recent/theme.php new file mode 100644 index 00000000..963ce235 --- /dev/null +++ b/templates/homepage/recent/theme.php @@ -0,0 +1,134 @@ +' + . '' + . '' + . '' + . '' . $settings['title'] . '' + . ''; + + $boardlist = createBoardlist(); + $body .= '
' . $boardlist['top'] . '
'; + + $body .= '

' . $settings['title'] . '

'; + + + $boards = listBoards(); + + // Wrap + $body .= '
'; + + // Recent images + $body .= '

Recent Images

    '; + $query = ''; + foreach($boards as &$_board) { + $query .= sprintf("SELECT *, '%s' AS `board` FROM `posts_%s` WHERE `file` IS NOT NULL UNION ALL ", $_board['uri'], $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', 'ORDER BY `time` DESC LIMIT 3', $query); + $query = query($query) or error(db_error()); + + while($post = $query->fetch()) { + openBoard($post['board']); + + $body .= '
  • '; + } + $body .= '
'; + + // Latest posts + $body .= '

Latest Posts

    '; + $query = ''; + foreach($boards as &$_board) { + $query .= sprintf("SELECT *, '%s' AS `board` FROM `posts_%s` UNION ALL ", $_board['uri'], $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', 'ORDER BY `time` DESC LIMIT 30', $query); + $query = query($query) or error(db_error()); + + while($post = $query->fetch()) { + openBoard($post['board']); + + $body .= '
  • ' . $board['name'] . ': ' . pm_snippet($post['body'], 30) . '
  • '; + } + + $body .= '
'; + + + // Stats + $body .= '

Stats

    '; + + // Total posts + $query = 'SELECT SUM(`top`) AS `count` FROM ('; + foreach($boards as &$_board) { + $query .= sprintf("SELECT MAX(`id`) AS `top` FROM `posts_%s` UNION ALL ", $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', ') AS `posts_all`', $query); + $query = query($query) or error(db_error()); + $res = $query->fetch(); + $body .= '
  • Total posts: ' . number_format($res['count']) . '
  • '; + + // Unique IPs + $query = 'SELECT COUNT(DISTINCT(`ip`)) AS `count` FROM ('; + foreach($boards as &$_board) { + $query .= sprintf("SELECT `ip` FROM `posts_%s` UNION ALL ", $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', ') AS `posts_all`', $query); + $query = query($query) or error(db_error()); + $res = $query->fetch(); + $body .= '
  • Unqiue posters: ' . number_format($res['count']) . '
  • '; + + // Active content + $query = 'SELECT SUM(`filesize`) AS `count` FROM ('; + foreach($boards as &$_board) { + $query .= sprintf("SELECT `filesize` FROM `posts_%s` UNION ALL ", $_board['uri']); + } + $query = preg_replace('/UNION ALL $/', ') AS `posts_all`', $query); + $query = query($query) or error(db_error()); + $res = $query->fetch(); + $body .= '
  • Active content: ' . format_bytes($res['count']) . '
  • '; + + $body .= '
'; + + // End wrap + $body .= '
'; + + // Finish page + $body .= '

Powered by Tinyboard'; + + return $body; + } + }; + +?> \ No newline at end of file diff --git a/templates/homepage/recent/thumb.png b/templates/homepage/recent/thumb.png new file mode 100644 index 00000000..fff5b824 Binary files /dev/null and b/templates/homepage/recent/thumb.png differ -- cgit v1.3