From 2a51a9d6baab11c176b3447dc6442ed1aaa83df1 Mon Sep 17 00:00:00 2001 From: Daniel Oaks Date: Sun, 23 Jun 2013 10:07:12 +1000 Subject: [PATCH] Fixed things Shish pointed out --- ext/tag_categories/main.php | 47 +++++++++++++++++++++---------------- ext/tag_list/theme.php | 6 ++--- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/ext/tag_categories/main.php b/ext/tag_categories/main.php index b5d35883..4a5dcffa 100644 --- a/ext/tag_categories/main.php +++ b/ext/tag_categories/main.php @@ -9,16 +9,27 @@ class TagCategories extends Extension { public function onInitExt(InitExtEvent $event) { global $config, $database; - + // whether we split out separate categories on post view by default // note: only takes effect if /post/view shows the image's exact tags $config->set_default_bool("tag_categories_split_on_view", true); - $database->execute('CREATE TABLE IF NOT EXISTS image_tag_categories (category TEXT PRIMARY KEY, display_singular TEXT, display_multiple SINGULAR, color TEXT(7));'); + if($config->get_int("ext_tag_categories_version") < 1) { + // primary extension database, holds all our stuff! + $database->create_table('image_tag_categories', + 'category VARCHAR(60) PRIMARY KEY, + display_singular TEXT(60), + display_multiple TEXT(60), + color TEXT(7)'); - $number_of_db_rows = $database->execute('SELECT COUNT(*) FROM image_tag_categories;')->fetchColumn(); + $config->set_int("ext_tag_categories_version", 1); + + log_info("tag_categories", "extension installed"); + } // if empty, add our default values + $number_of_db_rows = $database->execute('SELECT COUNT(*) FROM image_tag_categories;')->fetchColumn(); + if ($number_of_db_rows == 0) { $database->execute('INSERT INTO image_tag_categories VALUES ("artist", "Artist", "Artists", "#BB6666");'); $database->execute('INSERT INTO image_tag_categories VALUES ("series", "Series", "Series", "#AA00AA");'); @@ -29,14 +40,10 @@ class TagCategories extends Extension { public function onPageRequest(PageRequestEvent $event) { global $page, $database, $user; - if($event->page_matches("tags")) { - switch($event->get_arg(0)) { - case 'categories': - if(class_exists("TagCategories") and ($user->is_admin())) { - $this->page_update(); - $this->show_tag_categories($page); - } - break; + if($event->page_matches("tags/categories")) { + if($user->is_admin()) { + $this->page_update(); + $this->show_tag_categories($page); } } } @@ -83,27 +90,27 @@ class TagCategories extends Extension { color=:color WHERE category=:category', array( - 'category' => html_escape($_POST['tc_category']), - 'display_singular' => html_escape($_POST['tc_display_singular']), - 'display_multiple' => html_escape($_POST['tc_display_multiple']), - 'color' => html_escape($_POST['tc_color']), + 'category' => $_POST['tc_category'], + 'display_singular' => $_POST['tc_display_singular'], + 'display_multiple' => $_POST['tc_display_multiple'], + 'color' => $_POST['tc_color'], )); } else if($_POST['tc_status'] == 'new') { $is_success = $database->execute('INSERT INTO image_tag_categories VALUES (:category, :display_singular, :display_multiple, :color)', array( - 'category' => html_escape($_POST['tc_category']), - 'display_singular' => html_escape($_POST['tc_display_singular']), - 'display_multiple' => html_escape($_POST['tc_display_multiple']), - 'color' => html_escape($_POST['tc_color']), + 'category' => $_POST['tc_category'], + 'display_singular' => $_POST['tc_display_singular'], + 'display_multiple' => $_POST['tc_display_multiple'], + 'color' => $_POST['tc_color'], )); } else if($_POST['tc_status'] == 'delete') { $is_success = $database->execute('DELETE FROM image_tag_categories WHERE category=:category', array( - 'category' => html_escape($_POST['tc_category']) + 'category' => $_POST['tc_category'] )); } diff --git a/ext/tag_list/theme.php b/ext/tag_list/theme.php index f68aa122..23df90d7 100644 --- a/ext/tag_list/theme.php +++ b/ext/tag_list/theme.php @@ -67,10 +67,10 @@ class TagListTheme extends Themelet { foreach(array_keys($tag_categories_html) as $category) { if($tag_categories_count[$category] < 2) { - $category_display_name = $tag_category_dict[$category]['display_singular']; + $category_display_name = html_escape($tag_category_dict[$category]['display_singular']); } else{ - $category_display_name = $tag_category_dict[$category]['display_multiple']; + $category_display_name = html_escape($tag_category_dict[$category]['display_multiple']); } $page->add_block(new Block($category_display_name, $tag_categories_html[$category], "left", 9)); } @@ -199,7 +199,7 @@ class TagListTheme extends Themelet { $category = $h_tag_split[0]; $h_tag = $h_tag_split[1]; $tag_category_css .= ' tag_category_'.$category; - $tag_category_style .= 'style="color:'.$tag_category_dict[$category]['color'].';" '; + $tag_category_style .= 'style="color:'.html_escape($tag_category_dict[$category]['color']).';" '; } $h_tag_no_underscores = str_replace("_", " ", $h_tag);