diff --git a/config/config.ini.example b/config/config.ini.example index 41edb78..ccef248 100644 --- a/config/config.ini.example +++ b/config/config.ini.example @@ -80,5 +80,8 @@ lightbox = "off" ; Set the theme here views.root = "themes/logs" + ;Enable view Counter, the options is "true" and "false". If set to "true", you can see the Counts in Admin page. +views.counter = "true" + ; Framework config. No need to edit. views.layout = "layout" \ No newline at end of file diff --git a/system/admin/admin.php b/system/admin/admin.php index 147a6ff..35777c6 100644 --- a/system/admin/admin.php +++ b/system/admin/admin.php @@ -347,7 +347,9 @@ function get_recent_posts() { $posts = get_profile($_SESSION[config("site.url")]['user'], 1, 5); if(!empty($posts)) { echo ''; - echo ''; + echo ''; + if(config("views.counter") == "true") echo ''; + echo ''; $i = 0; $len = count($posts); foreach($posts as $p) { if ($i == 0) { @@ -363,6 +365,7 @@ function get_recent_posts() { echo ''; echo ''; echo ''; + if(config("views.counter") == "true") echo ''; echo ''; echo ''; echo ''; @@ -379,7 +382,9 @@ function get_recent_pages() { if(!empty($posts)) { krsort($posts); echo '
TitlePublishedTagOperations
TitlePublishedViewsTagOperations
' . $p->title . '' . date('d F Y', $p->date) . '' . $p->views . '' . $p->tag . 'Edit Delete
'; - echo ''; + echo ''; + if(config("views.counter") == "true") echo ''; + echo ''; $i = 0; $len = count($posts); foreach($posts as $p) { if ($i == 0) { @@ -394,6 +399,7 @@ function get_recent_pages() { $i++; echo ''; echo ''; + if(config("views.counter") == "true") echo ''; echo ''; echo ''; } diff --git a/system/admin/views/posts-list.html.php b/system/admin/views/posts-list.html.php index 3f9354e..9457c3e 100644 --- a/system/admin/views/posts-list.html.php +++ b/system/admin/views/posts-list.html.php @@ -1,7 +1,7 @@

TitleOperations
TitleViewsOperations
' . $p->title . '' . $p->views . 'Edit Delete
- + "> + diff --git a/system/admin/views/user-posts.html.php b/system/admin/views/user-posts.html.php index 427f970..2fc3624 100644 --- a/system/admin/views/user-posts.html.php +++ b/system/admin/views/user-posts.html.php @@ -1,7 +1,7 @@

TitlePublishedAuthorTagOperations
TitlePublishedViewsAuthorTagOperations
title ?> date) ?>views ?> author ?> tag ?> Edit Delete
- + "> + diff --git a/system/htmly.php b/system/htmly.php index 0c29618..0fd5586 100644 --- a/system/htmly.php +++ b/system/htmly.php @@ -19,1123 +19,1092 @@ config('source', 'config/config.ini'); // This will match the root url get('/index', function () { - 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( - 'head_contents' => head_contents(blog_title() . $tagline, blog_description(), site_url()), - 'bodyclass' => 'noposts', - )); - - die; - } - - render('main',array( - 'head_contents' => head_contents(blog_title() . $tagline, blog_description(), site_url()), - 'page' => $page, - 'posts' => $posts, - 'bodyclass' => 'infront', - 'breadcrumb' => '', - 'pagination' => has_pagination($total, $perpage, $page) - )); + 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( + 'head_contents' => head_contents(blog_title() . $tagline, blog_description(), site_url()), + 'bodyclass' => 'noposts', + )); + + die; + } + + render('main', array( + 'head_contents' => head_contents(blog_title() . $tagline, blog_description(), site_url()), + 'page' => $page, + 'posts' => $posts, + 'bodyclass' => 'infront', + 'breadcrumb' => '', + 'pagination' => has_pagination($total, $perpage, $page) + )); }); // Get submitted login data post('/login', function() { - - $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); - - $user = from($_REQUEST, 'user'); - $pass = from($_REQUEST, 'password'); - if($proper && !empty($user) && !empty($pass)) { - - session($user, $pass, null); - $log = session($user, $pass, null); - - if(!empty($log)) { - - config('views.root', 'system/admin/views'); - - render('login',array( - 'head_contents' => head_contents('Login - ' . blog_title(), 'Login page on ' .blog_title(), 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.
  • '; - } - - config('views.root', 'system/admin/views'); - - render('login',array( - 'head_contents' => head_contents('Login - ' . blog_title(), 'Login page on ' .blog_title(), site_url()), - 'error' => '', - 'username' => $user, - 'password' => $pass, - 'bodyclass' => 'editprofile', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Login' - )); - } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + + $user = from($_REQUEST, 'user'); + $pass = from($_REQUEST, 'password'); + if ($proper && !empty($user) && !empty($pass)) { + + session($user, $pass, null); + $log = session($user, $pass, null); + + if (!empty($log)) { + + config('views.root', 'system/admin/views'); + + render('login', array( + 'head_contents' => head_contents('Login - ' . blog_title(), 'Login page on ' . blog_title(), 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.
  • '; + } + + config('views.root', 'system/admin/views'); + + render('login', array( + 'head_contents' => head_contents('Login - ' . blog_title(), 'Login page on ' . blog_title(), site_url()), + 'error' => '', + 'username' => $user, + 'password' => $pass, + 'bodyclass' => 'editprofile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Login' + )); + } }); // The blog post page -get('/:year/:month/:name', function($year, $month, $name){ - - if(!login()) { - file_cache($_SERVER['REQUEST_URI']); - } - - $post = find_post($year, $month, $name); - - $current = $post['current']; - - if(!$current){ - not_found(); - } - - $bio = get_bio($current->author); - - if(isset($bio[0])) { - $bio = $bio[0]; - } - else { - $bio = 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(); - } - - render('post',array( - 'head_contents' => head_contents($current->title .' - ' . blog_title(), $description = get_description($current->body), $current->url), - 'p' => $current, - 'authorinfo' => authorinfo($bio->title, $bio->body), - 'bodyclass' => 'inpost', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » '. $current->tagb . ' » ' . $current->title, - 'prev' => has_prev($prev), - 'next' => has_next($next), - 'type' => 'blogpost', - )); - +get('/:year/:month/:name', function($year, $month, $name) { + + 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']); + } + } + + + $bio = get_bio($current->author); + + if (isset($bio[0])) { + $bio = $bio[0]; + } else { + $bio = 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(); + } + + render('post', array( + 'head_contents' => head_contents($current->title . ' - ' . blog_title(), $description = get_description($current->body), $current->url), + 'p' => $current, + 'authorinfo' => authorinfo($bio->title, $bio->body), + 'bodyclass' => 'inpost', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title, + 'prev' => has_prev($prev), + 'next' => has_next($next), + 'type' => 'blogpost', + )); }); // 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){ - not_found(); - } - - $current = $post['current']; - - if($user === $current->author || $role === 'admin') { - render('edit-post',array( - 'head_contents' => head_contents('Edit post - ' . blog_title(), blog_description(), site_url()), - 'p' => $current, - 'bodyclass' => 'editpost', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » '. $current->tagb . ' » ' . $current->title - )); - } - else { - render('denied',array( - 'head_contents' => head_contents('Edit post - ' . blog_title(), blog_description(), site_url()), - 'p' => $current, - 'bodyclass' => 'denied', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » '. $current->tagb . ' » ' . $current->title - )); - } - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +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) { + not_found(); + } + + $current = $post['current']; + + if ($user === $current->author || $role === 'admin') { + render('edit-post', array( + 'head_contents' => head_contents('Edit post - ' . blog_title(), blog_description(), site_url()), + 'p' => $current, + 'bodyclass' => 'editpost', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title + )); + } else { + render('denied', array( + 'head_contents' => head_contents('Edit post - ' . blog_title(), blog_description(), 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 for blog post post('/:year/:month/:name/edit', 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'); - $oldfile = from($_REQUEST, 'oldfile'); - $destination = from($_GET, 'destination'); - if($proper && !empty($title) && !empty($tag) && !empty($content)) { - if(!empty($url)) { - edit_post($title, $tag, $url, $content, $oldfile, $destination); - } - else { - $url = $title; - edit_post($title, $tag, $url, $content, $oldfile, $destination); - } - } - 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('edit-post',array( - 'head_contents' => head_contents('Edit post - ' . blog_title(), blog_description(), site_url()), - 'error' => '', - 'oldfile' => $oldfile, - 'postTitle' => $title, - 'postTag' => $tag, - 'postUrl' => $url, - 'postContent' => $content, - 'bodyclass' => 'editpost', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Edit post' - )); - } - + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + + $title = from($_REQUEST, 'title'); + $tag = from($_REQUEST, 'tag'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $oldfile = from($_REQUEST, 'oldfile'); + $destination = from($_GET, 'destination'); + if ($proper && !empty($title) && !empty($tag) && !empty($content)) { + if (!empty($url)) { + edit_post($title, $tag, $url, $content, $oldfile, $destination); + } else { + $url = $title; + edit_post($title, $tag, $url, $content, $oldfile, $destination); + } + } 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('edit-post', array( + 'head_contents' => head_contents('Edit post - ' . blog_title(), blog_description(), site_url()), + 'error' => '', + 'oldfile' => $oldfile, + 'postTitle' => $title, + 'postTag' => $tag, + 'postUrl' => $url, + 'postContent' => $content, + 'bodyclass' => 'editpost', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit post' + )); + } }); // 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){ - not_found(); - } - - $current = $post['current']; - - if($user === $current->author || $role === 'admin') { - render('delete-post',array( - 'head_contents' => head_contents('Delete post - ' . blog_title(), blog_description(), site_url()), - 'p' => $current, - 'bodyclass' => 'deletepost', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » '. $current->tagb . ' » ' . $current->title - )); - } - else { - render('denied',array( - 'head_contents' => head_contents('Delete post - ' . blog_title(), blog_description(), site_url()), - 'p' => $current, - 'bodyclass' => 'deletepost', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » '. $current->tagb . ' » ' . $current->title - )); - } - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +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) { + not_found(); + } + + $current = $post['current']; + + if ($user === $current->author || $role === 'admin') { + render('delete-post', array( + 'head_contents' => head_contents('Delete post - ' . blog_title(), blog_description(), site_url()), + 'p' => $current, + 'bodyclass' => 'deletepost', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $current->tagb . ' » ' . $current->title + )); + } else { + render('denied', array( + 'head_contents' => head_contents('Delete post - ' . blog_title(), blog_description(), 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 for blog post post('/:year/:month/:name/delete', function() { - $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); - if($proper) - { - $file = from($_REQUEST, 'file'); - $destination = from($_GET, 'destination'); - delete_post($file, $destination); - } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper) { + $file = from($_REQUEST, 'file'); + $destination = from($_GET, 'destination'); + delete_post($file, $destination); + } }); // The author page -get('/author/:profile', function($profile){ - - if(!login()) { - file_cache($_SERVER['REQUEST_URI']); - } - - $page = from($_GET, 'page'); - $page = $page ? (int)$page : 1; - $perpage = config('profile.perpage'); - - $posts = get_profile($profile, $page, $perpage); - - $total = get_count($profile, 'dirname'); - - $bio = get_bio($profile); - - if(isset($bio[0])) { - $bio = $bio[0]; - } - else { - $bio = default_profile($profile); - } - - if(empty($posts) || $page < 1){ - render('profile',array( - 'head_contents' => head_contents('Profile for: '. $bio->title .' - ' . blog_title(), 'Profile page and all posts by ' . $bio->title . ' on ' . blog_title() . '.', site_url() . 'author/' . $profile), - 'page' => $page, - 'posts' => null, - 'bio' => $bio->body, - 'name' => $bio->title, - 'bodyclass' => 'inprofile', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Profile for: ' . $bio->title, - 'pagination' => has_pagination($total, $perpage, $page) - )); - die; - } - - render('profile',array( - 'head_contents' => head_contents('Profile for: '. $bio->title .' - ' . blog_title(), 'Profile page and all posts by ' . $bio->title . ' on ' . blog_title() . '.', site_url() . 'author/' . $profile), - 'page' => $page, - 'posts' => $posts, - 'bio' => $bio->body, - 'name' => $bio->title, - 'bodyclass' => 'inprofile', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Profile for: ' . $bio->title, - 'pagination' => has_pagination($total, $perpage, $page) - )); +get('/author/:profile', function($profile) { + + if (!login()) { + file_cache($_SERVER['REQUEST_URI']); + } + + $page = from($_GET, 'page'); + $page = $page ? (int) $page : 1; + $perpage = config('profile.perpage'); + + $posts = get_profile($profile, $page, $perpage); + + $total = get_count($profile, 'dirname'); + + $bio = get_bio($profile); + + if (isset($bio[0])) { + $bio = $bio[0]; + } else { + $bio = default_profile($profile); + } + + if (empty($posts) || $page < 1) { + render('profile', array( + 'head_contents' => head_contents('Profile for: ' . $bio->title . ' - ' . blog_title(), 'Profile page and all posts by ' . $bio->title . ' on ' . blog_title() . '.', site_url() . 'author/' . $profile), + 'page' => $page, + 'posts' => null, + 'bio' => $bio->body, + 'name' => $bio->title, + 'bodyclass' => 'inprofile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $bio->title, + 'pagination' => has_pagination($total, $perpage, $page) + )); + die; + } + + render('profile', array( + 'head_contents' => head_contents('Profile for: ' . $bio->title . ' - ' . blog_title(), 'Profile page and all posts by ' . $bio->title . ' on ' . blog_title() . '.', site_url() . 'author/' . $profile), + 'page' => $page, + 'posts' => $posts, + 'bio' => $bio->body, + 'name' => $bio->title, + 'bodyclass' => 'inprofile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $bio->title, + 'pagination' => has_pagination($total, $perpage, $page) + )); }); // Edit the profile -get('/edit/profile', function(){ - - if(login()) { - - config('views.root', 'system/admin/views'); - render('edit-profile',array( - 'head_contents' => head_contents('Edit profile - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'editprofile', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Edit profile', - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +get('/edit/profile', function() { + + if (login()) { + + config('views.root', 'system/admin/views'); + render('edit-profile', array( + 'head_contents' => head_contents('Edit profile - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'editprofile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit profile', + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } }); // Get edited data for static 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( - 'head_contents' => head_contents('Edit profile - ' . blog_title(), blog_description(), site_url()), - 'error' => '', - 'postTitle' => $title, - 'postContent' => $content, - 'bodyclass' => 'editprofile', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Edit profile' - )); - } - + + $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( + 'head_contents' => head_contents('Edit profile - ' . blog_title(), blog_description(), site_url()), + 'error' => '', + 'postTitle' => $title, + 'postContent' => $content, + 'bodyclass' => 'editprofile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Edit profile' + )); + } }); 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( - 'head_contents' => head_contents('All blog posts - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'noposts', - )); - - die; - } - - $tl = blog_tagline(); - - if($tl){ $tagline = ' - ' . $tl;} else {$tagline = '';} - - render('posts-list',array( - 'head_contents' => head_contents('All blog posts - ' . blog_title(), blog_description(), site_url()), - 'heading' => 'All blog posts', - 'page' => $page, - 'posts' => $posts, - 'bodyclass' => 'all-posts', - 'breadcrumb' => '', - 'pagination' => has_pagination($total, $perpage, $page) - )); - } - else { - render('denied',array( - 'head_contents' => head_contents('All blog posts - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'denied', - 'breadcrumb' => '', - )); - } - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } + $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( + 'head_contents' => head_contents('All blog posts - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'noposts', + )); + + die; + } + + $tl = blog_tagline(); + + if ($tl) { + $tagline = ' - ' . $tl; + } else { + $tagline = ''; + } + + render('posts-list', array( + 'head_contents' => head_contents('All blog posts - ' . blog_title(), blog_description(), site_url()), + 'heading' => 'All blog posts', + 'page' => $page, + 'posts' => $posts, + 'bodyclass' => 'all-posts', + 'breadcrumb' => '', + 'pagination' => has_pagination($total, $perpage, $page) + )); + } else { + render('denied', array( + 'head_contents' => head_contents('All blog posts - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'denied', + 'breadcrumb' => '', + )); + } + } else { + $login = site_url() . 'login'; + header("location: $login"); + } }); // The author page -get('/admin/mine', function(){ - - if(login()) { - - config('views.root', 'system/admin/views'); - - $profile = $_SESSION[config("site.url")]['user']; - - $page = from($_GET, 'page'); - $page = $page ? (int)$page : 1; - $perpage = config('profile.perpage'); - - $posts = get_profile($profile, $page, $perpage); - - $total = get_count($profile, 'dirname'); - - $bio = get_bio($profile); - - if(isset($bio[0])) { - $bio = $bio[0]; - } - else { - $bio = default_profile($profile); - } - - if(empty($posts) || $page < 1){ - render('user-posts',array( - 'head_contents' => head_contents('My blog posts - ' . blog_title(), blog_description(), site_url()), - 'page' => $page, - 'heading' => 'My posts', - 'posts' => null, - 'bio' => $bio->body, - 'name' => $bio->title, - 'bodyclass' => 'userposts', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Profile for: ' . $bio->title, - 'pagination' => has_pagination($total, $perpage, $page) - )); - die; - } - - render('user-posts',array( - 'head_contents' => head_contents('My blog posts - ' . blog_title(), blog_description(), site_url()), - 'heading' => 'My posts', - 'page' => $page, - 'posts' => $posts, - 'bio' => $bio->body, - 'name' => $bio->title, - 'bodyclass' => 'userposts', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Profile for: ' . $bio->title, - 'pagination' => has_pagination($total, $perpage, $page) - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +get('/admin/mine', function() { + + if (login()) { + + config('views.root', 'system/admin/views'); + + $profile = $_SESSION[config("site.url")]['user']; + + $page = from($_GET, 'page'); + $page = $page ? (int) $page : 1; + $perpage = config('profile.perpage'); + + $posts = get_profile($profile, $page, $perpage); + + $total = get_count($profile, 'dirname'); + + $bio = get_bio($profile); + + if (isset($bio[0])) { + $bio = $bio[0]; + } else { + $bio = default_profile($profile); + } + + if (empty($posts) || $page < 1) { + render('user-posts', array( + 'head_contents' => head_contents('My blog posts - ' . blog_title(), blog_description(), site_url()), + 'page' => $page, + 'heading' => 'My posts', + 'posts' => null, + 'bio' => $bio->body, + 'name' => $bio->title, + 'bodyclass' => 'userposts', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $bio->title, + 'pagination' => has_pagination($total, $perpage, $page) + )); + die; + } + + render('user-posts', array( + 'head_contents' => head_contents('My blog posts - ' . blog_title(), blog_description(), site_url()), + 'heading' => 'My posts', + 'page' => $page, + 'posts' => $posts, + 'bio' => $bio->body, + 'name' => $bio->title, + 'bodyclass' => 'userposts', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Profile for: ' . $bio->title, + 'pagination' => has_pagination($total, $perpage, $page) + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } }); // The 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'); - } - else if ($static === 'sitemap.base.xml') { - generate_sitemap('base'); - } - else if ($static === 'sitemap.post.xml') { - generate_sitemap('post'); - } - else if ($static === 'sitemap.static.xml') { - generate_sitemap('static'); - } - else if ($static === 'sitemap.tag.xml') { - generate_sitemap('tag'); - } - else if ($static === 'sitemap.archive.xml') { - generate_sitemap('archive'); - } - else if ($static === 'sitemap.author.xml') { - generate_sitemap('author'); - } - - die; - - } - elseif($static === 'admin') { - if(login()) { - config('views.root', 'system/admin/views'); - render('main', array( - 'head_contents' => head_contents('Admin - ' . blog_title(), blog_description(), 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( - 'head_contents' => head_contents('Login - ' . blog_title(), 'Login page from ' . blog_title() . '.', 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( - 'head_contents' => head_contents('Logout - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'inlogout', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Logout' - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } - die; - } - else { - - if(!login()) { - file_cache($_SERVER['REQUEST_URI']); - } - - $post = get_static_post($static); - - if(!$post){ - not_found(); - } - - $post = $post[0]; - - render('static',array( - 'head_contents' => head_contents($post->title .' - ' . blog_title(), $description = get_description($post->body), $post->url), - 'bodyclass' => 'inpage', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » ' . $post->title, - 'p' => $post, - 'type' => 'staticpage', - )); - } - +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'); + } else if ($static === 'sitemap.base.xml') { + generate_sitemap('base'); + } else if ($static === 'sitemap.post.xml') { + generate_sitemap('post'); + } else if ($static === 'sitemap.static.xml') { + generate_sitemap('static'); + } else if ($static === 'sitemap.tag.xml') { + generate_sitemap('tag'); + } else if ($static === 'sitemap.archive.xml') { + generate_sitemap('archive'); + } else if ($static === 'sitemap.author.xml') { + generate_sitemap('author'); + } + + die; + } elseif ($static === 'admin') { + if (login()) { + config('views.root', 'system/admin/views'); + render('main', array( + 'head_contents' => head_contents('Admin - ' . blog_title(), blog_description(), 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( + 'head_contents' => head_contents('Login - ' . blog_title(), 'Login page from ' . blog_title() . '.', 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( + 'head_contents' => head_contents('Logout - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'inlogout', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Logout' + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; + } 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( + 'head_contents' => head_contents($post->title . ' - ' . blog_title(), $description = get_description($post->body), $post->url), + 'bodyclass' => 'inpage', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » ' . $post->title, + 'p' => $post, + 'type' => 'staticpage', + )); + } }); // 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( - 'head_contents' => head_contents('Edit page - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'editpage', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » ' . $post->title, - 'p' => $post, - 'type' => 'staticpage', - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +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( + 'head_contents' => head_contents('Edit page - ' . blog_title(), blog_description(), 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 for static page post('/:static/edit', function() { - $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); - - $title = from($_REQUEST, 'title'); - $url = from($_REQUEST, 'url'); - $content = from($_REQUEST, 'content'); - $oldfile = from($_REQUEST, 'oldfile'); - $destination = from($_GET, 'destination'); - if($proper && !empty($title) && !empty($content)) { - if(!empty($url)) { - edit_page($title, $url, $content, $oldfile, $destination); - } - else { - $url = $title; - edit_page($title, $url, $content, $oldfile, $destination); - } - } - 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( - 'head_contents' => head_contents('Edit page - ' . blog_title(), blog_description(), site_url()), - 'error' => '', - 'oldfile' => $oldfile, - 'postTitle' => $title, - 'postUrl' => $url, - 'postContent' => $content, - 'bodyclass' => 'editpage', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Edit page' - )); - } - + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + $oldfile = from($_REQUEST, 'oldfile'); + $destination = from($_GET, 'destination'); + if ($proper && !empty($title) && !empty($content)) { + if (!empty($url)) { + edit_page($title, $url, $content, $oldfile, $destination); + } else { + $url = $title; + edit_page($title, $url, $content, $oldfile, $destination); + } + } 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( + 'head_contents' => head_contents('Edit page - ' . blog_title(), blog_description(), 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( - 'head_contents' => head_contents('Delete page - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'deletepage', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » ' . $post->title, - 'p' => $post, - 'type' => 'staticpage', - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +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( + 'head_contents' => head_contents('Delete page - ' . blog_title(), blog_description(), 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) - { - $file = from($_REQUEST, 'file'); - $destination = from($_GET, 'destination'); - delete_page($file, $destination); - } + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + if ($proper) { + $file = from($_REQUEST, 'file'); + $destination = from($_GET, 'destination'); + delete_page($file, $destination); + } }); // Add blog post -get('/add/post', function(){ - - if(login()) { - - config('views.root', 'system/admin/views'); - - render('add-post',array( - 'head_contents' => head_contents('Add post - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'addpost', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Add post' - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +get('/add/post', function() { + + if (login()) { + + config('views.root', 'system/admin/views'); + + render('add-post', array( + 'head_contents' => head_contents('Add post - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'addpost', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add post' + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } }); // Get submitted blog 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'); - $user = $_SESSION[config("site.url")]['user']; - if($proper && !empty($title) && !empty($tag) && !empty($content)) { - if(!empty($url)) { - add_post($title, $tag, $url, $content, $user); - } - else { - $url = $title; - add_post($title, $tag, $url, $content, $user); - } - } - 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( - 'head_contents' => head_contents('Add post - ' . blog_title(), blog_description(), site_url()), - 'error' => '', - 'postTitle' => $title, - 'postTag' => $tag, - 'postUrl' => $url, - 'postContent' => $content, - 'bodyclass' => 'addpost', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Add post' - )); - } - +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'); + $user = $_SESSION[config("site.url")]['user']; + if ($proper && !empty($title) && !empty($tag) && !empty($content)) { + if (!empty($url)) { + add_post($title, $tag, $url, $content, $user); + } else { + $url = $title; + add_post($title, $tag, $url, $content, $user); + } + } 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( + 'head_contents' => head_contents('Add post - ' . blog_title(), blog_description(), site_url()), + 'error' => '', + 'postTitle' => $title, + 'postTag' => $tag, + 'postUrl' => $url, + 'postContent' => $content, + 'bodyclass' => 'addpost', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add post' + )); + } }); // Add the static page -get('/add/page', function(){ - - if(login()) { - - config('views.root', 'system/admin/views'); - - render('add-page',array( - 'head_contents' => head_contents('Add page - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'addpage', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Add page' - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } +get('/add/page', function() { + + if (login()) { + + config('views.root', 'system/admin/views'); + + render('add-page', array( + 'head_contents' => head_contents('Add page - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'addpage', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add page' + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } }); // Get submitted static 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'); - if($proper && !empty($title) && !empty($content)) { - if(!empty($url)) { - add_page($title, $url, $content); - } - else { - $url = $title; - add_page($title, $url, $content); - } - } - 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( - 'head_contents' => head_contents('Add page - ' . blog_title(), blog_description(), site_url()), - 'error' => '', - 'postTitle' => $title, - 'postUrl' => $url, - 'postContent' => $content, - 'bodyclass' => 'addpage', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Add page' - )); - } - +post('/add/page', function() { + + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + + $title = from($_REQUEST, 'title'); + $url = from($_REQUEST, 'url'); + $content = from($_REQUEST, 'content'); + if ($proper && !empty($title) && !empty($content)) { + if (!empty($url)) { + add_page($title, $url, $content); + } else { + $url = $title; + add_page($title, $url, $content); + } + } 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( + 'head_contents' => head_contents('Add page - ' . blog_title(), blog_description(), site_url()), + 'error' => '', + 'postTitle' => $title, + 'postUrl' => $url, + 'postContent' => $content, + 'bodyclass' => 'addpage', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Add page' + )); + } }); // Import page -get('/admin/import',function(){ - if(login()) { - config('views.root', 'system/admin/views'); - render('import', array( - 'head_contents' => head_contents('Import feed - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'importfeed', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Import feed' - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } - die; +get('/admin/import', function() { + if (login()) { + config('views.root', 'system/admin/views'); + render('import', array( + 'head_contents' => head_contents('Import feed - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'importfeed', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Import feed' + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; }); // Get import post post('/admin/import', function() { - $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); - - $url = from($_REQUEST, 'url'); - $credit = from($_REQUEST, 'credit'); - if(!empty($url)) { - - get_feed($url, $credit, null); - $log = get_feed($url, $credit, null); - - if(!empty($log)) { - - config('views.root', 'system/admin/views'); - - render('import',array( - 'head_contents' => head_contents('Import feed - ' . blog_title(), blog_description(), 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( - 'head_contents' => head_contents('Import feed - ' . blog_title(), blog_description(), site_url()), - 'error' => '', - 'url' => $url, - 'bodyclass' => 'editprofile', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Login' - )); - } - + $proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); + + $url = from($_REQUEST, 'url'); + $credit = from($_REQUEST, 'credit'); + if (!empty($url)) { + + get_feed($url, $credit, null); + $log = get_feed($url, $credit, null); + + if (!empty($log)) { + + config('views.root', 'system/admin/views'); + + render('import', array( + 'head_contents' => head_contents('Import feed - ' . blog_title(), blog_description(), 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( + 'head_contents' => head_contents('Import feed - ' . blog_title(), blog_description(), site_url()), + 'error' => '', + 'url' => $url, + 'bodyclass' => 'editprofile', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Login' + )); + } }); // Backup page -get('/admin/backup',function(){ - if(login()) { - config('views.root', 'system/admin/views'); - render('backup', array( - 'head_contents' => head_contents('Backup content - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'backup', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Backup' - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } - die; +get('/admin/backup', function() { + if (login()) { + config('views.root', 'system/admin/views'); + render('backup', array( + 'head_contents' => head_contents('Backup content - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'backup', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Backup' + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; }); // Create Zip file -get('/admin/backup-start',function(){ - if(login()) { - config('views.root', 'system/admin/views'); - render('backup-start', array( - 'head_contents' => head_contents('Backup content started - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'startbackup', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Backup started' - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } - die; +get('/admin/backup-start', function() { + if (login()) { + config('views.root', 'system/admin/views'); + render('backup-start', array( + 'head_contents' => head_contents('Backup content started - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'startbackup', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Backup started' + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; }); // Delete all cache -get('/admin/clear-cache',function(){ - if(login()) { - config('views.root', 'system/admin/views'); - render('clear-cache', array( - 'head_contents' => head_contents('Clearing cache started - ' . blog_title(), blog_description(), site_url()), - 'bodyclass' => 'clearcache', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Clearing cache started' - )); - } - else { - $login = site_url() . 'login'; - header("location: $login"); - } - die; +get('/admin/clear-cache', function() { + if (login()) { + config('views.root', 'system/admin/views'); + render('clear-cache', array( + 'head_contents' => head_contents('Clearing cache started - ' . blog_title(), blog_description(), site_url()), + 'bodyclass' => 'clearcache', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Clearing cache started' + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } + die; }); // 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_count($tag, 'filename'); - - if(empty($posts) || $page < 1){ - // a non-existing page - not_found(); - } - - render('main',array( - 'head_contents' => head_contents('Posts tagged: ' . $tag .' - ' . blog_title(), 'All posts tagged: ' . $tag . ' on '. blog_title() . '.', site_url() . 'tag/' . $tag), - 'page' => $page, - 'posts' => $posts, - 'bodyclass' => 'intag', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Posts tagged: ' . $tag, - 'pagination' => has_pagination($total, $perpage, $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_count($tag, 'filename'); + + if (empty($posts) || $page < 1) { + // a non-existing page + not_found(); + } + + render('main', array( + 'head_contents' => head_contents('Posts tagged: ' . $tag . ' - ' . blog_title(), 'All posts tagged: ' . $tag . ' on ' . blog_title() . '.', site_url() . 'tag/' . $tag), + 'page' => $page, + 'posts' => $posts, + 'bodyclass' => 'intag', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Posts tagged: ' . $tag, + 'pagination' => has_pagination($total, $perpage, $page) + )); }); // 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, 'filename'); - - 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); - } - else if (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( - 'head_contents' => head_contents('Archive for: ' . $timestamp .' - ' . blog_title(), 'Archive page for: ' . $timestamp . ' on ' . blog_title() . '.', site_url() . 'archive/' . $req), - 'page' => $page, - 'posts' => $posts, - 'bodyclass' => 'inarchive', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Archive for: ' . $timestamp, - 'pagination' => has_pagination($total, $perpage, $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, 'filename'); + + 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); + } else if (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( + 'head_contents' => head_contents('Archive for: ' . $timestamp . ' - ' . blog_title(), 'Archive page for: ' . $timestamp . ' on ' . blog_title() . '.', site_url() . 'archive/' . $req), + 'page' => $page, + 'posts' => $posts, + 'bodyclass' => 'inarchive', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Archive for: ' . $timestamp, + 'pagination' => has_pagination($total, $perpage, $page) + )); }); // 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); - - $total = keyword_count($keyword); - - if(empty($posts) || $page < 1){ - // a non-existing page - render('404-search', null, false); - die; - } - - render('main',array( - 'head_contents' => head_contents('Search results for: ' . $keyword . ' - ' . blog_title(), 'Search results for: ' . $keyword . ' on '. blog_title() . '.', site_url() . 'search/' . $keyword), - 'page' => $page, - 'posts' => $posts, - 'bodyclass' => 'insearch', - 'breadcrumb' => '' .config('breadcrumb.home'). ' » Search results for: ' . $keyword, - 'pagination' => has_pagination($total, $perpage, $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); + + $total = keyword_count($keyword); + + if (empty($posts) || $page < 1) { + // a non-existing page + render('404-search', null, false); + die; + } + + render('main', array( + 'head_contents' => head_contents('Search results for: ' . $keyword . ' - ' . blog_title(), 'Search results for: ' . $keyword . ' on ' . blog_title() . '.', site_url() . 'search/' . $keyword), + 'page' => $page, + 'posts' => $posts, + 'bodyclass' => 'insearch', + 'breadcrumb' => '' . config('breadcrumb.home') . ' » Search results for: ' . $keyword, + 'pagination' => has_pagination($total, $perpage, $page) + )); }); // The JSON API -get('/api/json',function(){ +get('/api/json', function() { - header('Content-type: application/json'); + header('Content-type: application/json'); - // Print the 10 latest posts as JSON - echo generate_json(get_posts(null, 1, config('json.count'))); + // Print the 10 latest posts as JSON + echo generate_json(get_posts(null, 1, config('json.count'))); }); // Show the RSS feed -get('/feed/rss',function(){ +get('/feed/rss', function() { - header('Content-Type: application/rss+xml'); + 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'))); + // 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(){ +get('/feed/opml', function() { + + header('Content-Type: text/xml'); - header('Content-Type: text/xml'); - - // Generate OPML file for the RSS - echo generate_opml(); - + // Generate OPML file for the RSS + echo generate_opml(); }); -get('/admin/update/now/:csrf',function($CSRF){ - - $proper = is_csrf_proper($CSRF); - $updater = new Updater; - if( login() && $proper && $updater->updateAble()) - { - $updater->update(); - config('views.root', 'system/admin/views'); - render('updated-to', array( - 'head_contents' => head_contents('Updated - ' . blog_title(), blog_description(), site_url()), - 'updater' => $updater, - )); - } - else - { - $login = site_url() . 'login'; - header("location: $login"); - } +get('/admin/update/now/:csrf', function($CSRF) { + + $proper = is_csrf_proper($CSRF); + $updater = new Updater; + if (login() && $proper && $updater->updateAble()) { + $updater->update(); + config('views.root', 'system/admin/views'); + render('updated-to', array( + 'head_contents' => head_contents('Updated - ' . blog_title(), blog_description(), site_url()), + 'updater' => $updater, + )); + } else { + $login = site_url() . 'login'; + header("location: $login"); + } }); // If we get here, it means that // nothing has been matched above -get('.*',function(){ - not_found(); +get('.*', function() { + not_found(); }); // Serve the blog -dispatch(); \ No newline at end of file +dispatch(); diff --git a/system/includes/functions.php b/system/includes/functions.php index 23f9aad..716c6e6 100644 --- a/system/includes/functions.php +++ b/system/includes/functions.php @@ -9,960 +9,839 @@ use \Suin\RSSWriter\Channel; use \Suin\RSSWriter\Item; // Get blog post path. Unsorted. Mostly used on widget. -function get_post_unsorted(){ - - static $_unsorted = array(); - - if(empty($_unsorted)){ - - $url = 'cache/index/index-unsorted.txt'; - if (file_exists($url)) { - $_unsorted = unserialize(file_get_contents($url)); - } - else { - rebuilt_cache('all'); - $_unsorted = unserialize(file_get_contents($url)); - } - - if(empty($_unsorted)){ - $_unsorted = glob('content/*/blog/*.md', GLOB_NOSORT); - } - - } - - return $_unsorted; +function get_post_unsorted() { + + static $_unsorted = array(); + + if (empty($_unsorted)) { + + $url = 'cache/index/index-unsorted.txt'; + if(! file_exists($url)) { + rebuilt_cache('all'); + } + $_unsorted = unserialize(file_get_contents($url)); + } + return $_unsorted; } // Get blog post with more info about the path. Sorted by filename. -function get_post_sorted(){ - - static $_sorted = array(); - - $url = 'cache/index/index-sorted.txt'; - if (file_exists($url)) { - $_sorted = unserialize(file_get_contents($url)); - } - else { - rebuilt_cache('all'); - $_sorted = unserialize(file_get_contents($url)); - } - - if(empty($_sorted)){ - - $url = 'cache/index/index-sorted.txt'; - if (file_exists($url)) { - $_sorted = unserialize(file_get_contents($url)); - } - else { - rebuilt_cache('all'); - $_sorted = unserialize(file_get_contents($url)); - } - - if(empty($_sorted)){ - $tmp = array(); - $tmp = glob('content/*/blog/*.md', GLOB_NOSORT); - if (is_array($tmp)) { - foreach($tmp as $file) { - $_sorted[] = pathinfo($file); - } - } - usort($_sorted, "sortfile"); - } - } - - return $_sorted; +function get_post_sorted() { + + static $_sorted = array(); + + if (empty($_sorted)) { + $url = 'cache/index/index-sorted.txt'; + if(! file_exists($url)) { + rebuilt_cache('all'); + } + $_sorted = unserialize(file_get_contents($url)); + } + return $_sorted; } // Get static page path. Unsorted. -function get_static_pages(){ - - static $_page = array(); - - if(empty($_page)){ - $url = 'cache/index/index-page.txt'; - if (file_exists($url)) { - $_page = unserialize(file_get_contents($url)); - } - else { - rebuilt_cache('all'); - $_page = unserialize(file_get_contents($url)); - } - - if(empty($_page)){ - $_page = glob('content/static/*.md', GLOB_NOSORT); - } - } - - return $_page; +function get_static_pages() { + + static $_page = array(); + + if (empty($_page)) { + $url = 'cache/index/index-page.txt'; + if(! file_exists($url)) { + rebuilt_cache('all'); + } + $_page = unserialize(file_get_contents($url)); + } + return $_page; } // Get author bio path. Unsorted. -function get_author_names(){ - - static $_author = array(); - - if(empty($_author)){ - $url = 'cache/index/index-author.txt'; - if (file_exists($url)) { - $_author = unserialize(file_get_contents($url)); - } - else { - rebuilt_cache('all'); - $_author = unserialize(file_get_contents($url)); - } - if(empty($_author)){ - $_author = glob('content/*/author.md', GLOB_NOSORT); - } - } - - return $_author; +function get_author_names() { + + static $_author = array(); + + if (empty($_author)) { + $url = 'cache/index/index-author.txt'; + if(! file_exists($url)) { + rebuilt_cache('all'); + } + $_author = unserialize(file_get_contents($url)); + } + + return $_author; } // Get backup file. -function get_zip_files(){ +function get_zip_files() { - static $_zip = array(); + static $_zip = array(); - if(empty($_zip)){ + if (empty($_zip)) { - // Get the names of all the - // zip files. + // Get the names of all the + // zip files. - $_zip = glob('backup/*.zip'); - } + $_zip = glob('backup/*.zip'); + } - return $_zip; + return $_zip; } // usort function. Sort by filename. function sortfile($a, $b) { - return $a['filename'] == $b['filename'] ? 0 : ( $a['filename'] < $b['filename'] ) ? 1 : -1; + return $a['filename'] == $b['filename'] ? 0 : ( $a['filename'] < $b['filename'] ) ? 1 : -1; } // usort function. Sort by date. function sortdate($a, $b) { - return $a->date == $b->date ? 0 : ( $a->date < $b->date ) ? 1 : -1; + return $a->date == $b->date ? 0 : ( $a->date < $b->date ) ? 1 : -1; } // Rebuilt cache index function rebuilt_cache($type) { - $dir = 'cache/index'; - $posts_cache_sorted = array(); - $posts_cache_unsorted = array(); - $page_cache = array(); - $author_cache = array(); - - if(is_dir($dir) === false) { - mkdir($dir, 0777, true); - } - - if($type === 'posts') { - $posts_cache_unsorted = glob('content/*/blog/*.md', GLOB_NOSORT); - $string = serialize($posts_cache_unsorted); - file_put_contents('cache/index/index-unsorted.txt', print_r($string, true)); - - $tmp= array(); - $tmp = glob('content/*/blog/*.md', GLOB_NOSORT); - - if (is_array($tmp)) { - foreach($tmp as $file) { - $posts_cache_sorted[] = pathinfo($file); - } - } - usort($posts_cache_sorted, "sortfile"); - $string = serialize($posts_cache_sorted); - file_put_contents('cache/index/index-sorted.txt', print_r($string, true)); - - } - - elseif ($type === 'page') { - - $page_cache = glob('content/static/*.md', GLOB_NOSORT); - $string = serialize($page_cache); - file_put_contents('cache/index/index-page.txt', print_r($string, true)); - - } - - elseif ($type === 'author') { - - $author_cache = glob('content/*/author.md', GLOB_NOSORT); - $string = serialize($author_cache); - file_put_contents('cache/index/index-author.txt', print_r($string, true)); - - } - - elseif ($type === 'all') { - - $posts_cache_unsorted = glob('content/*/blog/*.md', GLOB_NOSORT); - $string = serialize($posts_cache_unsorted); - file_put_contents('cache/index/index-unsorted.txt', print_r($string, true)); - - $tmp= array(); - $tmp = glob('content/*/blog/*.md', GLOB_NOSORT); - if (is_array($tmp)) { - foreach($tmp as $file) { - $posts_cache_sorted[] = pathinfo($file); - } - } - usort($posts_cache_sorted, "sortfile"); - $string = serialize($posts_cache_sorted); - file_put_contents('cache/index/index-sorted.txt', print_r($string, true)); - - $page_cache = glob('content/static/*.md', GLOB_NOSORT); - $string = serialize($page_cache); - file_put_contents('cache/index/index-page.txt', print_r($string, true)); - - $author_cache = glob('content/*/author.md', GLOB_NOSORT); - $string = serialize($author_cache); - file_put_contents('cache/index/index-author.txt', print_r($string, true)); - - } + $dir = 'cache/index'; + $posts_cache_sorted = array(); + $posts_cache_unsorted = array(); + $page_cache = array(); + $author_cache = array(); + + if (is_dir($dir) === false) { + mkdir($dir, 0777, true); + } + + if ($type === 'posts') { + $posts_cache_unsorted = glob('content/*/blog/*.md', GLOB_NOSORT); + $string = serialize($posts_cache_unsorted); + file_put_contents('cache/index/index-unsorted.txt', print_r($string, true)); + + $tmp = array(); + $tmp = glob('content/*/blog/*.md', GLOB_NOSORT); + + if (is_array($tmp)) { + foreach ($tmp as $file) { + $posts_cache_sorted[] = pathinfo($file); + } + } + usort($posts_cache_sorted, "sortfile"); + $string = serialize($posts_cache_sorted); + file_put_contents('cache/index/index-sorted.txt', print_r($string, true)); + } elseif ($type === 'page') { + + $page_cache = glob('content/static/*.md', GLOB_NOSORT); + $string = serialize($page_cache); + file_put_contents('cache/index/index-page.txt', print_r($string, true)); + } elseif ($type === 'author') { + + $author_cache = glob('content/*/author.md', GLOB_NOSORT); + $string = serialize($author_cache); + file_put_contents('cache/index/index-author.txt', print_r($string, true)); + } elseif ($type === 'all') { + rebuilt_cache('posts'); + rebuilt_cache('page'); + rebuilt_cache('author'); + } } // Return blog posts. -function get_posts($posts, $page = 1, $perpage = 0){ - - if(empty($posts)) { - $posts = get_post_sorted(); - } - - $tmp = array(); - - // Extract a specific page with results - $posts = array_slice($posts, ($page-1) * $perpage, $perpage); - - foreach($posts as $index => $v){ - - $post = new stdClass; - - $filepath = $v['dirname'] . '/' . $v['basename']; - - // Extract the date - $arr = explode('_', $filepath); - - // Replaced string - $replaced = substr($arr[0], 0,strrpos($arr[0], '/')) . '/'; - - // Author string - $str = explode('/', $replaced); - $author = $str[count($str)-3]; - - // The post author + author url - $post->author = $author; - $post->authorurl = site_url() . 'author/' . $author; - - $dt = str_replace($replaced,'',$arr[0]); - $t = str_replace('-', '', $dt); - $time = new DateTime($t); - $timestamp= $time->format("Y-m-d H:i:s"); - - // The post date - $post->date = strtotime($timestamp); - - // The archive per day - $post->archive = site_url(). 'archive/' . date('Y-m-d', $post->date) ; - - // The post URL - $post->url = site_url().date('Y/m', $post->date).'/'.str_replace('.md','',$arr[2]); - - $tag = array(); - $url = array(); - $bc = array(); - - $t = explode(',', $arr[1]); - foreach($t as $tt) { - $tag[] = array($tt, site_url(). 'tag/' . $tt); - } - - foreach($tag as $a) { - $url[] = ''. $a[0] .''; - $bc[] = ''. $a[0] .''; - } - - $post->tag = implode(', ', $url); - - $post->tagb = implode(' » ', $bc); - - $post->file = $filepath; - - // Get the contents and convert it to HTML - $content = MarkdownExtra::defaultTransform(file_get_contents($filepath)); - - // Extract the title and body - $arr = explode('t-->', $content); - if(isset($arr[1])) { - $title = str_replace('', $content); + if (isset($arr[1])) { + $title = str_replace('', $content); - if(isset($arr[1])) { - $title = str_replace('', $content); + if (isset($arr[1])) { + $title = str_replace('', $content); - if(isset($arr[1])) { - $title = str_replace('', $content); + if (isset($arr[1])) { + $title = str_replace('', $content); - if(isset($arr[1])) { - $title = str_replace('', $content); + if (isset($arr[1])) { + $title = str_replace('
    TitlePublishedTagOperations
    TitlePublishedViewsTagOperations
    title ?> date) ?>views ?> tag ?> Edit Delete