'Title', 'name' => 'title', 'type' => 'text' ); $theme['config'][] = Array( 'title' => 'Slogan', 'name' => 'subtitle', 'type' => 'text' ); // Unique function name for building everything $theme['build_function'] = 'frameset_build'; if(!function_exists('frameset_build')) { 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($action, $settings) { global $config; 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 public static function homepage($settings) { global $config; // HTML5 return '' . '
' . '' . '' . '(No news to show.)
'; } else { // List news while($news = $query->fetch()) { $body .= '' . $news['body'] . '