From eedd6ab3f4476cae6c1d7919de181df7dd03b158 Mon Sep 17 00:00:00 2001 From: Savetheinternet Date: Fri, 15 Apr 2011 04:53:29 +1000 Subject: [PATCH] "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 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 0000000000000000000000000000000000000000..fff5b824d909d375fd07ac0165dae85890f35f67 GIT binary patch literal 24532 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 Z0RXgCQN*y>6u