blog_title() . $tagline, 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'noposts', 'is_front' => is_front(true), )); die; } render('main', array( 'title' => blog_title() . $tagline, 'description' => blog_description(), 'canonical' => site_url(), 'page' => $page, 'posts' => $posts, 'bodyclass' => 'infront', 'breadcrumb' => '', 'pagination' => has_pagination($total, $perpage, $page), 'is_front' => is_front(true), )); }); // Get submitted login data post('/login', function () { $proper = (is_csrf_proper(from($_REQUEST, 'csrf_token'))); $captcha = isCaptcha(from($_REQUEST, 'g-recaptcha-response')); $user = from($_REQUEST, 'user'); $pass = from($_REQUEST, 'password'); if ($proper && $captcha && !empty($user) && !empty($pass)) { session($user, $pass); $log = session($user, $pass); if (!empty($log)) { config('views.root', 'system/admin/views'); render('login', array( 'title' => 'Login - ' . blog_title(), 'description' => 'Login page on ' . blog_title(), 'canonical' => site_url(), 'error' => '', 'bodyclass' => 'editprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Login' )); } } else { $message['error'] = ''; if (empty($user)) { $message['error'] .= '
  • User field is required.
  • '; } if (empty($pass)) { $message['error'] .= '
  • Password field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } if (!$captcha) { $message['error'] .= '
  • reCaptcha not correct.
  • '; } config('views.root', 'system/admin/views'); render('login', array( 'title' => 'Login - ' . blog_title(), 'description' => 'Login page on ' . blog_title(), 'canonical' => site_url(), 'error' => '', 'username' => $user, 'password' => $pass, 'bodyclass' => 'editprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Login' )); } }); // Show the author page get('/author/:name', function ($name) { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('profile.perpage'); $posts = get_profile_posts($name, $page, $perpage); $total = get_count($name, 'dirname'); $author = get_author($name); if (isset($author[0])) { $author = $author[0]; } else { $author = default_profile($name); } if (empty($posts) || $page < 1) { render('profile', array( 'title' => 'Profile for: ' . $author->name . ' - ' . blog_title(), 'description' => 'Profile page and all posts by ' . $author->name . ' on ' . blog_title() . '.', 'canonical' => site_url() . 'author/' . $name, 'page' => $page, 'posts' => null, 'about' => $author->about, 'name' => $author->name, 'bodyclass' => 'inprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $author->name, 'pagination' => has_pagination($total, $perpage, $page) )); die; } render('profile', array( 'title' => 'Profile for: ' . $author->name . ' - ' . blog_title(), 'description' => 'Profile page and all posts by ' . $author->name . ' on ' . blog_title() . '.', 'canonical' => site_url() . 'author/' . $name, 'page' => $page, 'posts' => $posts, 'about' => $author->about, 'name' => $author->name, 'bodyclass' => 'inprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $author->name, 'pagination' => has_pagination($total, $perpage, $page), 'is_profile' => is_profile(true), )); }); // Edit the profile get('/edit/profile', function () { if (login()) { config('views.root', 'system/admin/views'); render('edit-profile', array( 'title' => 'Edit profile - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'editprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit profile', )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get submitted data from edit profile page post('/edit/profile', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $user = $_SESSION[config("site.url")]['user']; $title = from($_REQUEST, 'title'); $content = from($_REQUEST, 'content'); if ($proper && !empty($title) && !empty($content)) { edit_profile($title, $content, $user); } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('edit-profile', array( 'title' => 'Edit profile - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postContent' => $content, 'bodyclass' => 'editprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit profile' )); } }); // Show the "Add post" page get('/add/post', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-post', array( 'title' => 'Add post - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addpost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add post' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted add post data post('/add/post', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); $user = $_SESSION[config("site.url")]['user']; $draft = from($_REQUEST, 'draft'); $category = from($_REQUEST, 'category'); if ($proper && !empty($title) && !empty($tag) && !empty($content)) { if (!empty($url)) { add_post($title, $tag, $url, $content, $user, $description, $draft, $category); } else { $url = $title; add_post($title, $tag, $url, $content, $user, $description, $draft, $category); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-post', array( 'title' => 'Add post- ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addpost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add post' )); } }); // Show the "Add image" page get('/add/image', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-image', array( 'title' => 'Add image - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addimage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add image' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted add image data post('/add/image', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $image = from($_REQUEST, 'image'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); $user = $_SESSION[config("site.url")]['user']; $draft = from($_REQUEST, 'draft'); $category = from($_REQUEST, 'category'); if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($image)) { if (!empty($url)) { add_image($title, $tag, $url, $content, $user, $description, $image, $draft, $category); } else { $url = $title; add_image($title, $tag, $url, $content, $user, $description, $image, $draft, $category); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (empty($image)) { $message['error'] .= '
  • Image field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-image', array( 'title' => 'Add image - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postImage' => $image, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addpost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add image' )); } }); // Show the "Add video" page get('/add/video', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-video', array( 'title' => 'Add video - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addvideo', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add video' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted add video data post('/add/video', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $video = from($_REQUEST, 'video'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); $user = $_SESSION[config("site.url")]['user']; $draft = from($_REQUEST, 'draft'); $category = from($_REQUEST, 'category'); if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($video)) { if (!empty($url)) { add_video($title, $tag, $url, $content, $user, $description, $video, $draft, $category); } else { $url = $title; add_video($title, $tag, $url, $content, $user, $description, $video, $draft, $category); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (empty($video)) { $message['error'] .= '
  • Video field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-video', array( 'title' => 'Add video - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postVideo' => $video, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addvideo', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add video' )); } }); // Show the "Add link" page get('/add/link', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-link', array( 'title' => 'Add link - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addlink', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add link' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted add link data post('/add/link', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $link = from($_REQUEST, 'link'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); $user = $_SESSION[config("site.url")]['user']; $draft = from($_REQUEST, 'draft'); if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($link)) { if (!empty($url)) { add_link($title, $tag, $url, $content, $user, $description, $link, $draft, $category); } else { $url = $title; add_link($title, $tag, $url, $content, $user, $description, $link, $draft, $category); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (empty($link)) { $message['error'] .= '
  • Link field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-link', array( 'title' => 'Add link - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postLink' => $link, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addlink', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add link' )); } }); // Show the "Add quote" page get('/add/quote', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-quote', array( 'title' => 'Add quote - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addquote', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add quote' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted add quote data post('/add/quote', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $quote = from($_REQUEST, 'quote'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); $user = $_SESSION[config("site.url")]['user']; $draft = from($_REQUEST, 'draft'); $category = from($_REQUEST, 'category'); if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($quote)) { if (!empty($url)) { add_quote($title, $tag, $url, $content, $user, $description, $quote, $draft, $category); } else { $url = $title; add_quote($title, $tag, $url, $content, $user, $description, $quote, $draft, $category); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (empty($quote)) { $message['error'] .= '
  • Quote field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-quote', array( 'title' => 'Add quote - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postQuote' => $quote, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addquote', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add Quote' )); } }); // Show the "Add audio" page get('/add/audio', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-audio', array( 'title' => 'Add audio - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addaudio', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add audio' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted add quote data post('/add/audio', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $audio = from($_REQUEST, 'audio'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); $user = $_SESSION[config("site.url")]['user']; $draft = from($_REQUEST, 'draft'); $category = from($_REQUEST, 'category'); if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($audio)) { if (!empty($url)) { add_audio($title, $tag, $url, $content, $user, $description, $audio, $draft, $category); } else { $url = $title; add_audio($title, $tag, $url, $content, $user, $description, $audio, $draft, $category); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (empty($audio)) { $message['error'] .= '
  • Audio field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-audio', array( 'title' => 'Add audio - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postAudio' => $audio, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addaudio', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add audio' )); } }); // Show the static add page get('/add/page', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-page', array( 'title' => 'Add page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add page' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted static add page data post('/add/page', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); if ($proper && !empty($title) && !empty($content) && login()) { if (!empty($url)) { add_page($title, $url, $content, $description); } else { $url = $title; add_page($title, $url, $content, $description); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-page', array( 'title' => 'Add page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add page' )); } }); // Show the add category get('/add/category', function () { if (login()) { config('views.root', 'system/admin/views'); render('add-category', array( 'title' => 'Add page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add page' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted add category post('/add/category', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); if ($proper && !empty($title) && !empty($content) && login()) { if (!empty($url)) { add_category($title, $url, $content, $description); } else { $url = $title; add_category($title, $url, $content, $description); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-category', array( 'title' => 'Add page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add page' )); } }); // Show admin/posts get('/admin/posts', function () { $user = $_SESSION[config("site.url")]['user']; $role = user('role', $user); if (login()) { config('views.root', 'system/admin/views'); if ($role === 'admin') { config('views.root', 'system/admin/views'); $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = 20; $posts = get_posts(null, $page, $perpage); $total = ''; if (empty($posts) || $page < 1) { // a non-existing page render('no-posts', array( 'title' => 'All blog posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'noposts', )); die; } $tl = blog_tagline(); if ($tl) { $tagline = ' - ' . $tl; } else { $tagline = ''; } render('posts-list', array( 'title' => 'All blog posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'heading' => 'All blog posts', 'page' => $page, 'posts' => $posts, 'bodyclass' => 'all-posts', 'breadcrumb' => '', 'pagination' => has_pagination($total, $perpage, $page) )); } else { render('denied', array( 'title' => 'All blog posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'denied', 'breadcrumb' => '', )); } } else { $login = site_url() . 'login'; header("location: $login"); } }); // Show admin/popular get('/admin/popular', function () { $user = $_SESSION[config("site.url")]['user']; $role = user('role', $user); if (login()) { config('views.root', 'system/admin/views'); if ($role === 'admin') { config('views.root', 'system/admin/views'); $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = 20; $posts = popular_posts(true,$perpage); $total = ''; if (empty($posts) || $page < 1) { // a non-existing page render('no-posts', array( 'title' => 'Popular posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'noposts', )); die; } $tl = blog_tagline(); if ($tl) { $tagline = ' - ' . $tl; } else { $tagline = ''; } render('popular-posts', array( 'title' => 'Popular posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'heading' => 'Popular posts', 'page' => $page, 'posts' => $posts, 'bodyclass' => 'popular-posts', 'breadcrumb' => '', 'pagination' => has_pagination($total, $perpage, $page) )); } else { render('denied', array( 'title' => 'Popular posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'denied', 'breadcrumb' => '', )); } } else { $login = site_url() . 'login'; header("location: $login"); } }); // Show admin/mine get('/admin/mine', function () { if (login()) { config('views.root', 'system/admin/views'); $name = $_SESSION[config("site.url")]['user']; $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('profile.perpage'); $posts = get_profile_posts($name, $page, $perpage); $total = get_count($name, 'dirname'); $author = get_author($name); if (isset($author[0])) { $author = $author[0]; } else { $author = default_profile($name); } if (empty($posts) || $page < 1) { render('user-posts', array( 'title' => 'My blog posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'page' => $page, 'heading' => 'My posts', 'posts' => null, 'about' => $author->about, 'name' => $author->name, 'bodyclass' => 'userposts', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $author->name, 'pagination' => has_pagination($total, $perpage, $page) )); die; } render('user-posts', array( 'title' => 'My blog posts - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'heading' => 'My posts', 'page' => $page, 'posts' => $posts, 'about' => $author->about, 'name' => $author->name, 'bodyclass' => 'userposts', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $author->name, 'pagination' => has_pagination($total, $perpage, $page) )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Show admin/draft get('/admin/draft', function () { if (login()) { config('views.root', 'system/admin/views'); $name = $_SESSION[config("site.url")]['user']; $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('profile.perpage'); $posts = get_draft($name, $page, $perpage); $total = get_count($name, 'dirname'); $author = get_author($name); if (isset($author[0])) { $author = $author[0]; } else { $author = default_profile($name); } if (empty($posts) || $page < 1) { render('user-draft', array( 'title' => 'My draft - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'page' => $page, 'heading' => 'My draft', 'posts' => null, 'about' => $author->about, 'name' => $author->name, 'bodyclass' => 'userdraft', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Draft for: ' . $author->name, )); die; } render('user-draft', array( 'title' => 'My draft - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'heading' => 'My draft', 'page' => $page, 'posts' => $posts, 'about' => $author->about, 'name' => $author->name, 'bodyclass' => 'userdraft', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Draft for: ' . $author->name, )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Show admin/content get('/admin/content', function () { if (login()) { config('views.root', 'system/admin/views'); render('content-type', array( 'title' => 'Add content - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'contenttype', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add content' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Show import page get('/admin/import', function () { if (login()) { config('views.root', 'system/admin/views'); render('import', array( 'title' => 'Import feed - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'importfeed', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Import feed' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Submitted import page data post('/admin/import', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $url = from($_REQUEST, 'url'); $credit = from($_REQUEST, 'credit'); if (login() && !empty($url) && $proper) { get_feed($url, $credit); $log = get_feed($url, $credit); if (!empty($log)) { config('views.root', 'system/admin/views'); render('import', array( 'title' => 'Import feed - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'bodyclass' => 'editprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Import feed' )); } } else { $message['error'] = ''; if (empty($url)) { $message['error'] .= '
  • You need to specify the feed url.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('import', array( 'title' => 'Import feed - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'url' => $url, 'bodyclass' => 'editprofile', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Login' )); } }); // Show Config page get('/admin/config', function () { if (login()) { config('views.root', 'system/admin/views'); render('config', array( 'title' => 'Config - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'config', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Config' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Submitted Config page data post('/admin/config', function () { error_reporting(E_ALL); ini_set("display_errors", 1); $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if (login() && $proper) { $newKey = from($_REQUEST, 'newKey'); $newValue = from($_REQUEST, 'newValue'); $new_config = array(); $new_Keys = array(); if (!empty($newKey)) { $new_Keys[$newKey] = $newValue; } foreach ($_POST as $name => $value) { if (substr($name, 0, 8) == "-config-") { $name = str_replace("_", ".", substr($name, 8)); $new_config[$name] = $value; } } save_config($new_config, $new_Keys); $login = site_url() . 'admin/config'; header("location: $login"); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Show Backup page get('/admin/backup', function () { if (login()) { config('views.root', 'system/admin/views'); render('backup', array( 'title' => 'Backup content - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'backup', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Backup' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Show Create backup page get('/admin/backup-start', function () { if (login()) { config('views.root', 'system/admin/views'); render('backup-start', array( 'title' => 'Backup content started - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'startbackup', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Backup started' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Show clear cache page get('/admin/clear-cache', function () { if (login()) { config('views.root', 'system/admin/views'); render('clear-cache', array( 'title' => 'Clearing cache started - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'clearcache', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Clearing cache started' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Show Update page get('/admin/update', function () { if (login()) { config('views.root', 'system/admin/views'); render('update', array( 'title' => 'Check for Update - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'updatepage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Update HTMLy' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Show the update now link get('/admin/update/now/:csrf', function ($CSRF) { $proper = is_csrf_proper($CSRF); $updater = new \Kanti\HubUpdater(array( 'name' => 'danpros/htmly', 'prerelease' => !!config("prerelease"), )); if (login() && $proper && $updater->able()) { $updater->update(); config('views.root', 'system/admin/views'); render('updated-to', array( 'title' => 'Updated - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'info' => $updater->getCurrentInfo(), 'bodyclass' => 'updatepage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Update HTMLy' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Show category page get('/admin/categories', function () { if (login()) { config('views.root', 'system/admin/views'); render('categories', array( 'title' => 'Categories - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'categoriespage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Categories' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; }); // Show the category page get('/category/:category', function ($category) { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('category.perpage'); $posts = get_category($category, $page, $perpage); $desc = get_category_info($category); if(strtolower($category) !== 'uncategorized') { $desc = $desc[0]; } $total = get_categorycount($category); if (empty($posts) || $page < 1) { // a non-existing page not_found(); } render('main', array( 'title' => $desc->title . ' - ' . blog_title(), 'description' => $desc->description, 'canonical' => $desc->url, 'page' => $page, 'posts' => $posts, 'category' => $desc, 'bodyclass' => 'incategory', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $desc->title, 'pagination' => has_pagination($total, $perpage, $page), 'is_category' => is_category(true), )); }); // Show edit the category page get('/category/:category/edit', function ($category) { if (login()) { config('views.root', 'system/admin/views'); $post = get_category_info($category); if (!$post) { not_found(); } $post = $post[0]; render('edit-category', array( 'title' => 'Edit category - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'editpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title, 'p' => $post, 'type' => 'categoryPage', )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get edited data from category page post('/category/:category/edit', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if (!login()) { $login = site_url() . 'login'; header("location: $login"); } $title = from($_REQUEST, 'title'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $oldfile = from($_REQUEST, 'oldfile'); $destination = from($_GET, 'destination'); $description = from($_REQUEST, 'description'); if ($proper && !empty($title) && !empty($content)) { if (!empty($url)) { edit_category($title, $url, $content, $oldfile, $destination, $description); } else { $url = $title; edit_category($title, $url, $content, $oldfile, $destination, $description); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('edit-category', array( 'title' => 'Edit category - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'oldfile' => $oldfile, 'postTitle' => $title, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'editcategory', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit category' )); } }); // Delete category get('/category/:category/delete', function ($category) { if (login()) { config('views.root', 'system/admin/views'); $post = get_category_info($category); if (!$post) { not_found(); } $post = $post[0]; render('delete-category', array( 'title' => 'Delete category - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'editpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title, 'p' => $post, 'type' => 'categoryPage', )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get deleted category data post('/category/:category/delete', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if ($proper && login()) { $file = from($_REQUEST, 'file'); $destination = from($_GET, 'destination'); delete_page($file, $destination); } }); // Show the tag page get('/tag/:tag', function ($tag) { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('tag.perpage'); $posts = get_tag($tag, $page, $perpage, false); $total = get_tagcount($tag, 'basename'); if (empty($posts) || $page < 1) { // a non-existing page not_found(); } render('main', array( 'title' => 'Posts tagged: ' . tag_i18n($tag) . ' - ' . blog_title(), 'description' => 'All posts tagged: ' . tag_i18n($tag) . ' on ' . blog_title() . '.', 'canonical' => site_url() . 'tag/' . strtolower($tag), 'page' => $page, 'posts' => $posts, 'bodyclass' => 'intag', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Posts tagged: ' . tag_i18n($tag), 'pagination' => has_pagination($total, $perpage, $page), 'is_tag' => is_tag(true), )); }); // Show the archive page get('/archive/:req', function ($req) { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('archive.perpage'); $posts = get_archive($req, $page, $perpage); $total = get_count($req, 'basename'); if (empty($posts) || $page < 1) { // a non-existing page not_found(); } $time = explode('-', $req); $date = strtotime($req); if (isset($time[0]) && isset($time[1]) && isset($time[2])) { $timestamp = date('d F Y', $date); } elseif (isset($time[0]) && isset($time[1])) { $timestamp = date('F Y', $date); } else { $timestamp = $req; } if (!$date) { // a non-existing page not_found(); } render('main', array( 'title' => 'Archive for: ' . $timestamp . ' - ' . blog_title(), 'description' => 'Archive page for: ' . $timestamp . ' on ' . blog_title() . '.', 'canonical' => site_url() . 'archive/' . $req, 'page' => $page, 'posts' => $posts, 'bodyclass' => 'inarchive', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Archive for: ' . $timestamp, 'pagination' => has_pagination($total, $perpage, $page), 'is_archive' => is_archive(true), )); }); // Show the search page get('/search/:keyword', function ($keyword) { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('search.perpage'); $posts = get_keyword($keyword, $page, $perpage); if (!$posts || $page < 1) { // a non-existing page or no search result render('404-search', array( 'title' => 'Search results not found! - ' . blog_title(), 'description' => 'Search results not found!', 'breadcrumb' => '' . config('breadcrumb.home') . ' » No search results', 'canonical' => site_url(), 'bodyclass' => 'error-404-search', 'is_search' => is_search(true), )); die; } $total = keyword_count($keyword); render('main', array( 'title' => 'Search results for: ' . tag_i18n($keyword) . ' - ' . blog_title(), 'description' => 'Search results for: ' . tag_i18n($keyword) . ' on ' . blog_title() . '.', 'canonical' => site_url() . 'search/' . strtolower($keyword), 'page' => $page, 'posts' => $posts, 'bodyclass' => 'insearch', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Search results for: ' . tag_i18n($keyword), 'pagination' => has_pagination($total, $perpage, $page), 'is_search' => is_search(true), )); }); // The JSON API get('/api/json', function () { header('Content-type: application/json'); $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('json.count'); echo generate_json(get_posts(null, $page, $perpage)); }); // Show the RSS feed get('/feed/rss', function () { header('Content-Type: application/rss+xml'); // Show an RSS feed with the 30 latest posts echo generate_rss(get_posts(null, 1, config('rss.count'))); }); // Generate OPML file get('/feed/opml', function () { header('Content-Type: text/xml'); // Generate OPML file for the RSS echo generate_opml(); }); // Show blog post without year-month get('/post/:name', function ($name) { if (config('permalink.type') != 'post') { $post = find_post(null, null, $name); $current = $post['current']; $redir = site_url() . date('Y/m', $current->date) . '/' . $name; header("location: $redir", TRUE, 301); } if (config("views.counter") != "true") { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } } $post = find_post(null, null, $name); $current = $post['current']; if (!$current) { not_found(); } if (config("views.counter") == "true") { add_view($current->file); if (!login()) { file_cache($_SERVER['REQUEST_URI']); } } $author = get_author($current->author); if (isset($author[0])) { $author = $author[0]; } else { $author = default_profile($current->author); } if (array_key_exists('prev', $post)) { $prev = $post['prev']; } else { $prev = array(); } if (array_key_exists('next', $post)) { $next = $post['next']; } else { $next = array(); } if (isset($current->image)) { $var = 'imagePost'; } elseif (isset($current->link)) { $var = 'linkPost'; } elseif (isset($current->quote)) { $var = 'quotePost'; } elseif (isset($current->audio)) { $var = 'audioPost'; } elseif (isset($current->video)) { $var = 'videoPost'; } else { $var = 'blogPost'; } if (config('blog.enable') === 'true') { $blog = ' Blog » '; } else { $blog = ''; } render('post', array( 'title' => $current->title . ' - ' . blog_title(), 'description' => $current->description, 'canonical' => $current->url, 'p' => $current, 'author' => $author, 'bodyclass' => 'inpost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » '. $blog . '' . $current->categoryb . '' . ' » ' . $current->title, 'prev' => has_prev($prev), 'next' => has_next($next), 'type' => $var, 'is_post' => is_post(true), )); }); // Edit blog post get('/post/:name/edit', function ($name) { if (login()) { $user = $_SESSION[config("site.url")]['user']; $role = user('role', $user); config('views.root', 'system/admin/views'); $post = find_post(null, null, $name); if (!$post) { $post = find_draft(null, null, $name); if (!$post) { not_found(); } } $current = $post['current']; if (isset($current->image)) { $var = 'edit-image'; } elseif (isset($current->link)) { $var = 'edit-link'; } elseif (isset($current->quote)) { $var = 'edit-quote'; } elseif (isset($current->audio)) { $var = 'edit-audio'; } elseif (isset($current->video)) { $var = 'edit-video'; } else { $var = 'edit-post'; } if ($user === $current->author || $role === 'admin') { render($var, array( 'title' => $var .' '. blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'editcontent', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } else { render('denied', array( 'title' => $var .' '. blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'denied', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get edited data from blog post post('/post/:name/edit', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $is_post = from($_REQUEST, 'is_post'); $image = from($_REQUEST, 'image'); $is_image = from($_REQUEST, 'is_image'); $video = from($_REQUEST, 'video'); $is_video = from($_REQUEST, 'is_video'); $link = from($_REQUEST, 'link'); $is_link = from($_REQUEST, 'is_link'); $audio = from($_REQUEST, 'audio'); $is_audio = from($_REQUEST, 'is_audio'); $quote = from($_REQUEST, 'quote'); $is_quote = from($_REQUEST, 'is_quote'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $oldfile = from($_REQUEST, 'oldfile'); $destination = from($_GET, 'destination'); $description = from($_REQUEST, 'description'); $date = from($_REQUEST, 'date'); $time = from($_REQUEST, 'time'); $dateTime = null; $revertPost = from($_REQUEST, 'revertpost'); $publishDraft = from($_REQUEST, 'publishdraft'); $category = from($_REQUEST, 'category'); if ($date !== null && $time !== null) { $dateTime = $date . ' ' . $time; } if (!empty($is_image)) { $var = 'edit-image'; } elseif (!empty($is_video)) { $var = 'edit-video'; } elseif (!empty($is_link)) { $var = 'edit-link'; } elseif (!empty($is_quote)) { $var = 'edit-quote'; } elseif (!empty($is_audio)) { $var = 'edit-audio'; } elseif (!empty($is_post)) { $var = 'edit-post'; } if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($image)) { if (empty($url)) { $url = $title; } edit_image($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $image, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($video)) { if (empty($url)) { $url = $title; } edit_video($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $video, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($link)) { if (empty($url)) { $url = $title; } edit_link($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $link, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($quote)) { if (empty($url)) { $url = $title; } edit_quote($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $quote, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($audio)) { if (empty($url)) { $url = $title; } edit_audio($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $audio, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($is_post)) { if (empty($url)) { $url = $title; } edit_post($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $revertPost, $publishDraft, $category); } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } if (!empty($is_image)) { if (empty($image)) { $message['error'] .= '
  • Image field is required.
  • '; } } elseif (!empty($is_video)) { if (empty($video)) { $message['error'] .= '
  • Video field is required.
  • '; } } elseif (!empty($is_link)) { if (empty($link)) { $message['error'] .= '
  • Link field is required.
  • '; } } elseif (!empty($is_quote)) { if (empty($quote)) { $message['error'] .= '
  • Quote field is required.
  • '; } } elseif (!empty($is_audio)) { if (empty($audio)) { $message['error'] .= '
  • Audio field is required.
  • '; } } config('views.root', 'system/admin/views'); render($var, array( 'title' => 'Edit content - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'oldfile' => $oldfile, 'postTitle' => $title, 'postImage' => $image, 'postVideo' => $video, 'postLink' => $link, 'postQuote' => $quote, 'postAudio' => $audio, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'editcontent', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit content' )); } }); // Delete blog post get('/post/:name/delete', function ($name) { if (login()) { $user = $_SESSION[config("site.url")]['user']; $role = user('role', $user); config('views.root', 'system/admin/views'); $post = find_post(null, null, $name); if (!$post) { $post = find_draft(null, null, $name); if (!$post) { not_found(); } } $current = $post['current']; if ($user === $current->author || $role === 'admin') { render('delete-post', array( 'title' => 'Delete post - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'deletepost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } else { render('denied', array( 'title' => 'Delete post - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'deletepost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get deleted data from blog post post('/post/:name/delete', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if ($proper && login()) { $file = from($_REQUEST, 'file'); $destination = from($_GET, 'destination'); delete_post($file, $destination); } }); // Show various page (top-level), admin, login, sitemap, static page. get('/:static', function ($static) { if ($static === 'sitemap.xml' || $static === 'sitemap.base.xml' || $static === 'sitemap.post.xml' || $static === 'sitemap.static.xml' || $static === 'sitemap.tag.xml' || $static === 'sitemap.archive.xml' || $static === 'sitemap.author.xml') { header('Content-Type: text/xml'); if ($static === 'sitemap.xml') { generate_sitemap('index'); } elseif ($static === 'sitemap.base.xml') { generate_sitemap('base'); } elseif ($static === 'sitemap.post.xml') { generate_sitemap('post'); } elseif ($static === 'sitemap.static.xml') { generate_sitemap('static'); } elseif ($static === 'sitemap.tag.xml') { generate_sitemap('tag'); } elseif ($static === 'sitemap.archive.xml') { generate_sitemap('archive'); } elseif ($static === 'sitemap.author.xml') { generate_sitemap('author'); } die; } elseif ($static === 'admin') { if (login()) { config('views.root', 'system/admin/views'); render('main', array( 'title' => 'Admin - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'adminfront', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Admin' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; } elseif ($static === 'login') { config('views.root', 'system/admin/views'); render('login', array( 'title' => 'Login - ' . blog_title(), 'description' => 'Login page from ' . blog_title() . '.', 'canonical' => site_url() . '/login', 'bodyclass' => 'inlogin', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Login' )); die; } elseif ($static === 'logout') { if (login()) { config('views.root', 'system/admin/views'); render('logout', array( 'title' => 'Logout - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'inlogout', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Logout' )); } else { $login = site_url() . 'login'; header("location: $login"); } die; } elseif ($static === 'blog') { if(config('blog.enable') !== 'true') return not_found(); if (!login()) { file_cache($_SERVER['REQUEST_URI']); } $page = from($_GET, 'page'); $page = $page ? (int)$page : 1; $perpage = config('posts.perpage'); $posts = get_posts(null, $page, $perpage); $total = ''; $tl = blog_tagline(); if ($tl) { $tagline = ' - ' . $tl; } else { $tagline = ''; } if (empty($posts) || $page < 1) { // a non-existing page render('no-posts', array( 'title' => 'Blog - ' . blog_title(), 'description' => blog_title() . ' Blog Homepage', 'canonical' => site_url(), 'bodyclass' => 'noposts', 'is_front' => is_front(true), )); die; } render('main', array( 'title' => 'Blog - ' . blog_title(), 'description' => blog_title() . ' Blog Homepage', 'canonical' => site_url() . 'blog', 'page' => $page, 'posts' => $posts, 'bodyclass' => 'inblog', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Blog', 'pagination' => has_pagination($total, $perpage, $page), 'is_blog' => is_blog(true), )); } else { if (config("views.counter") != "true") { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } } $post = get_static_post($static); if (!$post) { not_found(); } $post = $post[0]; if (config("views.counter") == "true") { add_view($post->file); if (!login()) { file_cache($_SERVER['REQUEST_URI']); } } render('static', array( 'title' => $post->title . ' - ' . blog_title(), 'description' => $post->description, 'canonical' => $post->url, 'bodyclass' => 'inpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title, 'p' => $post, 'type' => 'staticPage', 'is_page' => is_page(true), )); } }); // Show the add sub static page get('/:static/add', function ($static) { if (login()) { config('views.root', 'system/admin/views'); $post = get_static_post($static); if (!$post) { not_found(); } $post = $post[0]; render('add-page', array( 'title' => 'Add page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'addpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title . ' Add page' )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted data from add sub static page post('/:static/add', function ($static) { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $description = from($_REQUEST, 'description'); if ($proper && !empty($title) && !empty($content) && login()) { if (!empty($url)) { add_sub_page($title, $url, $content, $static, $description); } else { $url = $title; add_sub_page($title, $url, $content, $static, $description); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('add-page', array( 'title' => 'Add page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'postTitle' => $title, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'addpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title . ' Add page' )); } }); // Show edit the static page get('/:static/edit', function ($static) { if (login()) { config('views.root', 'system/admin/views'); $post = get_static_post($static); if (!$post) { not_found(); } $post = $post[0]; render('edit-page', array( 'title' => 'Edit page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'editpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title, 'p' => $post, 'type' => 'staticPage', )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get edited data from static page post('/:static/edit', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if (!login()) { $login = site_url() . 'login'; header("location: $login"); } $title = from($_REQUEST, 'title'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $oldfile = from($_REQUEST, 'oldfile'); $destination = from($_GET, 'destination'); $description = from($_REQUEST, 'description'); if ($proper && !empty($title) && !empty($content)) { if (!empty($url)) { edit_page($title, $url, $content, $oldfile, $destination, $description); } else { $url = $title; edit_page($title, $url, $content, $oldfile, $destination, $description); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('edit-page', array( 'title' => 'Edit page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'oldfile' => $oldfile, 'postTitle' => $title, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'editpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit page' )); } }); // Deleted the static page get('/:static/delete', function ($static) { if (login()) { config('views.root', 'system/admin/views'); $post = get_static_post($static); if (!$post) { not_found(); } $post = $post[0]; render('delete-page', array( 'title' => 'Delete page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'deletepage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title, 'p' => $post, 'type' => 'staticPage', )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get deleted data for static page post('/:static/delete', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if ($proper && login()) { $file = from($_REQUEST, 'file'); $destination = from($_GET, 'destination'); delete_page($file, $destination); } }); // Show the sb static page get('/:static/:sub', function ($static, $sub) { $father_post = get_static_post($static); if (!$father_post) { not_found(); } $post = get_static_sub_post($static, $sub); if (!$post) { not_found(); } $post = $post[0]; if (config("views.counter") == "true") { add_view($post->file); } if (!login()) { file_cache($_SERVER['REQUEST_URI']); } render('static', array( 'title' => $post->title . ' - ' . blog_title(), 'description' => $post->description, 'canonical' => $post->url, 'bodyclass' => 'inpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $father_post[0]->title . ' » ' . $post->title, 'p' => $post, 'type' => 'subPage', 'is_subpage' => is_subpage(true), )); }); // Edit the sub static page get('/:static/:sub/edit', function ($static, $sub) { if (login()) { config('views.root', 'system/admin/views'); $post = get_static_post($static); if (!$post) { not_found(); } $post = $post[0]; $page = get_static_sub_post($static, $sub); if (!$page) { not_found(); } $page = $page[0]; render('edit-page', array( 'title' => 'Edit page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'editpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title . ' » ', 'p' => $page, 'type' => 'subPage', )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted data from edit sub static page post('/:static/:sub/edit', function ($static, $sub) { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if (!login()) { $login = site_url() . 'login'; header("location: $login"); } $title = from($_REQUEST, 'title'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $oldfile = from($_REQUEST, 'oldfile'); $destination = from($_GET, 'destination'); $description = from($_REQUEST, 'description'); if ($destination === null) { $destination = $static . "/" . $sub; } if ($proper && !empty($title) && !empty($content)) { if (!empty($url)) { edit_page($title, $url, $content, $oldfile, $destination, $description, $static); } else { $url = $title; edit_page($title, $url, $content, $oldfile, $destination, $description, $static); } } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } config('views.root', 'system/admin/views'); render('edit-page', array( 'title' => 'Edit page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'oldfile' => $oldfile, 'postTitle' => $title, 'postUrl' => $url, 'postContent' => $content, 'static' => $static, 'sub' => $sub, 'bodyclass' => 'editpage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit page' )); } }); // Delete sub static page get('/:static/:sub/delete', function ($static, $sub) { if (login()) { config('views.root', 'system/admin/views'); $post = get_static_post($static); if (!$post) { not_found(); } $post = $post[0]; $page = get_static_sub_post($static, $sub); if (!$page) { not_found(); } $page = $page[0]; render('delete-page', array( 'title' => 'Delete page - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'bodyclass' => 'deletepage', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title . '' . $page->title, 'p' => $page, 'type' => 'subPage', )); } else { $login = site_url() . 'login'; header("location: $login"); } }); // Submitted data from delete sub static page post('/:static/:sub/delete', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if ($proper && login()) { $file = from($_REQUEST, 'file'); $destination = from($_GET, 'destination'); delete_page($file, $destination); } }); // Show blog post with year-month get('/:year/:month/:name', function ($year, $month, $name) { if (config('permalink.type') == 'post') { $redir = site_url() . 'post/' . $name; header("location: $redir", TRUE, 301); } if (config("views.counter") != "true") { if (!login()) { file_cache($_SERVER['REQUEST_URI']); } } $post = find_post($year, $month, $name); $current = $post['current']; if (!$current) { not_found(); } if (config("views.counter") == "true") { add_view($current->file); if (!login()) { file_cache($_SERVER['REQUEST_URI']); } } $author = get_author($current->author); if (isset($author[0])) { $author = $author[0]; } else { $author = default_profile($current->author); } if (array_key_exists('prev', $post)) { $prev = $post['prev']; } else { $prev = array(); } if (array_key_exists('next', $post)) { $next = $post['next']; } else { $next = array(); } if (isset($current->image)) { $var = 'imagePost'; } elseif (isset($current->link)) { $var = 'linkPost'; } elseif (isset($current->quote)) { $var = 'quotePost'; } elseif (isset($current->audio)) { $var = 'audioPost'; } elseif (isset($current->video)) { $var = 'videoPost'; } else { $var = 'blogPost'; } if (config('blog.enable') === 'true') { $blog = ' Blog » '; } else { $blog = ''; } render('post', array( 'title' => $current->title . ' - ' . blog_title(), 'description' => $current->description, 'canonical' => $current->url, 'p' => $current, 'author' => $author, 'bodyclass' => 'inpost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » '. $blog . '' . $current->categoryb . '' . ' » ' . $current->title, 'prev' => has_prev($prev), 'next' => has_next($next), 'type' => $var, 'is_post' => is_post(true), )); }); // Edit blog post get('/:year/:month/:name/edit', function ($year, $month, $name) { if (login()) { $user = $_SESSION[config("site.url")]['user']; $role = user('role', $user); config('views.root', 'system/admin/views'); $post = find_post($year, $month, $name); if (!$post) { $post = find_draft($year, $month, $name); if (!$post) { not_found(); } } $current = $post['current']; if (isset($current->image)) { $var = 'edit-image'; } elseif (isset($current->link)) { $var = 'edit-link'; } elseif (isset($current->quote)) { $var = 'edit-quote'; } elseif (isset($current->audio)) { $var = 'edit-audio'; } elseif (isset($current->video)) { $var = 'edit-video'; } else { $var = 'edit-post'; } if ($user === $current->author || $role === 'admin') { render($var, array( 'title' => $var .' '. blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'editcontent', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } else { render('denied', array( 'title' => $var .' '. blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'denied', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get edited data from blog post post('/:year/:month/:name/edit', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $title = from($_REQUEST, 'title'); $is_post = from($_REQUEST, 'is_post'); $image = from($_REQUEST, 'image'); $is_image = from($_REQUEST, 'is_image'); $video = from($_REQUEST, 'video'); $is_video = from($_REQUEST, 'is_video'); $link = from($_REQUEST, 'link'); $is_link = from($_REQUEST, 'is_link'); $audio = from($_REQUEST, 'audio'); $is_audio = from($_REQUEST, 'is_audio'); $quote = from($_REQUEST, 'quote'); $is_quote = from($_REQUEST, 'is_quote'); $tag = from($_REQUEST, 'tag'); $url = from($_REQUEST, 'url'); $content = from($_REQUEST, 'content'); $oldfile = from($_REQUEST, 'oldfile'); $destination = from($_GET, 'destination'); $description = from($_REQUEST, 'description'); $date = from($_REQUEST, 'date'); $time = from($_REQUEST, 'time'); $dateTime = null; $revertPost = from($_REQUEST, 'revertpost'); $publishDraft = from($_REQUEST, 'publishdraft'); $category = from($_REQUEST, 'category'); if ($date !== null && $time !== null) { $dateTime = $date . ' ' . $time; } if (!empty($is_image)) { $var = 'edit-image'; } elseif (!empty($is_video)) { $var = 'edit-video'; } elseif (!empty($is_link)) { $var = 'edit-link'; } elseif (!empty($is_quote)) { $var = 'edit-quote'; } elseif (!empty($is_audio)) { $var = 'edit-audio'; } elseif (!empty($is_post)) { $var = 'edit-post'; } if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($image)) { if (empty($url)) { $url = $title; } edit_image($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $image, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($video)) { if (empty($url)) { $url = $title; } edit_video($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $video, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($link)) { if (empty($url)) { $url = $title; } edit_link($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $link, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($quote)) { if (empty($url)) { $url = $title; } edit_quote($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $quote, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($audio)) { if (empty($url)) { $url = $title; } edit_audio($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $audio, $revertPost, $publishDraft, $category); } else if ($proper && !empty($title) && !empty($tag) && !empty($content) && !empty($is_post)) { if (empty($url)) { $url = $title; } edit_post($title, $tag, $url, $content, $oldfile, $destination, $description, $dateTime, $revertPost, $publishDraft, $category); } else { $message['error'] = ''; if (empty($title)) { $message['error'] .= '
  • Title field is required.
  • '; } if (empty($tag)) { $message['error'] .= '
  • Tag field is required.
  • '; } if (empty($content)) { $message['error'] .= '
  • Content field is required.
  • '; } if (!$proper) { $message['error'] .= '
  • CSRF Token not correct.
  • '; } if (!empty($is_image)) { if (empty($image)) { $message['error'] .= '
  • Image field is required.
  • '; } } elseif (!empty($is_video)) { if (empty($video)) { $message['error'] .= '
  • Video field is required.
  • '; } } elseif (!empty($is_link)) { if (empty($link)) { $message['error'] .= '
  • Link field is required.
  • '; } } elseif (!empty($is_quote)) { if (empty($quote)) { $message['error'] .= '
  • Quote field is required.
  • '; } } elseif (!empty($is_audio)) { if (empty($audio)) { $message['error'] .= '
  • Audio field is required.
  • '; } } config('views.root', 'system/admin/views'); render($var, array( 'title' => 'Edit content - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'error' => '', 'oldfile' => $oldfile, 'postTitle' => $title, 'postImage' => $image, 'postVideo' => $video, 'postLink' => $link, 'postQuote' => $quote, 'postAudio' => $audio, 'postTag' => $tag, 'postUrl' => $url, 'postContent' => $content, 'bodyclass' => 'editcontent', 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit content' )); } }); // Delete blog post get('/:year/:month/:name/delete', function ($year, $month, $name) { if (login()) { $user = $_SESSION[config("site.url")]['user']; $role = user('role', $user); config('views.root', 'system/admin/views'); $post = find_post($year, $month, $name); if (!$post) { $post = find_draft($year, $month, $name); if (!$post) { not_found(); } } $current = $post['current']; if ($user === $current->author || $role === 'admin') { render('delete-post', array( 'title' => 'Delete post - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'deletepost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } else { render('denied', array( 'title' => 'Delete post - ' . blog_title(), 'description' => blog_description(), 'canonical' => site_url(), 'p' => $current, 'bodyclass' => 'deletepost', 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title )); } } else { $login = site_url() . 'login'; header("location: $login"); } }); // Get deleted data from blog post post('/:year/:month/:name/delete', function () { $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); if ($proper && login()) { $file = from($_REQUEST, 'file'); $destination = from($_GET, 'destination'); delete_post($file, $destination); } }); // If we get here, it means that // nothing has been matched above get('.*', function () { not_found(); }); // Serve the blog dispatch();