public function build_breadcrumbs_for_item_test() { $album = test::random_album(); $item = test::random_photo($album); $expected = array(); $expected[] = Breadcrumb::instance(item::root()->title, item::root()->url("show={$album->id}"))->set_first(); $expected[] = Breadcrumb::instance($album->title, $album->url("show={$item->id}")); $expected[] = Breadcrumb::instance($item->title, $item->url())->set_last(); $this->assert_equal($expected, Breadcrumb::array_from_item_parents($item)); }
static function get_display_context($item) { $where = array(array("type", "!=", "album")); $position = item::get_position($item, $where); if ($position > 1) { list($previous_item, $ignore, $next_item) = $item->parent()->viewable()->children(3, $position - 2, $where); } else { $previous_item = null; list($next_item) = $item->parent()->viewable()->children(1, $position, $where); } return array("position" => $position, "previous_item" => $previous_item, "next_item" => $next_item, "sibling_count" => $item->parent()->viewable()->children_count($where), "siblings_callback" => array("Albums_Controller::get_siblings", array($item)), "parents" => $item->parents()->as_array(), "breadcrumbs" => Breadcrumb::array_from_item_parents($item)); }