diff --git a/3.0/modules/tag_albums/controllers/tag_albums.php b/3.0/modules/tag_albums/controllers/tag_albums.php index 566949b8..103dbe79 100644 --- a/3.0/modules/tag_albums/controllers/tag_albums.php +++ b/3.0/modules/tag_albums/controllers/tag_albums.php @@ -100,7 +100,7 @@ class tag_albums_Controller extends Controller { $tag_children = $this->_get_records($tag_ids, $page_size, $offset, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, true); $children = Array(); foreach ($tag_children as $one_child) { - $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/0/" . $id . "/" . urlencode($one_child->name)), $one_child->type); + $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/0/" . $id . "/" . urlencode($one_child->name)), $one_child->type, $one_child->id); $child_tag->id = $one_child->id; $child_tag->view_count = $one_child->view_count; $child_tag->owner = identity::lookup_user($one_child->owner_id); @@ -141,6 +141,7 @@ class tag_albums_Controller extends Controller { $template->set_global("page_size", $page_size); $template->set_global("max_pages", $max_pages); $template->set_global("children", $children); + $template->set_global("all_siblings", $this->_get_records($tag_ids, $count, 0, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false)); $template->set_global("children_count", $count); $template->set_global("parent_url", $parent_album->url()); // Used by Grey Dragon. $template->content = new View("tag_albums_album.html"); @@ -317,7 +318,7 @@ class tag_albums_Controller extends Controller { ->where("items_tags.tag_id", "=", $one_tag->id) ->order_by("items.id", "DESC") ->find_all(1, 0); - $child_tag = new Tag_Albums_Item($one_tag->name, url::site("tag_albums/tag/" . $one_tag->id . "/" . $id . "/" . urlencode($one_tag->name)), "album"); + $child_tag = new Tag_Albums_Item($one_tag->name, url::site("tag_albums/tag/" . $one_tag->id . "/" . $id . "/" . urlencode($one_tag->name)), "album", 0); if (count($tag_item) > 0) { if ($tag_item[0]->has_thumb()) { $child_tag->set_thumb($tag_item[0]->thumb_url(), $tag_item[0]->thumb_width, $tag_item[0]->thumb_height); @@ -430,7 +431,7 @@ class tag_albums_Controller extends Controller { // Create an array of "fake" items to display on the page. $children = Array(); foreach ($tag_children as $one_child) { - $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/" . $id . "/" . $album_id . "/" . urlencode($one_child->name)), $one_child->type); + $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/" . $id . "/" . $album_id . "/" . urlencode($one_child->name)), $one_child->type, $one_child->id); $child_tag->id = $one_child->id; $child_tag->view_count = $one_child->view_count; $child_tag->owner = identity::lookup_user($one_child->owner_id); @@ -491,6 +492,7 @@ class tag_albums_Controller extends Controller { $template->set_global("page_size", $page_size); $template->set_global("max_pages", $max_pages); $template->set_global("children", $children); + $template->set_global("all_siblings", $this->_get_records(Array($id), $count, 0, "items." . $sort_page_field, $sort_page_direction, "OR", false)); $template->set_global("children_count", $count); $template->set_global("parent_url", $parent_url); // Used by Grey Dragon. $template->content = new View("tag_albums_album.html"); @@ -542,12 +544,12 @@ class tag_albums_Controller extends Controller { if ($position > 1) { $previous_item_object = $this->_get_records(Array($tag_id), 1, $position-2, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false); if (count($previous_item_object) > 0) { - $previous_item = new Tag_Albums_Item($previous_item_object[0]->title, url::site("tag_albums/show/" . $previous_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($previous_item_object[0]->name)), $previous_item_object[0]->type); + $previous_item = new Tag_Albums_Item($previous_item_object[0]->title, url::site("tag_albums/show/" . $previous_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($previous_item_object[0]->name)), $previous_item_object[0]->type, $previous_item_object[0]->id); } } $next_item_object = $this->_get_records(Array($tag_id), 1, $position, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false); if (count($next_item_object) > 0) { - $next_item = new Tag_Albums_Item($next_item_object[0]->title, url::site("tag_albums/show/" . $next_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($next_item_object[0]->name)), $next_item_object[0]->type); + $next_item = new Tag_Albums_Item($next_item_object[0]->title, url::site("tag_albums/show/" . $next_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($next_item_object[0]->name)), $next_item_object[0]->type, $next_item_object[0]->id); } $dynamic_siblings = $this->_get_records(Array($tag_id), null, null, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false); } else { diff --git a/3.0/modules/tag_albums/libraries/Tag_Albums_Item.php b/3.0/modules/tag_albums/libraries/Tag_Albums_Item.php index a90c5239..d521697a 100644 --- a/3.0/modules/tag_albums/libraries/Tag_Albums_Item.php +++ b/3.0/modules/tag_albums/libraries/Tag_Albums_Item.php @@ -20,6 +20,7 @@ class Tag_Albums_Item_Core { public $title = ""; public $id = -1; + public $item_id = 0; public $url = "#"; public $thumb_url = ""; public $thumb_width = 0; @@ -45,6 +46,19 @@ class Tag_Albums_Item_Core { } } + public function full_or_resize_url() { + if ($this->item_id > 0) { + $item = ORM::factory("item", $this->item_id); + if (access::can("view_full", $item)) { + return $item->file_url(); + } else { + return $item->resize_url(); + } + } else { + return ""; + } + } + public function thumb_img($extra_attrs=array(), $max=null, $center_vertically=false) { list ($height, $width) = $this->scale_dimensions($max); if ($center_vertically && $max) { @@ -105,10 +119,11 @@ class Tag_Albums_Item_Core { $this->thumb_height = $new_height; } - public function __construct($new_title, $new_url, $new_type) { + public function __construct($new_title, $new_url, $new_type, $new_id) { $this->title = $new_title; $this->url = $new_url; $this->item_type = $new_type; $this->type = $new_type; + $this->item_id = $new_id; } } diff --git a/3.1/modules/tag_albums/controllers/tag_albums.php b/3.1/modules/tag_albums/controllers/tag_albums.php index 566949b8..103dbe79 100644 --- a/3.1/modules/tag_albums/controllers/tag_albums.php +++ b/3.1/modules/tag_albums/controllers/tag_albums.php @@ -100,7 +100,7 @@ class tag_albums_Controller extends Controller { $tag_children = $this->_get_records($tag_ids, $page_size, $offset, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, true); $children = Array(); foreach ($tag_children as $one_child) { - $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/0/" . $id . "/" . urlencode($one_child->name)), $one_child->type); + $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/0/" . $id . "/" . urlencode($one_child->name)), $one_child->type, $one_child->id); $child_tag->id = $one_child->id; $child_tag->view_count = $one_child->view_count; $child_tag->owner = identity::lookup_user($one_child->owner_id); @@ -141,6 +141,7 @@ class tag_albums_Controller extends Controller { $template->set_global("page_size", $page_size); $template->set_global("max_pages", $max_pages); $template->set_global("children", $children); + $template->set_global("all_siblings", $this->_get_records($tag_ids, $count, 0, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false)); $template->set_global("children_count", $count); $template->set_global("parent_url", $parent_album->url()); // Used by Grey Dragon. $template->content = new View("tag_albums_album.html"); @@ -317,7 +318,7 @@ class tag_albums_Controller extends Controller { ->where("items_tags.tag_id", "=", $one_tag->id) ->order_by("items.id", "DESC") ->find_all(1, 0); - $child_tag = new Tag_Albums_Item($one_tag->name, url::site("tag_albums/tag/" . $one_tag->id . "/" . $id . "/" . urlencode($one_tag->name)), "album"); + $child_tag = new Tag_Albums_Item($one_tag->name, url::site("tag_albums/tag/" . $one_tag->id . "/" . $id . "/" . urlencode($one_tag->name)), "album", 0); if (count($tag_item) > 0) { if ($tag_item[0]->has_thumb()) { $child_tag->set_thumb($tag_item[0]->thumb_url(), $tag_item[0]->thumb_width, $tag_item[0]->thumb_height); @@ -430,7 +431,7 @@ class tag_albums_Controller extends Controller { // Create an array of "fake" items to display on the page. $children = Array(); foreach ($tag_children as $one_child) { - $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/" . $id . "/" . $album_id . "/" . urlencode($one_child->name)), $one_child->type); + $child_tag = new Tag_Albums_Item($one_child->title, url::site("tag_albums/show/" . $one_child->id . "/" . $id . "/" . $album_id . "/" . urlencode($one_child->name)), $one_child->type, $one_child->id); $child_tag->id = $one_child->id; $child_tag->view_count = $one_child->view_count; $child_tag->owner = identity::lookup_user($one_child->owner_id); @@ -491,6 +492,7 @@ class tag_albums_Controller extends Controller { $template->set_global("page_size", $page_size); $template->set_global("max_pages", $max_pages); $template->set_global("children", $children); + $template->set_global("all_siblings", $this->_get_records(Array($id), $count, 0, "items." . $sort_page_field, $sort_page_direction, "OR", false)); $template->set_global("children_count", $count); $template->set_global("parent_url", $parent_url); // Used by Grey Dragon. $template->content = new View("tag_albums_album.html"); @@ -542,12 +544,12 @@ class tag_albums_Controller extends Controller { if ($position > 1) { $previous_item_object = $this->_get_records(Array($tag_id), 1, $position-2, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false); if (count($previous_item_object) > 0) { - $previous_item = new Tag_Albums_Item($previous_item_object[0]->title, url::site("tag_albums/show/" . $previous_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($previous_item_object[0]->name)), $previous_item_object[0]->type); + $previous_item = new Tag_Albums_Item($previous_item_object[0]->title, url::site("tag_albums/show/" . $previous_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($previous_item_object[0]->name)), $previous_item_object[0]->type, $previous_item_object[0]->id); } } $next_item_object = $this->_get_records(Array($tag_id), 1, $position, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false); if (count($next_item_object) > 0) { - $next_item = new Tag_Albums_Item($next_item_object[0]->title, url::site("tag_albums/show/" . $next_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($next_item_object[0]->name)), $next_item_object[0]->type); + $next_item = new Tag_Albums_Item($next_item_object[0]->title, url::site("tag_albums/show/" . $next_item_object[0]->id . "/" . $tag_id . "/" . $album_id . "/" . urlencode($next_item_object[0]->name)), $next_item_object[0]->type, $next_item_object[0]->id); } $dynamic_siblings = $this->_get_records(Array($tag_id), null, null, "items." . $sort_page_field, $sort_page_direction, $album_tags_search_type, false); } else { diff --git a/3.1/modules/tag_albums/libraries/Tag_Albums_Item.php b/3.1/modules/tag_albums/libraries/Tag_Albums_Item.php index a90c5239..d521697a 100644 --- a/3.1/modules/tag_albums/libraries/Tag_Albums_Item.php +++ b/3.1/modules/tag_albums/libraries/Tag_Albums_Item.php @@ -20,6 +20,7 @@ class Tag_Albums_Item_Core { public $title = ""; public $id = -1; + public $item_id = 0; public $url = "#"; public $thumb_url = ""; public $thumb_width = 0; @@ -45,6 +46,19 @@ class Tag_Albums_Item_Core { } } + public function full_or_resize_url() { + if ($this->item_id > 0) { + $item = ORM::factory("item", $this->item_id); + if (access::can("view_full", $item)) { + return $item->file_url(); + } else { + return $item->resize_url(); + } + } else { + return ""; + } + } + public function thumb_img($extra_attrs=array(), $max=null, $center_vertically=false) { list ($height, $width) = $this->scale_dimensions($max); if ($center_vertically && $max) { @@ -105,10 +119,11 @@ class Tag_Albums_Item_Core { $this->thumb_height = $new_height; } - public function __construct($new_title, $new_url, $new_type) { + public function __construct($new_title, $new_url, $new_type, $new_id) { $this->title = $new_title; $this->url = $new_url; $this->item_type = $new_type; $this->type = $new_type; + $this->item_id = $new_id; } }