static function get_display_context($item, $album_id, $title, $query_terms, $q) { $album = ORM::factory("item", $album_id); $position = search::get_position_within_album($item, $query_terms, $album); if ($position > 1) { list($count, $result_data) = search::search_within_album($query_terms, $album, 3, $position - 2); list($previous_item, $ignore, $next_item) = $result_data; } else { $previous_item = null; list($count, $result_data) = search::search_within_album($query_terms, $album, 1, $position); list($next_item) = $result_data; } $search_url = url::abs_site("search" . "?q=" . urlencode($q) . "&album=" . urlencode($album_id) . "&show={$item->id}"); $root = item::root(); return array("position" => $position, "previous_item" => $previous_item, "next_item" => $next_item, "sibling_count" => $count, "breadcrumbs" => array(Breadcrumb::instance($root->title, "/", $root->id)->set_first(), Breadcrumb::instance(t("Search: %q", array("q" => $q)), $search_url), Breadcrumb::instance($item->title, $item->url())->set_last())); }
static function get_position($item, $q) { return search::get_position_within_album($item, $q, item::root()); }