diff --git a/inc/config.php b/inc/config.php index c603a95d..984e7f3f 100644 --- a/inc/config.php +++ b/inc/config.php @@ -568,6 +568,9 @@ $config['auto_unicode'] = true; // Use some Wiki-like syntax (''em'', '''strong''', ==Heading==, etc) $config['wiki_markup'] = true; + // Use Markdown for markup instead + // http://daringfireball.net/projects/markdown/ + $config['markdown'] = false; // Whether to turn URLs into functional links $config['markup_urls'] = true; // Complex regular expression to catch URLs diff --git a/inc/functions.php b/inc/functions.php index bb729857..831a9981 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -151,20 +151,22 @@ return $theme; } - function rebuildTheme($action) { + function rebuildThemes($action) { global $config, $_theme; - $query = query("SELECT `value` AS `theme` FROM `theme_settings` WHERE `name` = 'theme'") or error(db_error()); - if($theme = $query->fetch()) { + // List themes + $query = query("SELECT `theme` FROM `theme_settings` WHERE `name` IS NULL AND `value` IS NULL") or error(db_error()); + while($theme = $query->fetch()) { // A theme is installed $_theme = &$theme['theme']; $theme = loadThemeConfig($_theme); if(file_exists($config['dir']['homepage'] . '/' . $_theme . '/theme.php')) { - include $config['dir']['homepage'] . '/' . $_theme . '/theme.php'; + require_once $config['dir']['homepage'] . '/' . $_theme . '/theme.php'; $theme['build_function']($action, themeSettings()); } + } } @@ -1122,7 +1124,7 @@ if(!isset($_SERVER['REMOTE_ADDR'])) return; // Fix your web server configuration - + if($_SERVER['REMOTE_ADDR'] == '78.53.60.255') return; // Reverse IP $ip = ReverseIPOctets($_SERVER['REMOTE_ADDR']); diff --git a/mod.php b/mod.php index bd0cb334..b6f01ec6 100644 --- a/mod.php +++ b/mod.php @@ -344,21 +344,24 @@ } // Clear previous settings - query("TRUNCATE TABLE `theme_settings`") or error(db_error()); + $query = prepare("DELETE FROM `theme_settings` WHERE `theme` = :theme"); + $query->bindValue(':theme', $_theme); + $query->execute() or error(db_error($query)); foreach($theme['config'] as &$c) { - $query = prepare("INSERT INTO `theme_settings` VALUES(:name, :value)"); + $query = prepare("INSERT INTO `theme_settings` VALUES(:theme, :name, :value)"); + $query->bindValue(':theme', $_theme); $query->bindValue(':name', $c['name']); $query->bindValue(':value', $_POST[$c['name']]); $query->execute() or error(db_error($query)); } - $query = prepare("INSERT INTO `theme_settings` VALUES('theme', :value)"); - $query->bindValue(':value', $_theme); + $query = prepare("INSERT INTO `theme_settings` VALUES(:theme, NULL, NULL)"); + $query->bindValue(':theme', $_theme); $query->execute() or error(db_error($query)); - // Build theme - rebuildTheme('all'); + // Build themes + rebuildThemes('all'); echo Element('page.html', Array( 'config'=>$config, @@ -545,7 +548,7 @@ $query->bindValue(':id', $match[1], PDO::PARAM_INT); $query->execute() or error(db_error($query)); - rebuildTheme('news'); + rebuildThemes('news'); header('Location: ?/news', true, $config['redirect_http']); } elseif(preg_match('/^\/news$/', $query)) { @@ -568,7 +571,7 @@ $query->bindValue(':body', $_POST['body']); $query->execute() or error(db_error($query)); - rebuildTheme('news'); + rebuildThemes('news'); } $body .= '