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 === 'subpage') { $page_cache = glob('content/static/*/*.md', GLOB_NOSORT); $string = serialize($page_cache); file_put_contents('cache/index/index-sub-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('subpage'); 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', $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('