diff options
author | Evgeny Zinoviev <me@ch1p.io> | 2024-01-31 06:11:00 +0300 |
---|---|---|
committer | Evgeny Zinoviev <me@ch1p.io> | 2024-01-31 20:45:40 +0300 |
commit | c0dc531ebefd8912819f3b6c8bda1fed3c7e750c (patch) | |
tree | 2c75aa9df182260aef09faf4befd81a4c2b9c5e2 /handler/Auto.php | |
parent | 48d688cdf7f9eae1bf11b8a6f0e5b98687c604cb (diff) |
make it simple, but not simpler
Diffstat (limited to 'handler/Auto.php')
-rw-r--r-- | handler/Auto.php | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/handler/Auto.php b/handler/Auto.php deleted file mode 100644 index 0656c44..0000000 --- a/handler/Auto.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php - -namespace handler; - -use admin; -use NotFoundException; -use pages; -use Post; -use posts; -use RedirectResponse; -use RequestHandler; -use Response; -use Tag; - -class Auto extends RequestHandler { - - public function get(): Response { - list($name) = $this->input('name'); - if ($name == 'coreboot-mba51-flashing') - return new RedirectResponse('/coreboot-mba52-flashing/', 301); - - if (is_numeric($name)) { - $post = posts::get((int)$name); - } else { - $post = posts::getPostByName($name); - } - if ($post) - return $this->getPost($post); - - $tag = posts::getTag($name); - if ($tag) - return $this->getTag($tag); - - $page = pages::getPageByName($name); - if ($page) - return $this->getPage($page); - - if (admin::isAdmin()) { - $this->skin->title = $name; - return $this->skin->renderPage('admin/pageNew', - short_name: $name); - } - - throw new NotFoundException(); - } - - public function getPost(Post $post): Response { - global $config; - - if (!$post->visible && !admin::isAdmin()) - throw new NotFoundException(); - - $tags = $post->getTags(); - - $s = $this->skin; - $s->meta[] = ['property' => 'og:title', 'content' => $post->title]; - $s->meta[] = ['property' => 'og:url', 'content' => fullURL($post->getUrl())]; - if (($img = $post->getFirstImage()) !== null) - $s->meta[] = ['property' => 'og:image', 'content' => $img->getDirectUrl()]; - $s->meta[] = [ - 'name' => 'description', - 'property' => 'og:description', - 'content' => $post->getDescriptionPreview(155) - ]; - - $s->title = $post->title; - - if ($post->toc) - $s->setOptions(['wide' => true]); - - return $s->renderPage('main/post', - title: $post->title, - id: $post->id, - unsafe_html: $post->getHtml($this->isRetina(), \themes::getUserTheme()), - unsafe_toc_html: $post->getToc(), - date: $post->getFullDate(), - tags: $tags, - visible: $post->visible, - url: $post->getUrl(), - email: $config['admin_email'], - urlencoded_reply_subject: 'Re: '.$post->title); - } - - public function getTag(Tag $tag): Response { - $tag = posts::getTag($tag); - if (!admin::isAdmin() && !$tag->visiblePostsCount) - throw new NotFoundException(); - - $count = posts::getPostsCountByTagId($tag->id, admin::isAdmin()); - $posts = $count ? posts::getPostsByTagId($tag->id, admin::isAdmin()) : []; - - $this->skin->title = '#'.$tag->tag; - return $this->skin->renderPage('main/tag', - count: $count, - posts: $posts, - tag: $tag->tag); - } - - public function getPage(\Page $page): Response { - if (!admin::isAdmin() && !$page->visible) - throw new NotFoundException(); - - $this->skin->title = $page ? $page->title : '???'; - return $this->skin->renderPage('main/page', - unsafe_html: $page->getHtml($this->isRetina(), \themes::getUserTheme()), - page_url: $page->getUrl(), - short_name: $page->shortName); - } - -}
\ No newline at end of file |