diff options
Diffstat (limited to 'templates/themes/drudgereport/theme.php')
| -rw-r--r-- | templates/themes/drudgereport/theme.php | 145 |
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; + } + }; + +?> |
