parents() as $element) { $breadcrumbs[] = new Breadcrumb($element->title, $element->url(), $element->id); } if (!empty($breadcrumbs)) { $breadcrumbs[] = new Breadcrumb($item->title, $item->url(), $item->id); } return self::generate_show_query_strings($breadcrumbs); } /** * This static function takes a list (variable arguments) of Breadcrumbs and builds a dynamic * breadcrumb list. Used to create a breadcrumb for dynamic albums. Will really be useful * for the display context change. */ static function build_from_list() { return self::generate_show_query_strings(func_get_args()); } private static function generate_show_query_strings($breadcrumbs) { if (!empty($breadcrumbs)) { end($breadcrumbs)->last = true;; while ($breadcrumb = current($breadcrumbs)) { if (isset($last_id) && $last_id > 0) { $query = parse_url($breadcrumb->url, PHP_URL_QUERY); $breadcrumb->url = $breadcrumb->url . ($query ? "&" : "?") . "show={$last_id}"; } $last_id = $breadcrumb->id; $breadcrumb = prev($breadcrumbs); } $breadcrumbs[0]->first = true; } return $breadcrumbs; } public function __construct($title, $url, $id=0) { $this->title = $title; $this->url = $url; $this->id = $id; $this->first = false; $this->last = false; } }