From b7444e5cfc7e34b5fa2c11172918d2357240569e Mon Sep 17 00:00:00 2001 From: rWatcher Date: Sun, 14 Nov 2010 14:42:29 +0800 Subject: [PATCH] Initial commit of TagsInAlbum module. --- .../tagsinalbum/helpers/tagsinalbum_block.php | 50 +++++++++++++++++++ 3.0/modules/tagsinalbum/module.info | 3 ++ .../views/tagsinalbum_sidebar.html.php | 28 +++++++++++ .../tagsinalbum/helpers/tagsinalbum_block.php | 50 +++++++++++++++++++ 3.1/modules/tagsinalbum/module.info | 3 ++ .../views/tagsinalbum_sidebar.html.php | 28 +++++++++++ 6 files changed, 162 insertions(+) create mode 100644 3.0/modules/tagsinalbum/helpers/tagsinalbum_block.php create mode 100644 3.0/modules/tagsinalbum/module.info create mode 100644 3.0/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php create mode 100644 3.1/modules/tagsinalbum/helpers/tagsinalbum_block.php create mode 100644 3.1/modules/tagsinalbum/module.info create mode 100644 3.1/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php diff --git a/3.0/modules/tagsinalbum/helpers/tagsinalbum_block.php b/3.0/modules/tagsinalbum/helpers/tagsinalbum_block.php new file mode 100644 index 00000000..d923bc15 --- /dev/null +++ b/3.0/modules/tagsinalbum/helpers/tagsinalbum_block.php @@ -0,0 +1,50 @@ + t("Tags In Album")); + } + + static function get($block_id, $theme) { + $block = ""; + + switch ($block_id) { + case "tagsinalbum": + if (($theme->item) && ($theme->item->is_album())) { + $item = $theme->item; + $all_tags = ORM::factory("tag") + ->join("items_tags", "items_tags.tag_id", "tags.id") + ->join("items", "items.id", "items_tags.item_id", "LEFT") + ->where("items.parent_id", "=", $item->id) + ->order_by("tags.id", "ASC") + ->find_all(); + if (count($all_tags) > 0) { + $block = new Block(); + $block->css_id = "g-tags-in-album-block"; + $block->title = t("In this album"); + $block->content = new View("tagsinalbum_sidebar.html"); + $block->content->all_tags = $all_tags; + } + } + break; + } + return $block; + } +} diff --git a/3.0/modules/tagsinalbum/module.info b/3.0/modules/tagsinalbum/module.info new file mode 100644 index 00000000..94b7699b --- /dev/null +++ b/3.0/modules/tagsinalbum/module.info @@ -0,0 +1,3 @@ +name = "Tags In Album" +description = "Creates a sidebar block to display tags used by photos and videos in the current album." +version = 1 diff --git a/3.0/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php b/3.0/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php new file mode 100644 index 00000000..803e46ee --- /dev/null +++ b/3.0/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php @@ -0,0 +1,28 @@ + +id) { + $tag = ORM::factory("tag", $one_tag->id); + $display_tags[] = array(html::clean($tag->name), $tag->url()); + $last_tagid = $one_tag->id; + } + } + + // Sort the array. + asort($display_tags); + + // Print out the list of tags as clickable links. + $not_first = 0; + foreach ($display_tags as $one_tag) { + if ($not_first++ > 0) { + print ", "; + } + print "" . $one_tag[0] . ""; + } +?> diff --git a/3.1/modules/tagsinalbum/helpers/tagsinalbum_block.php b/3.1/modules/tagsinalbum/helpers/tagsinalbum_block.php new file mode 100644 index 00000000..d923bc15 --- /dev/null +++ b/3.1/modules/tagsinalbum/helpers/tagsinalbum_block.php @@ -0,0 +1,50 @@ + t("Tags In Album")); + } + + static function get($block_id, $theme) { + $block = ""; + + switch ($block_id) { + case "tagsinalbum": + if (($theme->item) && ($theme->item->is_album())) { + $item = $theme->item; + $all_tags = ORM::factory("tag") + ->join("items_tags", "items_tags.tag_id", "tags.id") + ->join("items", "items.id", "items_tags.item_id", "LEFT") + ->where("items.parent_id", "=", $item->id) + ->order_by("tags.id", "ASC") + ->find_all(); + if (count($all_tags) > 0) { + $block = new Block(); + $block->css_id = "g-tags-in-album-block"; + $block->title = t("In this album"); + $block->content = new View("tagsinalbum_sidebar.html"); + $block->content->all_tags = $all_tags; + } + } + break; + } + return $block; + } +} diff --git a/3.1/modules/tagsinalbum/module.info b/3.1/modules/tagsinalbum/module.info new file mode 100644 index 00000000..94b7699b --- /dev/null +++ b/3.1/modules/tagsinalbum/module.info @@ -0,0 +1,3 @@ +name = "Tags In Album" +description = "Creates a sidebar block to display tags used by photos and videos in the current album." +version = 1 diff --git a/3.1/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php b/3.1/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php new file mode 100644 index 00000000..803e46ee --- /dev/null +++ b/3.1/modules/tagsinalbum/views/tagsinalbum_sidebar.html.php @@ -0,0 +1,28 @@ + +id) { + $tag = ORM::factory("tag", $one_tag->id); + $display_tags[] = array(html::clean($tag->name), $tag->url()); + $last_tagid = $one_tag->id; + } + } + + // Sort the array. + asort($display_tags); + + // Print out the list of tags as clickable links. + $not_first = 0; + foreach ($display_tags as $one_tag) { + if ($not_first++ > 0) { + print ", "; + } + print "" . $one_tag[0] . ""; + } +?>