summaryrefslogtreecommitdiff
path: root/templates/themes/drudgereport/theme.php
diff options
context:
space:
mode:
authorSavetheinternet <savetheinternet@tinyboard.org>2011-10-05 15:22:53 +1100
committerSavetheinternet <savetheinternet@tinyboard.org>2011-10-05 15:22:53 +1100
commit1b136555d279bf2cfb28f5661225c010426754f5 (patch)
tree01a4dd290f3f8010dc7ed6f0c4e58032a6aef2b6 /templates/themes/drudgereport/theme.php
parente077166030a8609bc0c364fdbf8fc3f99c595d32 (diff)
transition to Twig
Diffstat (limited to 'templates/themes/drudgereport/theme.php')
-rw-r--r--templates/themes/drudgereport/theme.php145
1 files changed, 145 insertions, 0 deletions
diff --git a/templates/themes/drudgereport/theme.php b/templates/themes/drudgereport/theme.php
new file mode 100644
index 00000000..e38b7a0d
--- /dev/null
+++ b/templates/themes/drudgereport/theme.php
@@ -0,0 +1,145 @@
+<?php
+ require 'info.php';
+
+ function drudge_build($action, $settings) {
+ // Possible values for $action:
+ // - all (rebuild everything, initialization)
+ // - news (news has been updated)
+ // - boards (board list changed)
+ // - post (a post has been made)
+
+ $b = new Drudge();
+ $b->build($action, $settings);
+ }
+
+ // Wrap functions in a class so they don't interfere with normal Tinyboard operations
+ class Drudge {
+ public function build($action, $settings) {
+ global $config, $_theme, $threads;
+
+ // Don't worry about this for now:
+ //if($action == 'all') {
+ // copy($config['dir']['themes'] . '/' . $_theme . '/master.css', $config['dir']['home'] . 'drudge_master.css');
+ // copy($config['dir']['themes'] . '/' . $_theme . '/reset.css', $config['dir']['home'] . 'drudge_reset.css');
+ //}
+
+ $this->excluded = explode(' ', $settings['exclude']);
+
+ if($action == 'all' || $action == 'post')
+ file_write($config['dir']['home'] . 'landing/index.html', $this->homepage($settings));
+ }
+
+ private function spot($num) {
+ global $config;
+
+ $prime = $num < 7;
+
+ if(!isset($this->threads[$num]))
+ return '';
+
+ $post = &$this->threads[$num];
+
+ return ($prime ?
+ '<img src="' . $config['uri_thumb'] . $post['thumb'] . '"/>'
+ : '')
+ . '<h2><a href="' . $post['email'] . '">' . $post['subject'] . '</a><a href="' . $post['email'] . '">...</a></h2><hr />';
+ }
+
+ // Build news page
+ public function homepage($settings) {
+ global $config, $board;
+
+ openBoard('a');
+
+ // HTML5
+ $body = '<!DOCTYPE html><html>'
+ . '<head>'
+ //. '<link rel="stylesheet" media="screen" href="' . $config['url_stylesheet'] . '"/>'
+ . '<link rel="stylesheet" media="screen" href="' . $config['root'] . 'landing/reset.css"/>'
+ . '<link rel="stylesheet" media="screen" href="' . $config['root'] . 'landing/master.css"/>'
+ . '<title>' . $settings['title'] . '</title>'
+ . '</head><body>'
+
+ // heading
+ . '<div id="hed-container">'
+
+ /*
+ Sub-headlines related to the main headline appear here.
+ They are pulled from the subject lines of the replies to the top thread.
+
+ Drudge follows all stories with "...", other than the main headline
+ We will use the ellipse to link to the forum thread, while the headline links directly to the story
+ */
+
+ . '<div id="hed-sub">'
+ . '<h2 class="sub"><a href="">Subject Line of latest reply in top thread</a><a href="">...</a></h2>'
+ . '</div>'
+
+ . '<div id="hed">'
+ . '<img src="breitbart.jpg" title="" />'
+ . '<br />';
+
+ $this->threads = Array(); // 0 = main heading, 1-6 = prime spots, 7-18 = normal
+
+ $query = query("SELECT *, `id` AS `thread_id`, (SELECT COUNT(*) FROM `posts_a` WHERE `thread` = `thread_id`) AS `replies` FROM `posts_a` WHERE `thread` IS NULL AND `email` != '' AND `subject` != '' ORDER BY `sticky` DESC, `replies` DESC, `bump` DESC LIMIT 19") or error(db_error());
+ while($post = $query->fetch()) {
+ $this->threads[] = $post;
+ }
+
+ // first prime gets headline
+ $body .= '<h1><a href="' . $this->threads[0]['email'] . '">' . strtoupper($this->threads[0]['subject']) . '</a></h1>';
+
+ $body .= '</div>'
+ . '</div>'
+ ;
+
+ $body .= '<div id="fold"><a href="http://serfin.us/a"><img src="serfinus.png" title="" /></a></div>';
+
+ // begin three column layout here
+ $body .= '<div id="below-the-fold">';
+
+
+ // <stobor> Headline: P Left column: xxPxPx Center: PxxxPx Right: xPxxPx
+
+ // first column
+ $body .= '<div class="column" id="c-left">' .
+ $this->spot(7) .
+ $this->spot(8) .
+ $this->spot(1) .
+ $this->spot(9) .
+ $this->spot(2) .
+ $this->spot(10) .
+ '</div>';
+
+ // second column
+ $body .= '<div class="column" id="c-center">' .
+ $this->spot(3) .
+ $this->spot(11) .
+ $this->spot(12) .
+ $this->spot(13) .
+ $this->spot(4) .
+ $this->spot(14) .
+ '</div>';
+
+ // third column
+ $body .= '<div class="column" id="c-right">' .
+ $this->spot(15) .
+ $this->spot(5) .
+ $this->spot(16) .
+ $this->spot(17) .
+ $this->spot(6) .
+ $this->spot(18) .
+ '</div>';
+
+
+ // end container
+ $body .= '</div>';
+
+ // Finish page
+ $body .= '<hr/><p class="unimportant" style="margin-top:20px;text-align:center;font-size:8pt;font-weight:normal">Powered by <a href="http://tinyboard.org/">Tinyboard</a></body></html>';
+
+ return $body;
+ }
+ };
+
+?>