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 @@
+
+
+ // Create an array to store the tag names and urls in.
+ $display_tags = array();
+
+ // Loop through all tags in the album, copying their
+ // names and urls into the array and skipping duplicates.
+ $last_tagid = "";
+ foreach ($all_tags as $one_tag) {
+ if ($last_tagid != $one_tag->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 @@
+
+
+ // Create an array to store the tag names and urls in.
+ $display_tags = array();
+
+ // Loop through all tags in the album, copying their
+ // names and urls into the array and skipping duplicates.
+ $last_tagid = "";
+ foreach ($all_tags as $one_tag) {
+ if ($last_tagid != $one_tag->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] . "";
+ }
+?>