Rebuilding…
';
$body .= 'Regenerating theme files…
';
- rebuildTheme();
+ rebuildTheme('all');
$body .= 'Generating Javascript file…
';
buildJavascript();
@@ -1510,6 +1522,8 @@
// Build the board
buildIndex();
+ rebuildTheme('boards');
+
header('Location: ?/board/' . $board['uri'], true, $config['redirect_http']);
} else {
diff --git a/templates/homepage/basic/theme.php b/templates/homepage/basic/theme.php
index 1251cfff..6a6f0bfa 100644
--- a/templates/homepage/basic/theme.php
+++ b/templates/homepage/basic/theme.php
@@ -25,16 +25,22 @@
// Unique function name for building everything
$theme['build_function'] = 'basic_build';
- function basic_build($settings) {
- Basic::build($settings);
+ function basic_build($action, $settings) {
+ // Possible values for $action:
+ // - all (rebuild everything, initialization)
+ // - news (news has been updated)
+ // - boards (board list changed)
+
+ Basic::build($action, $settings);
}
// Wrap functions in a class so they don't interfere with normal Tinyboard operations
class Basic {
- public static function build($settings) {
+ public static function build($action, $settings) {
global $config;
- file_put_contents($config['dir']['home'] . $config['file_index'], Basic::homepage($settings));
+ if($action == 'all' || $action == 'news')
+ file_put_contents($config['dir']['home'] . $config['file_index'], Basic::homepage($settings));
}
// Build news page
diff --git a/templates/homepage/frameset/theme.php b/templates/homepage/frameset/theme.php
index 8b96402d..6c82f0b1 100644
--- a/templates/homepage/frameset/theme.php
+++ b/templates/homepage/frameset/theme.php
@@ -28,18 +28,28 @@ Users never have to leave the homepage; they can do all their browsing from the
// Unique function name for building everything
$theme['build_function'] = 'frameset_build';
- function frameset_build($settings) {
- Frameset::build($settings);
+ function frameset_build($action, $settings) {
+ // Possible values for $action:
+ // - all (rebuild everything, initialization)
+ // - news (news has been updated)
+ // - boards (board list changed)
+
+ Frameset::build($action, $settings);
}
// Wrap functions in a class so they don't interfere with normal Tinyboard operations
class Frameset {
- public static function build($settings) {
+ public static function build($action, $settings) {
global $config;
- file_put_contents($config['dir']['home'] . $config['file_index'], Frameset::homepage($settings));
- file_put_contents($config['dir']['home'] . 'sidebar.html', Frameset::sidebar($settings));
- file_put_contents($config['dir']['home'] . 'news.html', Frameset::news($settings));
+ if($action == 'all')
+ file_put_contents($config['dir']['home'] . $config['file_index'], Frameset::homepage($settings));
+
+ if($action == 'all' || $action == 'boards')
+ file_put_contents($config['dir']['home'] . 'sidebar.html', Frameset::sidebar($settings));
+
+ if($action == 'all' || $action == 'news')
+ file_put_contents($config['dir']['home'] . 'news.html', Frameset::news($settings));
}
// Build homepage
diff --git a/templates/homepage/frameset/thumb.png b/templates/homepage/frameset/thumb.png
index fd912d1a..df18a8e9 100644
Binary files a/templates/homepage/frameset/thumb.png and b/templates/homepage/frameset/thumb.png differ