summaryrefslogtreecommitdiff
path: root/templates/themes/favelaframes/theme.php
diff options
context:
space:
mode:
authorsinuca <55vitaminado@gmail.com>2014-03-18 00:39:13 -0300
committerczaks <marcin@6irc.net>2014-03-25 11:47:46 +0100
commit1e78987ef638cc899be7993d3a7938e51b16ad6d (patch)
treebd4526386319b5fb76f907d01bcf95cc6270d5d0 /templates/themes/favelaframes/theme.php
parentb0c837ce9369b932cecff91966dacdaef4a96952 (diff)
Added ukko and favelaframes themes
Diffstat (limited to 'templates/themes/favelaframes/theme.php')
-rw-r--r--templates/themes/favelaframes/theme.php74
1 files changed, 74 insertions, 0 deletions
diff --git a/templates/themes/favelaframes/theme.php b/templates/themes/favelaframes/theme.php
new file mode 100644
index 00000000..d31a324e
--- /dev/null
+++ b/templates/themes/favelaframes/theme.php
@@ -0,0 +1,74 @@
+<?php
+ require 'info.php';
+
+ function favelaframes_build($action, $settings, $board) {
+ // Possible values for $action:
+ // - all (rebuild everything, initialization)
+ // - news (news has been updated)
+ // - boards (board list changed)
+
+ Favelaframes::build($action, $settings);
+ }
+
+ // Wrap functions in a class so they don't interfere with normal Tinyboard operations
+ class Favelaframes {
+ public static function build($action, $settings) {
+ global $config;
+
+ if ($action == 'all') {
+ copy('templates/themes/favelaframes/favelaframes.css', $config['dir']['home'] . 'stylesheets/' . $settings['css']);
+ file_write($config['dir']['home'] . $settings['file_main'], Favelaframes::homepage($settings));
+ }
+
+ if ($action == 'all' || $action == 'boards')
+ file_write($config['dir']['home'] . $settings['file_sidebar'], Favelaframes::sidebar($settings));
+
+ if ($action == 'all' || $action == 'news')
+ file_write($config['dir']['home'] . $settings['file_news'], Favelaframes::news($settings));
+ }
+
+ // Build homepage
+ public static function homepage($settings) {
+ global $config;
+
+ return Element('themes/favelaframes/frames.html', Array('config' => $config, 'settings' => $settings));
+ }
+
+ // Build news page
+ public static function news($settings) {
+ global $config;
+
+ $query = query("SELECT * FROM ``news`` ORDER BY `time` DESC") or error(db_error());
+ $news = $query->fetchAll(PDO::FETCH_ASSOC);
+
+ return Element('themes/favelaframes/news.html', Array(
+ 'settings' => $settings,
+ 'config' => $config,
+ 'news' => $news
+ ));
+ }
+
+ // Build sidebar
+ public static function sidebar($settings) {
+ global $config, $board;
+
+ $categories = $config['categories'];
+
+ foreach ($categories as &$boards) {
+ foreach ($boards as &$board) {
+ $title = boardTitle($board);
+ if (!$title)
+ $title = $board; // board doesn't exist, but for some reason you want to display it anyway
+ $board = Array('title' => $title, 'uri' => sprintf($config['board_path'], $board));
+ }
+ }
+
+ return Element('themes/favelaframes/sidebar.html', Array(
+ 'settings' => $settings,
+ 'config' => $config,
+ 'categories' => $categories
+ ));
+ }
+ };
+
+?>