summaryrefslogtreecommitdiff
path: root/modules/tag/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'modules/tag/helpers')
-rw-r--r--modules/tag/helpers/tag_event.php33
1 files changed, 33 insertions, 0 deletions
diff --git a/modules/tag/helpers/tag_event.php b/modules/tag/helpers/tag_event.php
index 43ff6a15..a13ae99c 100644
--- a/modules/tag/helpers/tag_event.php
+++ b/modules/tag/helpers/tag_event.php
@@ -60,4 +60,37 @@ class tag_event_Core {
$db->delete("items_tags", array("item_id" => "$item->id"));
}
+ static function organize_form_creation($event_parms) {
+ $v = new View("tag_organize.html");
+ $v->tags = array();
+
+ $ids = implode(", ", $event_parms->itemids);
+ $db = Database::instance();
+ $tags = $db->query("SELECT it.tag_id, t.name,
+ COUNT(DISTINCT it.item_id) as item_count,
+ UPPER(SUBSTR(t.name, 1, 1)) as first_letter
+ FROM {items_tags} it, {tags} t
+ WHERE it.tag_id = t.id
+ AND it.item_id in($ids)
+ GROUP BY it.tag_id
+ ORDER BY first_letter ASC, t.name ASC");
+ foreach ($tags as $tag) {
+ $v->tags[$tag->first_letter]["taglist"][] =
+ array("id" => $tag->tag_id, "tag" => $tag->name, "count" => $tag->item_count);
+ }
+ $v->tag_count = $tags->count();
+
+ $letters = $db->query("SELECT COUNT(DISTINCT it.item_id) as letter_count,
+ UPPER(SUBSTR(t.name, 1, 1)) as first_letter
+ FROM {items_tags} it, {tags} t
+ WHERE it.tag_id = t.id
+ AND it.item_id in($ids)
+ GROUP BY first_letter
+ ORDER BY first_letter ASC");
+ foreach ($letters as $letter) {
+ $v->tags[$letter->first_letter]["count"] = $letter->letter_count;
+ }
+
+ $event_parms->panes[] = array("label" => t("Manage Tags"), "content" => $v);
+ }
}