From 00e625d679b3ca629a86b1e709030d28d9b283c6 Mon Sep 17 00:00:00 2001 From: butterbutt Date: Tue, 13 Oct 2020 08:20:13 -0500 Subject: [PATCH] add okebooru theme --- themes/okebooru/admin.theme.php | 11 + themes/okebooru/clip.woff2 | Bin 0 -> 22968 bytes themes/okebooru/comment.theme.php | 127 +++++ themes/okebooru/ext_manager.theme.php | 16 + themes/okebooru/favicon.ico | Bin 0 -> 76708 bytes themes/okebooru/index.theme.php | 53 +++ themes/okebooru/page.class.php | 166 +++++++ themes/okebooru/robots.txt | 27 ++ themes/okebooru/style.css | 648 ++++++++++++++++++++++++++ themes/okebooru/tag_list.theme.php | 10 + themes/okebooru/themelet.class.php | 66 +++ themes/okebooru/upload.theme.php | 16 + themes/okebooru/user.theme.php | 115 +++++ themes/okebooru/view.theme.php | 77 +++ 14 files changed, 1332 insertions(+) create mode 100644 themes/okebooru/admin.theme.php create mode 100644 themes/okebooru/clip.woff2 create mode 100644 themes/okebooru/comment.theme.php create mode 100644 themes/okebooru/ext_manager.theme.php create mode 100644 themes/okebooru/favicon.ico create mode 100644 themes/okebooru/index.theme.php create mode 100644 themes/okebooru/page.class.php create mode 100644 themes/okebooru/robots.txt create mode 100644 themes/okebooru/style.css create mode 100644 themes/okebooru/tag_list.theme.php create mode 100644 themes/okebooru/themelet.class.php create mode 100644 themes/okebooru/upload.theme.php create mode 100644 themes/okebooru/user.theme.php create mode 100644 themes/okebooru/view.theme.php diff --git a/themes/okebooru/admin.theme.php b/themes/okebooru/admin.theme.php new file mode 100644 index 00000000..dc446b38 --- /dev/null +++ b/themes/okebooru/admin.theme.php @@ -0,0 +1,11 @@ +disable_left(); + parent::display_page(); + } +} diff --git a/themes/okebooru/clip.woff2 b/themes/okebooru/clip.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..776345189558c0a18a180399346752b8ebe4f62f GIT binary patch literal 22968 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 P{5disable_left(); + + // parts for the whole page + $prev = $page_number - 1; + $next = $page_number + 1; + + $h_prev = ($page_number <= 1) ? "Prev" : + "Prev"; + $h_index = "Index"; + $h_next = ($page_number >= $total_pages) ? "Next" : + "Next"; + + $nav = "$h_prev | $h_index | $h_next"; + + $page->set_title("Comments"); + $page->set_heading("Comments"); + $page->add_block(new Block("Navigation", $nav, "left")); + $this->display_paginator($page, "comment/list", null, $page_number, $total_pages); + + // parts for each image + $position = 10; + + $comment_captcha = $config->get_bool('comment_captcha'); + $comment_limit = $config->get_int("comment_list_count", 10); + + foreach ($images as $pair) { + $image = $pair[0]; + $comments = $pair[1]; + + $thumb_html = $this->build_thumb_html($image); + + $s = "   "; + $un = $image->get_owner()->name; + $t = ""; + foreach ($image->get_tag_array() as $tag) { + $u_tag = url_escape($tag); + $t .= "".html_escape($tag)." "; + } + $p = autodate($image->posted); + + $r = Extension::is_enabled(RatingsInfo::KEY) ? "Rating ".Ratings::rating_to_human($image->rating) : ""; + $comment_html = "Date $p $s User $un $s $r
Tags $t

 "; + + $comment_count = count($comments); + if ($comment_limit > 0 && $comment_count > $comment_limit) { + //$hidden = $comment_count - $comment_limit; + $comment_html .= "

showing $comment_limit of $comment_count comments

"; + $comments = array_slice($comments, -$comment_limit); + } + foreach ($comments as $comment) { + $comment_html .= $this->comment_to_html($comment); + } + if ($can_post) { + if (!$user->is_anonymous()) { + $comment_html .= $this->build_postbox($image->id); + } else { + if (!$comment_captcha) { + $comment_html .= $this->build_postbox($image->id); + } else { + $comment_html .= "Add Comment"; + } + } + } + + $html = " + + + +
$thumb_html$comment_html
+ "; + + + $page->add_block(new Block(" ", $html, "main", $position++)); + } + } + + public function display_recent_comments(array $comments) + { + // no recent comments in this theme + } + + + protected function comment_to_html(Comment $comment, bool $trim=false): string + { + global $user; + + $tfe = new TextFormattingEvent($comment->comment); + send_event($tfe); + + //$i_uid = $comment->owner_id; + $h_name = html_escape($comment->owner_name); + //$h_poster_ip = html_escape($comment->poster_ip); + $h_comment = ($trim ? substr($tfe->stripped, 0, 50)."..." : $tfe->formatted); + $i_comment_id = $comment->comment_id; + $i_image_id = $comment->image_id; + $h_posted = autodate($comment->posted); + + $h_userlink = "$h_name"; + $h_del = ""; + if ($user->can(Permissions::DELETE_COMMENT)) { + $comment_preview = substr(html_unescape($tfe->stripped), 0, 50); + $j_delete_confirm_message = json_encode("Delete comment by {$comment->owner_name}:\n$comment_preview"); + $h_delete_script = html_escape("return confirm($j_delete_confirm_message);"); + $h_delete_link = make_link("comment/delete/$i_comment_id/$i_image_id"); + $h_del = " - Del"; + } + //$h_imagelink = $trim ? ">>>\n" : ""; + if ($trim) { + return "

$h_userlink $h_del
$h_posted
$h_comment

"; + } else { + return " + + + +
$h_userlink
$h_posted$h_del
$h_comment
+ "; + } + } +} diff --git a/themes/okebooru/ext_manager.theme.php b/themes/okebooru/ext_manager.theme.php new file mode 100644 index 00000000..4ca58ccc --- /dev/null +++ b/themes/okebooru/ext_manager.theme.php @@ -0,0 +1,16 @@ +disable_left(); + parent::display_table($page, $extensions, $editable); + } + + public function display_doc(Page $page, ExtensionInfo $info) + { + $page->disable_left(); + parent::display_doc($page, $info); + } +} diff --git a/themes/okebooru/favicon.ico b/themes/okebooru/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a5ffdcd90fadf2978c201566f58630078b88f48f GIT binary patch literal 76708 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 jM!ZW>PMv=Xj0l6 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 literal 0 HcmV?d00001 diff --git a/themes/okebooru/index.theme.php b/themes/okebooru/index.theme.php new file mode 100644 index 00000000..73a2da10 --- /dev/null +++ b/themes/okebooru/index.theme.php @@ -0,0 +1,53 @@ +display_shortwiki($page); + + $this->display_page_header($page, $images); + + $nav = $this->build_navigation($this->page_number, $this->total_pages, $this->search_terms); + $page->add_block(new Block("Search", $nav, "left", 0)); + + if (count($images) > 0) { + $this->display_page_images($page, $images); + } else { + $this->display_error(404, "No Images Found", "No images were found to match the search criteria"); + } + } + + /** + * #param string[] $search_terms + */ + protected function build_navigation(int $page_number, int $total_pages, array $search_terms): string + { + $h_search_string = count($search_terms) == 0 ? "" : html_escape(implode(" ", $search_terms)); + $h_search_link = make_link(); + return " +

+ + + +
+
"; + } + + /** + * #param Image[] $images + */ + protected function build_table(array $images, ?string $query): string + { + $h_query = html_escape($query); + $table = "
"; + foreach ($images as $image) { + $table .= "\t" . $this->build_thumb_html($image) . "\n"; + } + $table .= "
"; + return $table; + } +} diff --git a/themes/okebooru/page.class.php b/themes/okebooru/page.class.php new file mode 100644 index 00000000..ed911949 --- /dev/null +++ b/themes/okebooru/page.class.php @@ -0,0 +1,166 @@ +, updated by Daniel Oaks , modified for Okebooru by butterbutt + * Link: https://code.shishnet.org/shimmie2/ + * License: GPLv2 + * Description: This is the Danbooru 2 theme with some fun modifications + * specifically for Okebooru . + */ +//Small changes added by zshall +//Changed CSS and layout to make shimmie look even more like danbooru +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +Danbooru 2 Theme - Notes (Bzchan) + +Files: default.php, style.css + +How to use a theme +- Copy the danbooru2 folder with all its contained files into the "themes" + directory in your shimmie installation. +- Log into your shimmie and change the Theme in the Board Config to your + desired theme. + +Changes in this theme include +- Adding and editing various elements in the style.css file. +- $site_name and $front_name retreival from config added. +- $custom_link and $title_link preparation just before html is outputed. +- Altered outputed html to include the custom links and removed heading + from being displayed (subheading is still displayed) +- Note that only the sidebar has been left aligned. Could not properly + left align the main block because blocks without headers currently do + not have ids on there div elements. (this was a problem because + paginator block must be centered and everything else left aligned) + +Tips +- You can change custom links to point to whatever pages you want as well as adding + more custom links. +- The main title link points to the Front Page set in your Board Config options. +- The text of the main title is the Title set in your Board Config options. +- Themes make no changes to your database or main code files so you can switch + back and forward to other themes all you like. + +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +class Page extends BasePage +{ + public $left_enabled = true; + public function disable_left() + { + $this->left_enabled = false; + } + + public function render() + { + global $config; + + list($nav_links, $sub_links) = $this->get_nav_links(); + + $left_block_html = ""; + $user_block_html = ""; + $main_block_html = ""; + $sub_block_html = ""; + + foreach ($this->blocks as $block) { + switch ($block->section) { + case "left": + $left_block_html .= $block->get_html(true); + break; + case "user": + $user_block_html .= $block->body; // $this->block_to_html($block, true); + break; + case "subheading": + $sub_block_html .= $block->body; // $this->block_to_html($block, true); + break; + case "main": + if ($block->header == "Images") { + $block->header = " "; + } + $main_block_html .= $block->get_html(false); + break; + default: + print "

error: {$block->header} using an unknown section ({$block->section})"; + break; + } + } + + if (empty($this->subheading)) { + $subheading = ""; + } else { + $subheading = "

{$this->subheading}
"; + } + + $site_name = $config->get_string(SetupConfig::TITLE); // bzchan: change from normal default to get title for top of page + $main_page = $config->get_string(SetupConfig::MAIN_PAGE); // bzchan: change from normal default to get main page for top of page + + $custom_links = ""; + foreach ($nav_links as $nav_link) { + $custom_links .= "
  • ".$this->navlinks($nav_link->link, $nav_link->description, $nav_link->active)."
  • "; + } + + $custom_sublinks = ""; + if (!empty($sub_links)) { + $custom_sublinks = "
    "; + foreach ($sub_links as $nav_link) { + $custom_sublinks .= "
  • ".$this->navlinks($nav_link->link, $nav_link->description, $nav_link->active)."
  • "; + } + $custom_sublinks .= "
    "; + } + + // bzchan: failed attempt to add heading after title_link (failure was it looked bad) + //if($this->heading==$site_name)$this->heading = ''; + //$title_link = "

    $site_name/$this->heading

    "; + + // bzchan: prepare main title link + $title_link = "

    OKEBOORU

    "; + + if ($this->left_enabled) { + $left = ""; + $withleft = "withleft"; + } else { + $left = ""; + $withleft = "noleft"; + } + + $flash_html = $this->flash ? "".nl2br(html_escape(implode("\n", $this->flash)))."" : ""; + $head_html = $this->head_html(); + $footer_html = $this->footer_html(); + + print << + + $head_html + +
    + $title_link + + +
    + $subheading + $sub_block_html + $left +
    + $flash_html + $main_block_html +
    +
    $footer_html
    + + +EOD; + } + + public function navlinks(Link $link, string $desc, bool $active): ?string + { + $html = null; + if ($active) { + $html = "{$desc}"; + } else { + $html = "{$desc}"; + } + + return $html; + } +} diff --git a/themes/okebooru/robots.txt b/themes/okebooru/robots.txt new file mode 100644 index 00000000..bb3d05b6 --- /dev/null +++ b/themes/okebooru/robots.txt @@ -0,0 +1,27 @@ +User-agent: * +Allow: / +Disallow: /artist +Disallow: /artist_commentaries +Disallow: /comment +Disallow: /explore +Disallow: /forum +Disallow: /inline +Disallow: /forum_topics +Disallow: /note +Disallow: /pool +Disallow: /post +Disallow: /session +Disallow: /static +Disallow: /tag +Disallow: /tag_alias +Disallow: /tag_implication +Disallow: /uploads +Disallow: /user_upgrades +Disallow: /user +Disallow: /wiki +Disallow: /report +Disallow: /job_task +Disallow: /help +Disallow: /admin +Disallow: /dmail +Disallow: /batch diff --git a/themes/okebooru/style.css b/themes/okebooru/style.css new file mode 100644 index 00000000..a3dde054 --- /dev/null +++ b/themes/okebooru/style.css @@ -0,0 +1,648 @@ +span#left, span#right, span.flicker, span.fast-flicker { + font-family: clip, "Arial", sans-serif; + font-size: clamp(4rem, 1.428rem + 14.285vw, 6rem); +} + +span.small { + font-size: 2.5rem !important; +} + +span#left { + color: #ffe6ff; + text-shadow: 0 0 0.6rem #ffe6ff, 0 0 1.5rem #ff65bd, + -0.2rem 0.1rem 1rem #ff65bd, 0.2rem 0.1rem 1rem #ff65bd, + 0 -0.5rem 2rem #ff2483, 0 0.5rem 3rem #ff2483; + animation: shine-one 2s forwards, flicker 3s infinite; +} + +span#right { + color: #b2f3f2; + text-shadow: 0 0 0.6rem #b2f3f2, 0 0 1.5rem #75f1f1, + -0.2rem 0.1rem 1rem #75f1f1, 0.2rem 0.1rem 1rem #75f1f1, + 0 -0.5rem 2rem #1cf3f1, 0 0.5rem 3rem #1cf3f1; + animation: shine-two 2s forwards, flicker 6s infinite; +} + +h1 a:hover { + text-decoration: none; +} + +h1#site-title span { + padding: 1em 0 0 0; + text-align: left; + margin: 0; + color: #ffffff; + text-shadow: 0 0 0.6rem #ffffff, 0 0 1.5rem #ffffff, + -0.2rem 0.1rem 1rem #ffffff, 0.2rem 0.1rem 1rem #ffffff, + 0 -0.5rem 2rem #e6e6e6, 0 0.5rem 3rem #e6e6e6; +} + +h1#site-title span a { + color: #e1c6ff; + text-shadow: 0 0 0.6rem #bf86ff, 0 0 1.5rem #bf86ff, + -0.2rem 0.1rem 1rem #bf86ff, 0.2rem 0.1rem 1rem #8737e2, + 0 -0.5rem 2rem #8737e2, 0 0.5rem 3rem #8737e2; +} + +h1#site-title span a:active { + color: #faf5ff; + text-decoration: none; +} + +.flicker { + animation: shine-two 2s forwards, blink-two 10s 1s infinite; +} + +.fast-flicker { + animation: shine-one 2s forwards, blink-one 3s 2s infinite; +} +@keyframes shine-one { + 0% { + color: #6b1839; + text-shadow: none; + } + 100% { + color: #ffe6ff; + text-shadow: 0 0 0.6rem #ffe6ff, 0 0 1.5rem #ff65bd, + -0.2rem 0.1rem 1rem #ff65bd, 0.2rem 0.1rem 1rem #ff65bd, + 0 -0.5rem 2rem #ff2483, 0 0.5rem 3rem #ff2483; + } +} + +@keyframes shine-two { + 0% { + color: #178685; + text-shadow: none; + } + 100% { + color: #b2f3f2; + text-shadow: 0 0 0.6rem #b2f3f2, 0 0 1.5rem #75f1f1, + -0.2rem 0.1rem 1rem #75f1f1, 0.2rem 0.1rem 1rem #75f1f1, + 0 -0.5rem 2rem #1cf3f1, 0 0.5rem 3rem #1cf3f1; + } +} + +@keyframes blink-one { + 0%, + 22%, + 36%, + 75% { + color: #ffe6ff; + text-shadow: 0 0 0.6rem #ffe6ff, 0 0 1.5rem #ff65bd, + -0.2rem 0.1rem 1rem #ff65bd, 0.2rem 0.1rem 1rem #ff65bd, + 0 -0.5rem 2rem #ff2483, 0 0.5rem 3rem #ff2483; + } + 28%, + 33% { + color: #ff65bd; + text-shadow: none; + } + 82%, + 97% { + color: #ff2483; + text-shadow: none; + } +} + +@keyframes blink-two { + 0%, + 22%, + 36%, + 75% { + color: #ddfefd; + text-shadow: 0 0 0.6rem #b2f3f2, 0 0 1.5rem #75f1f1, + -0.2rem 0.1rem 1rem #75f1f1, 0.2rem 0.1rem 1rem #75f1f1, + 0 -0.5rem 2rem #1cf3f1, 0 0.5rem 3rem #1cf3f1; + } + 28%, + 33% { + color: #75f1f1; + text-shadow: 0 0 0.6rem #b2f3f2, 0 0 1.5rem #75f1f1; + } + 82%, + 97% { + color: #178685; + text-shadow: none; + } +} + +@keyframes flicker { + from { + opacity: 1; + } + + 4% { + opacity: 0.9; + } + + 6% { + opacity: 0.85; + } + + 8% { + opacity: 0.95; + } + + 10% { + opacity: 0.9; + } + + 11% { + opacity: 0.922; + } + + 12% { + opacity: 0.9; + } + + 14% { + opacity: 0.95; + } + + 16% { + opacity: 0.98; + } + + 17% { + opacity: 0.9; + } + + 19% { + opacity: 0.93; + } + + 20% { + opacity: 0.99; + } + + 24% { + opacity: 1; + } + + 26% { + opacity: 0.94; + } + + 28% { + opacity: 0.98; + } + + 37% { + opacity: 0.93; + } + + 38% { + opacity: 0.5; + } + + 39% { + opacity: 0.96; + } + + 42% { + opacity: 1; + } + + 44% { + opacity: 0.97; + } + + 46% { + opacity: 0.94; + } + + 56% { + opacity: 0.9; + } + + 58% { + opacity: 0.9; + } + + 60% { + opacity: 0.99; + } + + 68% { + opacity: 1; + } + + 70% { + opacity: 0.9; + } + + 72% { + opacity: 0.95; + } + + 93% { + opacity: 0.93; + } + + 95% { + opacity: 0.95; + } + + 97% { + opacity: 0.93; + } + + to { + opacity: 1; + } +} +/*TODO: text input background colors*/ +/*.autocomplete_tags { + background-color: #fff8dc; +}*/ + +ul.ui-autocomplete { + background: #383838; + border: solid 2px #ff6499; + border-radius: 4px; +} + +ul.ui-autocomplete, ul.ui-autocomplete > li { + max-width: 60ch; + line-height: 1.5; + padding-left: 5px; +} + +ul.ui-autocomplete > li:nth-child(odd) { + background: #000000; +} + +ul.ui-autocomplete > li:nth-child(even) { + background: #383838; +} + +.noleft{ +padding-left:2rem; +} +HEADER { +margin-bottom:0.9rem; +} +HEADER #site-title { +padding:0.6rem 2rem 0.25rem; +} +HEADER ul#navbar, HEADER ul#subnavbar { +font-family:Verdana,Helvetica,sans-serif; +font-size:110%; +} +HEADER ul#navbar { +margin:0; +padding:0 1rem 0 2rem; +} +HEADER ul#navbar li { +margin:0; +} +HEADER ul#navbar li a { +display:inline-block; +margin:0 0.15rem; +padding:0.4rem 0.6rem; +} +HEADER ul#navbar li:first-child a { +margin-left: -0.6rem; +color: #FF3333; +font-weight: bold; +} +HEADER ul#navbar li a.current-page { +background-color:#383838; +border-radius:0.2rem 0.2rem 0 0; +font-weight:bold; +} +HEADER ul#subnavbar { +margin:0 0 0.5rem; +padding:0 1rem 0 2rem; +background-color:#383838; +} +HEADER ul#subnavbar li { +display:inline-block; +margin:0 0.15rem; +padding:0.4rem 0.6rem; +} +HEADER ul#subnavbar li:first-child { +margin-left: -0.6rem; +} +body { +background-color:#000000; +color:#FFFFFF; +font-weight:normal; +font-style:normal; +font-variant:normal; +font-size-adjust:none; +font-stretch:normal; +font-size:80%; +line-height:normal; +-x-system-font:none; +} +h1 { +margin-top:0; +margin-bottom:0; +padding:0.3rem; +font-size:2.2rem; +} +h1 a { +color:black; +} +h3 { +margin-top:0; +margin-bottom:0; +padding:0.2rem 0.2rem 0.2rem 0; +font-size:1rem; +} +h4 { +font-size:1.4rem; +} +h5 { +font-size:1.2rem; +} +table.zebra {border-spacing: 0;border-collapse: collapse;} +table.zebra > tbody > tr:hover {background: #383838;} +table.zebra th { padding-right: 0.4rem;color: #171BB3;} +table.zebra td {margin: 0;padding-right: 0.6rem;border: 1px dotted #EEE;} +table.zebra th {margin: 0;text-align: left;} +thead { +font-weight:bold; +-moz-background-clip:border; +-moz-background-inline-policy:continuous; +-moz-background-origin:padding; +} +td { +vertical-align:top; +} +#subtitle { +margin:auto; +width:256px; +border-top:medium none; +text-align:center; +font-size:0.75em; +} +#short-wiki-description { +padding:0 2em; +font-size:1.2em; +} +#short-wiki-description h2 { +padding-bottom:0.2em; +} +FOOTER { +clear:both; +border-top:solid 1px #E7E7F7; +margin-top:1rem; +text-align:center; +color:#555555; +font-size:0.8rem; +} +FOOTER > DIV { +margin: 1rem 2rem; +} +form { +margin:0; +} +a { +text-decoration:none; +} +a:hover { +text-decoration:underline; +} +NAV { +float:left; +padding:0 1rem 0.2rem 2rem; +width:11.5rem; +text-align:left; +} +NAV section + section { +margin-top:1rem; +} +NAV table { +width:15rem; +} +NAV td { +vertical-align:middle; +} +NAV input { +padding:0; +width:100%; +} +NAV select { +padding:0; +width:100%; +} +NAV h3 { +text-align:left; +} +#comments p { +overflow:hidden; +max-width:150px; +width:15rem; +text-align:left; +} +TABLE.tag_list { + width: auto; + border-collapse: collapse; +} +TABLE.tag_list>THEAD { + display: none; +} +TABLE.tag_list>TBODY>TR>TD { + display: inline; + padding: 0; + line-height: 1em; +} +TABLE.tag_list>TBODY>TR>TD:after { + content: " "; +} +.tag_count { +display:inline-block; +margin-left:0.4rem; +color:#AAAAAA; +} +.more { +content:"More â"; +} +.comment { +margin-bottom:8px; +} +.comment .meta { +width: 15rem; +color: gray; +} +.comment TD { +text-align: left; +} +.withleft { +margin-left:14.5rem; +} +div#paginator { +display:block; +clear:both; +padding:2em 0 1em; +text-align:center; +font-weight:bold; +font-size:1em; +} +.paginator { +margin:16px; +text-align:center; +} +div#paginator b { +margin:3px; +padding:4px 8px; +} +div#paginator a { +margin:3px; +padding:4px 8px; +border:1px solid #EEEEEE; +} +div#paginator a:hover { +border:1px solid #EEEEEE; +background:blue none repeat scroll 0 0; +color:white; +-moz-background-clip:border; +-moz-background-inline-policy:continuous; +-moz-background-origin:padding; +} +span.thumb { +display:inline-block; +float:left; +width:220px; +height:220px; +text-align:center; +} +#pagelist { +margin-top:32px; +} +#large_upload_form { +width:600px; +} +.setupblock, .tagcategoryblock { +margin:0.6rem 1rem 0.6rem 0; +padding:0.5rem 0.6rem 0.7rem; +width:18rem; +border:1px solid #AAAAAA; +border-radius:0.25rem; +display:inline-block; +} +.tagcategoryblock table { +width:100%; +border-spacing:0; +} +.tagcategoryblock input, .tagcategoryblock span { +width:100%; +height:100%; +} +.tagcategoryblock td:first-child { +padding:0.3rem 0.7rem 0.4rem 0; +text-align:right; +width:40%; +} +.tagcategoryblock td:last-child { +width:60%; +} +.tagcategoryblock td:last-child span { +padding:0.24rem 0.7rem 0.5rem 0; +display:block; +} +.tagcategoryblock button { +width:100%; +margin-top:0.4rem; +padding:0.2rem 0.6rem; +} +.helpable { +border-bottom:1px dashed gray; +} +.ok { +background:#AAFFAA none repeat scroll 0 0; +-moz-background-clip:border; +-moz-background-inline-policy:continuous; +-moz-background-origin:padding; +} +.bad { +background:#FFAAAA none repeat scroll 0 0; +-moz-background-clip:border; +-moz-background-inline-policy:continuous; +-moz-background-origin:padding; +} +.comment .username { +font-weight:bold; +font-size:1.5em; +} +HEADER { +text-align:left; +} +HEADER h1 { +text-align:left; +} +* { +margin:0; +padding:0; +font-family:Tahoma,Verdana,Helvetica,sans-serif; +} +a:link { +color:#5becff; +text-decoration:none; +} +a:visited { +color:#ff6499; +text-decoration:none; +} +a:hover { +color:#ff6499; +text-decoration:underline; +} +a:active { +color:#ff6499; +text-decoration:none; +} +ul.flat-list { +display:block; +margin:0; +padding:0; +} +ul.flat-list * { +display:inline; +text-align:left; +} +ul.flat-list li { +margin:0 1.3em 0 0; +list-style-type:none; +text-align:left; +font-weight:bold; +} +ul.flat-list li a { +font-weight:normal; +} +#tips { +margin-left:16px; +} +#blotter1 { +position: relative; +margin-right:16px; +margin-left:16px; +font-size: 90%; +} +#blotter2 { +margin-right:16px; +margin-left:16px; +font-size: 90%; +} +#flash { +background:#383838; +border:1px solid #e06d7f; +margin:1rem 0; +padding:1rem; +text-align:center; +border-radius:0.5rem; +} +ARTICLE { +margin-right:1rem; +} +ARTICLE section + section { +margin-top:1rem; +} +form + form { +margin-top:0.5rem; +} +#Imagemain h3 { +display:none; +} diff --git a/themes/okebooru/tag_list.theme.php b/themes/okebooru/tag_list.theme.php new file mode 100644 index 00000000..31e174b8 --- /dev/null +++ b/themes/okebooru/tag_list.theme.php @@ -0,0 +1,10 @@ +disable_left(); + parent::display_page($page); + } +} diff --git a/themes/okebooru/themelet.class.php b/themes/okebooru/themelet.class.php new file mode 100644 index 00000000..927d0c87 --- /dev/null +++ b/themes/okebooru/themelet.class.php @@ -0,0 +1,66 @@ +build_paginator($page_number, $total_pages, $base, $query); + $page->add_block(new Block(null, $body, "main", 90)); + } + + private function gen_page_link(string $base_url, ?string $query, int $page, string $name): string + { + $link = make_link("$base_url/$page", $query); + return "$name"; + } + + private function gen_page_link_block(string $base_url, ?string $query, int $page, int $current_page, string $name): string + { + $paginator = ""; + if ($page == $current_page) { + $paginator .= "$page"; + } else { + $paginator .= $this->gen_page_link($base_url, $query, $page, $name); + } + return $paginator; + } + + private function build_paginator(int $current_page, int $total_pages, string $base_url, ?string $query): string + { + $next = $current_page + 1; + $prev = $current_page - 1; + + $at_start = ($current_page <= 3 || $total_pages <= 3); + $at_end = ($current_page >= $total_pages -2); + + $first_html = $at_start ? "" : $this->gen_page_link($base_url, $query, 1, "1"); + $prev_html = $at_start ? "" : $this->gen_page_link($base_url, $query, $prev, "<<"); + $next_html = $at_end ? "" : $this->gen_page_link($base_url, $query, $next, ">>"); + $last_html = $at_end ? "" : $this->gen_page_link($base_url, $query, $total_pages, "$total_pages"); + + $start = $current_page-2 > 1 ? $current_page-2 : 1; + $end = $current_page+2 <= $total_pages ? $current_page+2 : $total_pages; + + $pages = []; + foreach (range($start, $end) as $i) { + $pages[] = $this->gen_page_link_block($base_url, $query, $i, $current_page, (string)$i); + } + $pages_html = implode(" ", $pages); + + if (strlen($first_html) > 0) { + $pdots = "..."; + } else { + $pdots = ""; + } + + if (strlen($last_html) > 0) { + $ndots = "..."; + } else { + $ndots = ""; + } + + return "
    $prev_html $first_html $pdots $pages_html $ndots $last_html $next_html
    "; + } +} diff --git a/themes/okebooru/upload.theme.php b/themes/okebooru/upload.theme.php new file mode 100644 index 00000000..31ce245e --- /dev/null +++ b/themes/okebooru/upload.theme.php @@ -0,0 +1,16 @@ +add_block(new Block("Upload", $this->build_upload_block(), "left", 20)); + } + + public function display_page(Page $page) + { + $page->disable_left(); + parent::display_page($page); + } +} diff --git a/themes/okebooru/user.theme.php b/themes/okebooru/user.theme.php new file mode 100644 index 00000000..406dd73e --- /dev/null +++ b/themes/okebooru/user.theme.php @@ -0,0 +1,115 @@ +set_title("Login"); + $page->set_heading("Login"); + $page->disable_left(); + $html = " +
    + + + + + + + + + + +
    +
    + "; + if ($config->get_bool("login_signup_enabled")) { + $html .= "Create Account"; + } + $page->add_block(new Block("Login", $html, "main", 90)); + } + + public function display_user_links(Page $page, User $user, $parts) + { + // no block in this theme + } + public function display_login_block(Page $page) + { + // no block in this theme + } + + public function display_user_block(Page $page, User $user, $parts) + { + $html = ""; + $blocked = ["Pools", "Pool Changes", "Alias Editor", "My Profile"]; + foreach ($parts as $part) { + if (in_array($part["name"], $blocked)) { + continue; + } + $html .= "
  • {$part["name"]}"; + } + $b = new Block("User Links", $html, "user", 90); + $b->is_content = false; + $page->add_block($b); + } + + public function display_signup_page(Page $page) + { + global $config; + $tac = $config->get_string("login_tac", ""); + + $tfe = new TextFormattingEvent($tac); + send_event($tfe); + $tac = $tfe->formatted; + + $reca = "".captcha_get_html().""; + + if (empty($tac)) { + $html = ""; + } else { + $html = "

    $tac

    "; + } + + $html .= " +
    + + + + + + $reca; + +
    Name
    Password
    Repeat Password
    Email (Optional)
    +
    + "; + + $page->set_title("Create Account"); + $page->set_heading("Create Account"); + $page->disable_left(); + $page->add_block(new Block("Signup", $html)); + } + + public function display_ip_list(Page $page, array $uploads, array $comments, array $events) + { + $html = ""; + $html .= ""; + $html .= "
    Uploaded from: "; + foreach ($uploads as $ip => $count) { + $html .= "
    $ip ($count)"; + } + $html .= "
    Commented from:"; + foreach ($comments as $ip => $count) { + $html .= "
    $ip ($count)"; + } + $html .= "
    (Most recent at top)
    "; + + $page->add_block(new Block("IPs", $html)); + } + + public function display_user_page(User $duser, $stats) + { + global $page; + $page->disable_left(); + parent::display_user_page($duser, $stats); + } +} diff --git a/themes/okebooru/view.theme.php b/themes/okebooru/view.theme.php new file mode 100644 index 00000000..421fece6 --- /dev/null +++ b/themes/okebooru/view.theme.php @@ -0,0 +1,77 @@ +set_heading(html_escape($image->get_tag_list())); + $page->add_block(new Block("Search", $this->build_navigation($image), "left", 0)); + $page->add_block(new Block("Information", $this->build_information($image), "left", 15)); + $page->add_block(new Block(null, $this->build_info($image, $editor_parts), "main", 15)); + } + + private function build_information(Image $image): string + { + $h_owner = html_escape($image->get_owner()->name); + $h_ownerlink = "$h_owner"; + $h_ip = html_escape($image->owner_ip); + $h_type = html_escape($image->get_mime()); + $h_date = autodate($image->posted); + $h_filesize = to_shorthand_int($image->filesize); + + global $user; + if ($user->can(Permissions::VIEW_IP)) { + $h_ownerlink .= " ($h_ip)"; + } + + $html = " + ID: {$image->id} +
    Uploader: $h_ownerlink +
    Date: $h_date +
    Size: $h_filesize ({$image->width}x{$image->height}) +
    Type: $h_type + "; + + if ($image->length!=null) { + $h_length = format_milliseconds($image->length); + $html .= "
    Length: $h_length"; + } + + + if (!is_null($image->source)) { + $h_source = html_escape($image->source); + if (substr($image->source, 0, 7) != "http://" && substr($image->source, 0, 8) != "https://") { + $h_source = "http://" . $h_source; + } + $html .= "
    Source: link"; + } + + if (Extension::is_enabled(RatingsInfo::KEY)) { + if ($image->rating == null || $image->rating == "?") { + $image->rating = "?"; + } + if (Extension::is_enabled(RatingsInfo::KEY)) { + $h_rating = Ratings::rating_to_human($image->rating); + $html .= "
    Rating: $h_rating"; + } + } + + return $html; + } + + protected function build_navigation(Image $image): string + { + //$h_pin = $this->build_pin($image); + $h_search = " +
    + + + + +
    + "; + + return "$h_search"; + } +}