From 5c847c75ac9e39a386e0cd4a55164e03091b5cdd Mon Sep 17 00:00:00 2001 From: Michael Save Date: Wed, 8 Feb 2012 19:20:08 +1100 Subject: [PATCH] "# of recent entries" setting adding to basic theme --- templates/themes/basic/info.php | 32 +++++++++++++++++++++++++++++--- templates/themes/basic/theme.php | 6 ++++-- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/templates/themes/basic/info.php b/templates/themes/basic/info.php index 0c5f0323..d29a834a 100644 --- a/templates/themes/basic/info.php +++ b/templates/themes/basic/info.php @@ -11,7 +11,7 @@ $theme['config'] = Array(); $theme['config'][] = Array( - 'title' => 'Title', + 'title' => 'Site title', 'name' => 'title', 'type' => 'text' ); @@ -19,9 +19,35 @@ $theme['config'][] = Array( 'title' => 'Slogan', 'name' => 'subtitle', - 'type' => 'text' + 'type' => 'text', + 'comment' => '(optional)' + ); + + $theme['config'][] = Array( + 'title' => 'File', + 'name' => 'file', + 'type' => 'text', + 'default' => $config['file_index'], + 'comment' => '(eg. "index.html")' + ); + + $theme['config'][] = Array( + 'title' => '# of recent entries', + 'name' => 'no_recent', + 'type' => 'text', + 'default' => 0, + 'size' => 3, + 'comment' => '(number of recent news entries to display; "0" is infinite)' ); // Unique function name for building everything $theme['build_function'] = 'basic_build'; -?> + $theme['install_callback'] = 'build_install'; + + if(!function_exists('build_install')) { + function build_install($settings) { + if(!is_numeric($settings['no_recent']) || $settings['no_recent'] < 0) + return Array(false, '' . $settings['no_recent'] . ' is not a non-negative integer.'); + } + } + diff --git a/templates/themes/basic/theme.php b/templates/themes/basic/theme.php index 8dba89cc..603176cb 100644 --- a/templates/themes/basic/theme.php +++ b/templates/themes/basic/theme.php @@ -16,14 +16,16 @@ global $config; if($action == 'all' || $action == 'news') - file_write($config['dir']['home'] . $config['file_index'], Basic::homepage($settings)); + file_write($config['dir']['home'] . $settings['file'], Basic::homepage($settings)); } // Build news page public static function homepage($settings) { global $config; - $query = query("SELECT * FROM `news` ORDER BY `time` DESC") or error(db_error()); + $settings['no_recent'] = (int) $settings['no_recent']; + + $query = query("SELECT * FROM `news` ORDER BY `time` DESC" . ($settings['no_recent'] ? ' LIMIT ' . $settings['no_recent'] : '')) or error(db_error()); $news = $query->fetchAll(PDO::FETCH_ASSOC); return Element('themes/basic/index.html', Array(