diff --git a/ext/admin/main.php b/ext/admin/main.php
index e7fceee0..179a13c7 100644
--- a/ext/admin/main.php
+++ b/ext/admin/main.php
@@ -125,6 +125,15 @@ class AdminPage extends Extension {
return false;
}
+ private function set_tag_case() {
+ global $database;
+ $database->execute($database->scoreql_to_sql(
+ "UPDATE tags SET tag=:tag1 WHERE SCORE_STRNORM(tag) = SCORE_STRNORM(:tag2)"
+ ), array("tag1" => $_POST['tag'], "tag2" => $_POST['tag']));
+ log_info("admin", "Fixed the case of ".html_escape($_POST['tag']), true);
+ return true;
+ }
+
private function lowercase_all_tags() {
global $database;
$database->execute("UPDATE tags SET tag=lower(tag)");
diff --git a/ext/admin/theme.php b/ext/admin/theme.php
index c6e8fb94..7069afc0 100644
--- a/ext/admin/theme.php
+++ b/ext/admin/theme.php
@@ -31,6 +31,7 @@ class AdminPageTheme extends Themelet {
* 'lowercase all tags'
* 'recount tag use'
* 'purge unused tags'
+ * etc
*/
public function display_form() {
global $page, $database;
@@ -40,8 +41,13 @@ class AdminPageTheme extends Themelet {
$html .= $this->button("Recount tag use", "recount_tag_user", false);
$html .= $this->button("Download all images", "image_dump", false);
$html .= $this->button("Download database contents", "database_dump", false);
-
$page->add_block(new Block("Misc Admin Tools", $html));
+
+ $html = make_form(make_link("admin/set_tag_case"), "POST");
+ $html .= "";
+ $html .= "";
+ $html .= "\n";
+ $page->add_block(new Block("Set Tag Case", $html));
}
public function dbq_html($terms) {