From 03e78bd19f045aee7d9c304f1991f479c99dce7c Mon Sep 17 00:00:00 2001 From: Justin Brewer <madoushi90@gmail.com> Date: Wed, 7 Aug 2013 15:58:58 -0500 Subject: [PATCH] Tag Category integration --- ext/tag_editcloud/main.php | 31 +++++++++++++++++++++++++++---- ext/tag_editcloud/script.js | 17 ++++++----------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/ext/tag_editcloud/main.php b/ext/tag_editcloud/main.php index 56a5ec51..a1e790d0 100644 --- a/ext/tag_editcloud/main.php +++ b/ext/tag_editcloud/main.php @@ -71,6 +71,14 @@ class TagEditCloud extends Extension { $ignore_tags = explode(' ',$config->get_string("tageditcloud_ignoretags")); + if(class_exists("TagCategories")){ + $categories = $database->get_all("SELECT category, color FROM image_tag_categories"); + $cat_color = array(); + foreach($categories as $row){ + $cat_color[$row['category']] = $row['color']; + } + } + switch($sort_method){ case 'a': case 'p': @@ -93,19 +101,34 @@ class TagEditCloud extends Extension { $cloud .= "<div id='tagcloud_extra' style='display: none;'>\n"; } - $h_tag = html_escape($row['tag']); + if(class_exists("TagCategories")){ + $full_tag = $row['tag']; + $tc = explode(':',$full_tag); + if(isset($tc[1]) && isset($cat_color[$tc[0]])){ + $h_tag = html_escape($tc[1]); + $color = '; color:'.$cat_color[$tc[0]]; + } else { + $h_tag = html_escape($full_tag); + $color = ''; + } + } else { + $full_tag = $row['tag']; + $h_tag = html_escape($full_tag); + $color = ''; + } + $size = sprintf("%.2f", max($row['scaled'],0.5)); if(array_search($row['tag'],$image->tag_array) !== FALSE) { if($used_first) { - $precloud .= " <span onclick='tageditcloud_toggle_tag(this)' class='tag-selected' style='font-size: ${size}em' title='${row['count']}'>$h_tag</span> \n"; + $precloud .= " <span onclick='tageditcloud_toggle_tag(this,\"$full_tag\")' class='tag-selected' style='font-size: ${size}em$color' title='${row['count']}'>$h_tag</span> \n"; } else { $counter++; - $cloud .= " <span onclick='tageditcloud_toggle_tag(this)' class='tag-selected' style='font-size: ${size}em' title='${row['count']}'>$h_tag</span> \n"; + $cloud .= " <span onclick='tageditcloud_toggle_tag(this,\"$full_tag\")' class='tag-selected' style='font-size: ${size}em$color' title='${row['count']}'>$h_tag</span> \n"; } } else { $counter++; - $cloud .= " <span onclick='tageditcloud_toggle_tag(this)' style='font-size: ${size}em' title='${row['count']}'>$h_tag</span> \n"; + $cloud .= " <span onclick='tageditcloud_toggle_tag(this,\"$full_tag\")' style='font-size: ${size}em$color' title='${row['count']}'>$h_tag</span> \n"; } } diff --git a/ext/tag_editcloud/script.js b/ext/tag_editcloud/script.js index f7c84d94..ae4d8eb1 100644 --- a/ext/tag_editcloud/script.js +++ b/ext/tag_editcloud/script.js @@ -29,23 +29,18 @@ function tageditcloud_toggle_extra(hide) { hide.innerHTML = (el.style.display != 'none' ? 'show fewer tags' : hide_text ); } -function tageditcloud_toggle_tag(ele) { - var thisTag = ele.innerHTML; +function tageditcloud_toggle_tag(ele,fullTag) { var taglist = document.getElementById('tag_editor'); var tags = taglist.value.split(' '); - - // If tag is already listed, remove it - if (tags.editcloud_contains(thisTag)) { - tags = tags.editcloud_remove(thisTag); + + if (tags.editcloud_contains(fullTag)) { + tags = tags.editcloud_remove(fullTag); ele.className = 'tag-unselected'; - - // Otherwise add it } else { - tags.splice(0, 0, thisTag); + tags.splice(0, 0, fullTag); ele.className = 'tag-selected'; } - + taglist.value = tags.join(' '); - document.getElementById('tags').focus(); }