_build_image_list($item->children()))); } function photo($item_id) { $item = ORM::factory("item", $item_id); access::required("view", $item); $images = $this->_build_image_list($item->parent()->children()); $this_photo = array_search($item_id, array_keys($images)); $images = array_merge(array_slice($images, $this_photo), array_slice($images, 0, $this_photo)); print json_encode($images); } function tag($tag_id) { $tag = ORM::factory("tag", $tag_id); print json_encode(array_values($this->_build_image_list($tag->items()))); } private function _build_image_list($children) { $resizes = array(); foreach ($children as $child) { switch($child->type) { case "album": if (!empty($child->album_cover_item_id)) { $cover = ORM::factory("item", $child->album_cover_item_id); $resizes[$child->id] = array("url" => $cover->resize_url(), "width" => $cover->resize_width, "height" => $cover->resize_height); } break; case "photo": $resizes[$child->id] = array("url" => $child->resize_url(), "width" => $child->resize_width, "height" => $child->resize_height); break; } } return $resizes; } }