get_tag_list())); $page->add_html_header(""); $page->add_html_header(""); $page->add_html_header(""); $page->add_html_header("get_thumb_link())."\">"); $page->add_html_header("id}"))."\">"); } /* * Build a page showing $image and some info about it */ public function display_page(Image $image, $editor_parts): void { global $page; $page->set_title("Post {$image->id}: ".$image->get_tag_list()); $page->set_heading(html_escape($image->get_tag_list())); $page->add_block(new Block("Post {$image->id}", $this->build_navigation($image), "left", 0, "Navigationleft")); $page->add_block(new Block(null, $this->build_info($image, $editor_parts), "main", 20, "ImageInfo")); //$page->add_block(new Block(null, $this->build_pin($image), "main", 11)); $query = $this->get_query(); if(!$this->is_ordered_search()) { $page->add_html_header(""); $page->add_html_header(""); } } /** * @param HTMLElement[] $parts */ public function display_admin_block(Page $page, array $parts): void { if (count($parts) > 0) { $page->add_block(new Block("Post Controls", DIV(["class"=>"post_controls"], joinHTML("", $parts)), "left", 50)); } } protected function get_query(): ?string { if (isset($_GET['search'])) { $query = "search=".url_escape($_GET['search']); } else { $query = null; } return $query; } /** * prev/next only work for default-ordering searches - if the user * has specified a custom order, we can't show prev/next. */ protected function is_ordered_search(): bool { if(isset($_GET['search'])) { $tags = Tag::explode($_GET['search']); foreach($tags as $tag) { if(preg_match("/^order[=:]/", $tag) == 1) { return true; } } } return false; } protected function build_pin(Image $image): HTMLElement { $query = $this->get_query(); if($this->is_ordered_search()) { return A(["href" => make_link()], "Index"); } else { return joinHTML(" | ", [ A(["href" => make_link("post/prev/{$image->id}", $query), "id" => "prevlink"], "Prev"), A(["href" => make_link()], "Index"), A(["href" => make_link("post/next/{$image->id}", $query), "id" => "nextlink"], "Next"), ]); } } protected function build_navigation(Image $image): string { $h_pin = $this->build_pin($image); $h_search = "
"; return "$h_pin