diff --git a/system/admin/admin.php b/system/admin/admin.php index 6ac677e..f05cd1e 100644 --- a/system/admin/admin.php +++ b/system/admin/admin.php @@ -14,6 +14,7 @@ function user($key, $user = null) } } +// Update the user function update_user($userName, $password, $role) { $file = 'config/users/' . $userName . '.ini'; @@ -26,6 +27,7 @@ function update_user($userName, $password, $role) return false; } +// Create user function create_user($userName, $password, $role = "user") { $file = 'config/users/' . $userName . '.ini'; @@ -78,6 +80,30 @@ function old_password_verify($pass, $user_enc, $user_pass) return ($password === $user_pass); } +// Generate csrf token +function generate_csrf_token() +{ + $_SESSION[config("site.url")]['csrf_token'] = sha1(microtime(true) . mt_rand(10000, 90000)); +} + +// Get csrf token +function get_csrf() +{ + if (!isset($_SESSION[config("site.url")]['csrf_token']) || empty($_SESSION[config("site.url")]['csrf_token'])) { + generate_csrf_token(); + } + return $_SESSION[config("site.url")]['csrf_token']; +} + +// Check the csrf token +function is_csrf_proper($csrf_token) +{ + if ($csrf_token == get_csrf()) { + return true; + } + return false; +} + // Clean URLs function remove_accent($str) { @@ -151,7 +177,7 @@ function add_content($title, $tag, $url, $content, $user, $draft, $category, $ty $post_tag = implode(',', array_keys($newtag)); - $posts = get_post_sorted(); + $posts = get_blog_posts(); foreach ($posts as $index => $v) { $arr = explode('_', $v['basename']); if (strtolower($arr[2]) === strtolower($post_url . '.md')) { @@ -856,6 +882,120 @@ function get_feed($feed_url, $credit) } } +// Create Zip files +function Zip($source, $destination, $include_dir = false) +{ + if (!extension_loaded('zip') || !file_exists($source)) { + return false; + } + + if (file_exists($destination)) { + unlink($destination); + } + + $zip = new ZipArchive(); + + if (!$zip->open($destination, ZIPARCHIVE::CREATE)) { + return false; + } + + if (is_dir($source) === true) { + + $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST); + + foreach ($files as $file) { + $file = str_replace('\\', '/', $file); + + // Ignore "." and ".." folders + if (in_array(substr($file, strrpos($file, '/') + 1), array('.', '..'))) + continue; + + if (is_dir($file) === true) { + $zip->addEmptyDir(str_replace($source . '/', '', $file . '/')); + } elseif (is_file($file) === true) { + $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file)); + } + } + } elseif (is_file($source) === true) { + $zip->addFromString(basename($source), file_get_contents($source)); + } + + return $zip->close(); +} + +// Return toolbar +function toolbar() +{ + $user = $_SESSION[config("site.url")]['user']; + $role = user('role', $user); + $base = site_url(); + + echo << +EOF; + echo '
'; +} + +// save the i18n tag +function save_tag_i18n($tag,$tagDisplay) +{ + + $dir = 'content/data/'; + if (!is_dir($dir)) { + mkdir($dir, 0775, true); + } + $filename = "content/data/tags.lang"; + $tags = array(); + $tmp = array(); + $views = array(); + + $tt = explode(',', rtrim($tag, ',')); + $tl = explode(',', rtrim($tagDisplay, ',')); + $tags = array_combine($tt,$tl); + + if (file_exists($filename)) { + $views = unserialize(file_get_contents($filename)); + foreach ($tags as $key => $val) { + if (isset($views[$key])) { + $views[$key] = $val; + } else { + $views[$key] = $val; + } + } + } else { + $views = $tags; + } + + $tmp = serialize($views); + file_put_contents($filename, print_r($tmp, true)); + +} + function clear_post_cache($post_date, $post_tag, $post_url, $filename, $category, $type) { $b = str_replace('/', '#', site_path() . '/'); @@ -975,6 +1115,21 @@ function clear_cache() } } +function valueMaker($value) +{ + if (is_string($value)) + return htmlspecialchars($value); + + if ($value === true) + return "true"; + if ($value === false) + return "false"; + + if ($value == false) + return "0"; + return (string)$value; +} + function replace_key($arr, $oldkey, $newkey) { if(array_key_exists($oldkey, $arr)) { $keys = array_keys($arr); @@ -983,3 +1138,20 @@ function replace_key($arr, $oldkey, $newkey) { } return $arr; } + +// rename category folder +function rename_category_folder($new_name, $old_file) +{ + + $old_name = str_replace('.md', '', basename($old_file)); + $dir = get_category_folder(); + foreach ($dir as $index => $v) { + if (stripos($v, '/' . $old_name . '/') !== false) { + $str = explode('/', $v); + $old_folder = $str[0] . '/' . $str[1] . '/' . $str[2] . '/' . $old_name . '/'; + $new_folder = $str[0] . '/' . $str[1] . '/' . $str[2] . '/' . $new_name . '/'; + rename($old_folder, $new_folder); + } + } + +} diff --git a/system/admin/views/clear-cache.html.php b/system/admin/views/clear-cache.html.php index 21fd08b..3d3803a 100644 --- a/system/admin/views/clear-cache.html.php +++ b/system/admin/views/clear-cache.html.php @@ -1,12 +1,18 @@ \ No newline at end of file diff --git a/system/includes/functions.php b/system/includes/functions.php index eea7398..329f383 100644 --- a/system/includes/functions.php +++ b/system/includes/functions.php @@ -6,35 +6,19 @@ use \Suin\RSSWriter\Feed; 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)) { - 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() +function get_blog_posts() { - static $_sorted = array(); + static $_posts = array(); - if (empty($_sorted)) { - $url = 'cache/index/index-sorted.txt'; + if (empty($_posts)) { + $url = 'cache/index/index-posts.txt'; if (!file_exists($url)) { rebuilt_cache('all'); } - $_sorted = unserialize(file_get_contents($url)); + $_posts = unserialize(file_get_contents($url)); } - return $_sorted; + return $_posts; } // Get static page path. Unsorted. @@ -43,7 +27,7 @@ function get_static_pages() static $_page = array(); if (empty($_page)) { - $url = 'cache/index/index-page.txt'; + $url = 'cache/index/index-pages.txt'; if (!file_exists($url)) { rebuilt_cache('all'); } @@ -58,7 +42,7 @@ function get_static_sub_pages($static = null) static $_sub_page = array(); if (empty($_sub_page)) { - $url = 'cache/index/index-sub-page.txt'; + $url = 'cache/index/index-sub-pages.txt'; if (!file_exists($url)) { rebuilt_cache('all'); } @@ -67,7 +51,7 @@ function get_static_sub_pages($static = null) if ($static != null) { $stringLen = strlen($static); return array_filter($_sub_page, function ($sub_page) use ($static, $stringLen) { - $x = explode("/", $sub_page); + $x = explode("/", $sub_page['dirname']); if ($x[2] == $static) { return true; } @@ -202,8 +186,7 @@ function sortdate($a, $b) function rebuilt_cache($type = null) { $dir = 'cache/index'; - $posts_cache_sorted = array(); - $posts_cache_unsorted = array(); + $posts_cache = array(); $page_cache = array(); $subpage_cache = array(); $author_cache = array(); @@ -219,34 +202,59 @@ function rebuilt_cache($type = null) if (is_array($tmp)) { foreach ($tmp as $file) { if(strpos($file, '/draft/') === false && strpos($file, '/scheduled/') === false) { - $posts_cache_unsorted[] = $file; - $posts_cache_sorted[] = pathinfo($file); + $posts_cache[] = pathinfo($file); } } } - $string_unsorted = serialize($posts_cache_unsorted); - file_put_contents('cache/index/index-unsorted.txt', print_r($string_unsorted, true)); - usort($posts_cache_sorted, "sortfile"); - $string_sorted = serialize($posts_cache_sorted); - file_put_contents('cache/index/index-sorted.txt', print_r($string_sorted, true)); + usort($posts_cache, "sortfile"); + $string_posts = serialize($posts_cache); + file_put_contents('cache/index/index-posts.txt', print_r($string_posts, true)); // Rebuilt static page index - $page_cache = glob('content/static/*.md', GLOB_NOSORT); + $ptmp = array(); + $ptmp = glob('content/static/*.md', GLOB_NOSORT); + if (is_array($ptmp)) { + foreach ($ptmp as $file) { + $page_cache[] = pathinfo($file); + } + } + usort($page_cache, "sortfile"); $page_string = serialize($page_cache); - file_put_contents('cache/index/index-page.txt', print_r($page_string, true)); + file_put_contents('cache/index/index-pages.txt', print_r($page_string, true)); // Rebuilt subpage index - $subpage_cache = glob('content/static/*/*.md', GLOB_NOSORT); + $sptmp = array(); + $sptmp = glob('content/static/*/*.md', GLOB_NOSORT); + if (is_array($sptmp)) { + foreach ($sptmp as $file) { + $subpage_cache[] = pathinfo($file); + } + } + usort($subpage_cache, "sortfile"); $subpage_string = serialize($subpage_cache); - file_put_contents('cache/index/index-sub-page.txt', print_r($subpage_string, true)); + file_put_contents('cache/index/index-sub-pages.txt', print_r($subpage_string, true)); // Rebuilt user profile index - $author_cache = glob('content/*/author.md', GLOB_NOSORT); + $atmp = array(); + $atmp = glob('content/*/author.md', GLOB_NOSORT); + if (is_array($atmp)) { + foreach ($atmp as $file) { + $author_cache[] = pathinfo($file); + } + } + usort($author_cache, "sortfile"); $author_string = serialize($author_cache); file_put_contents('cache/index/index-author.txt', print_r($author_string, true)); // Rebuilt category index - $category_cache = glob('content/data/category/*.md', GLOB_NOSORT); + $ctmp = array(); + $ctmp = glob('content/data/category/*.md', GLOB_NOSORT); + if (is_array($ctmp)) { + foreach ($ctmp as $file) { + $category_cache[] = pathinfo($file); + } + } + usort($category_cache, "sortfile"); $category_string = serialize($category_cache); file_put_contents('cache/index/index-category.txt', print_r($category_string, true)); @@ -273,7 +281,7 @@ function rebuilt_cache($type = null) function get_posts($posts, $page = 1, $perpage = 0) { if (empty($posts)) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); } $tmp = array(); @@ -430,7 +438,7 @@ function get_posts($posts, $page = 1, $perpage = 0) // Find post by year, month and name, previous, and next. function find_post($year, $month, $name) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); foreach ($posts as $index => $v) { $arr = explode('_', $v['basename']); @@ -562,7 +570,7 @@ function find_scheduled($year, $month, $name) // Return category page. function get_category($category, $page, $perpage, $random = null) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); if ($random === true) { shuffle($posts); @@ -611,12 +619,14 @@ function get_category_info($category) if (!empty($posts)) { foreach ($posts as $index => $v) { - if (stripos($v, $category . '.md') !== false) { + if (stripos($v['basename'], $category . '.md') !== false) { $desc = new stdClass; // The filename - $url= pathinfo($v, PATHINFO_FILENAME); + $filename = $v['dirname'] . '/' . $v['basename']; + + $url= $v['filename']; $desc->url = site_url() . 'category/' . $url; @@ -626,10 +636,10 @@ function get_category_info($category) $desc->count = get_categorycount($url); - $desc->file = $v; + $desc->file = $filename; // Get the contents and convert it to HTML - $content = file_get_contents($v); + $content = file_get_contents($desc->file); // Extract the title and body $desc->title = get_content_tag('t', $content, $category); @@ -710,7 +720,7 @@ function category_list($custom = null) { // Return type page. function get_type($type, $page, $perpage) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -742,7 +752,7 @@ function get_type($type, $page, $perpage) // Return tag page. function get_tag($tag, $page, $perpage, $random = null) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); if ($random === true) { shuffle($posts); @@ -776,7 +786,7 @@ function get_tag($tag, $page, $perpage, $random = null) // Return archive page. function get_archive($req, $page, $perpage) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -797,7 +807,7 @@ function get_archive($req, $page, $perpage) // Return posts list on profile. function get_profile_posts($name, $page, $perpage) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -879,7 +889,7 @@ function get_author($name) $author = new stdClass; // dirname string - $dirname = dirname($v) . '/'; + $dirname = $v['dirname']; // Author string $str = explode('/', $dirname); @@ -887,14 +897,14 @@ function get_author($name) if ($name === $profile) { // Profile URL - $url= pathinfo($v, PATHINFO_BASENAME); + $filename = $v['dirname'] . '/' . $v['basename']; - $author->file = $url; + $author->file = $filename; $author->url = site_url() . 'author/' . $profile; // Get the contents and convert it to HTML - $content = file_get_contents($v); + $content = file_get_contents($author->file); // Extract the title and body $author->name = get_content_tag('t', $content, $author); @@ -938,22 +948,22 @@ function get_static_post($static) if (!empty($posts)) { foreach ($posts as $index => $v) { - if (stripos($v, $static . '.md') !== false) { + if (stripos($v['basename'], $static . '.md') !== false) { $post = new stdClass; // The static page URL - $url= pathinfo($v, PATHINFO_FILENAME); + $url= $v['filename']; $post->url = site_url() . $url; - $post->file = $v; - $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($v))); + $post->file = $v['dirname'] . '/' . $v['basename']; + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($post->file))); $post->md = $url; // Get the contents and convert it to HTML - $content = file_get_contents($v); + $content = file_get_contents($post->file); // Extract the title and body $post->title = get_content_tag('t', $content, 'Untitled static page: ' . format_date($post->lastMod, 'l, j F Y, H:i')); @@ -988,23 +998,23 @@ function get_static_sub_post($static, $sub_static) if (!empty($posts)) { foreach ($posts as $index => $v) { - if (stripos($v, $sub_static . '.md') !== false) { + if (stripos($v['basename'], $sub_static . '.md') !== false) { $post = new stdClass; // The static page URL - $url= pathinfo($v, PATHINFO_FILENAME); + $url= $v['filename']; $post->url = site_url() . $static . "/" . $url; - $post->file = $v; - $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($v))); + $post->file = $v['dirname'] . '/' . $v['basename']; + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($post->file))); $post->md = $url; $post->parent = $static; // Get the contents and convert it to HTML - $content = file_get_contents($v); + $content = file_get_contents($post->file); // Extract the title and body $post->title = get_content_tag('t', $content, 'Untitled static subpage: ' . format_date($post->lastMod, 'l, j F Y, H:i')); @@ -1052,7 +1062,7 @@ function get_frontpage() // Return search page. function get_keyword($keyword, $page, $perpage) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -1122,7 +1132,7 @@ function get_related($tag, $custom = null, $count = null) // Return post count. Matching $var. function get_count($var) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -1140,7 +1150,7 @@ function get_count($var) // Return category count. Matching $var function get_categorycount($var) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -1158,7 +1168,7 @@ function get_categorycount($var) // Return type count. Matching $var function get_typecount($var) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -1213,7 +1223,7 @@ function get_scheduledcount($var) // Return tag count. Matching $var function get_tagcount($var) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -1233,7 +1243,7 @@ function get_tagcount($var) // Return search result count function keyword_count($keyword) { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -1449,7 +1459,7 @@ function archive_list($custom = null) mkdir($dir, 0775, true); } - $posts = get_post_unsorted(); + $posts = get_blog_posts(); $by_year = array(); $col = array(); @@ -1458,7 +1468,7 @@ function archive_list($custom = null) if (!file_exists($filename)) { foreach ($posts as $index => $v) { - $arr = explode('_', pathinfo($v, PATHINFO_FILENAME)); + $arr = explode('_', $v['filename']); $date = $arr[0]; $data = explode('-', $date); @@ -1556,7 +1566,7 @@ function tag_cloud($custom = null) mkdir($dir, 0775, true); } - $posts = get_post_unsorted(); + $posts = get_blog_posts(); $tags = array(); $tagcloud_count = config('tagcloud.count'); @@ -1568,7 +1578,7 @@ function tag_cloud($custom = null) if (!file_exists($filename)) { foreach ($posts as $index => $v) { - $arr = explode('_', $v); + $arr = explode('_', $v['filename']); $data = rtrim($arr[1], ','); $mtag = explode(',', $data); foreach ($mtag as $etag) { @@ -1699,7 +1709,7 @@ function has_next($next) function has_pagination($total, $perpage, $page = 1) { if (!$total) { - $total = count(get_post_unsorted()); + $total = count(get_blog_posts()); } $totalPage = ceil($total / $perpage); $number = i18n('Page') . ' ' . $page . ' ' . i18n('of') . ' ' . $totalPage; @@ -1965,15 +1975,6 @@ function tab($p) } } -// Use base64 encode image to speed up page load time. -function base64_encode_image($filename = string, $filetype = string) -{ - if ($filename) { - $imgbinary = fread(fopen($filename, "r"), filesize($filename)); - return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary); - } -} - // Social links. Deprecated function social($imgDir = null) { @@ -2317,10 +2318,11 @@ function get_menu($custom) $i++; // Filename string - $filename= pathinfo($v, PATHINFO_FILENAME); + $filename= $v['filename']; $url = site_url() . $filename; + $parent_file = $v['dirname'] . '/' . $v['basename']; - $title = get_title_from_file($v); + $title = get_title_from_file($parent_file); if ($req == site_path() . "/" . $filename || stripos($req, site_path() . "/" . $filename) !== false) { $active = ' active'; @@ -2346,12 +2348,13 @@ function get_menu($custom) $classSub .= " last"; } - $baseSub= pathinfo($sp, PATHINFO_FILENAME); + $baseSub= $sp['filename']; + $child_file = $sp['dirname'] . '/' . $sp['basename']; if ($req == site_path() . "/" . $filename . "/" . $baseSub) { $classSub .= ' active'; } $urlSub = $url . "/" . $baseSub; - echo '
  • ' . get_title_from_file($sp) . '
  • '; + echo '
  • ' . get_title_from_file($child_file) . '
  • '; $iSub++; } echo ''; @@ -2476,7 +2479,7 @@ function generate_rss($posts) // Return post, archive url for sitemap function sitemap_post_path() { - $posts = get_post_sorted(); + $posts = get_blog_posts(); $tmp = array(); @@ -2543,9 +2546,10 @@ function sitemap_page_path() $post = new stdClass; // Filename - $filename= pathinfo($v, PATHINFO_FILENAME); + $filename= $v['filename']; + $file = $v['dirname'] . '/' . $v['basename']; $post->url = site_url() . $filename; - $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($v))); + $post->lastMod = strtotime(date('Y-m-d H:i:s', filemtime($file))); $tmp[] = $post; } @@ -2655,7 +2659,7 @@ function generate_sitemap($str) $posts = array(); if ($priority !== 'false') { - $posts = get_post_unsorted(); + $posts = get_blog_posts(); } $tags = array(); @@ -2665,7 +2669,7 @@ function generate_sitemap($str) if($posts) { foreach ($posts as $index => $v) { - $arr = explode('_', $v); + $arr = explode('_', $v['filename']); $data = $arr[1]; $mtag = explode(',', $data); foreach ($mtag as $etag) { @@ -2764,7 +2768,7 @@ function generate_sitemap($str) $posts = array(); if ($priority !== 'false') { - $posts = get_post_unsorted(); + $posts = get_blog_posts(); } $cats = array(); @@ -2774,7 +2778,7 @@ function generate_sitemap($str) if($posts) { foreach ($posts as $index => $v) { - $dirname = dirname($v) . '/'; + $dirname = $v['dirname'] . '/'; $str = explode('/', $dirname); $cats[] = $str[3]; @@ -2802,7 +2806,7 @@ function generate_sitemap($str) $posts = array(); if ($priority !== 'false') { - $posts = get_post_unsorted(); + $posts = get_blog_posts(); } $cats = array(); @@ -2812,7 +2816,7 @@ function generate_sitemap($str) if($posts) { foreach ($posts as $index => $v) { - $dirname = dirname($v) . '/'; + $dirname = $v['dirname'] . '/'; $str = explode('/', $dirname); $types[] = $str[4]; } @@ -2868,47 +2872,6 @@ function generate_json($posts) return json_encode($posts); } -// Create Zip files -function Zip($source, $destination, $include_dir = false) -{ - if (!extension_loaded('zip') || !file_exists($source)) { - return false; - } - - if (file_exists($destination)) { - unlink($destination); - } - - $zip = new ZipArchive(); - - if (!$zip->open($destination, ZIPARCHIVE::CREATE)) { - return false; - } - - if (is_dir($source) === true) { - - $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST); - - foreach ($files as $file) { - $file = str_replace('\\', '/', $file); - - // Ignore "." and ".." folders - if (in_array(substr($file, strrpos($file, '/') + 1), array('.', '..'))) - continue; - - if (is_dir($file) === true) { - $zip->addEmptyDir(str_replace($source . '/', '', $file . '/')); - } elseif (is_file($file) === true) { - $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file)); - } - } - } elseif (is_file($source) === true) { - $zip->addFromString(basename($source), file_get_contents($source)); - } - - return $zip->close(); -} - // TRUE if the current page is an index page like frontpage, tag index, archive index and search index. function is_index() { @@ -2993,44 +2956,6 @@ function head_contents() return $output; } -// Return toolbar -function toolbar() -{ - $user = $_SESSION[config("site.url")]['user']; - $role = user('role', $user); - $base = site_url(); - - echo << -EOF; - echo '
    '; -} - // File cache function file_cache($request) { @@ -3056,30 +2981,6 @@ function file_cache($request) } } -// Generate csrf token -function generate_csrf_token() -{ - $_SESSION[config("site.url")]['csrf_token'] = sha1(microtime(true) . mt_rand(10000, 90000)); -} - -// Get csrf token -function get_csrf() -{ - if (!isset($_SESSION[config("site.url")]['csrf_token']) || empty($_SESSION[config("site.url")]['csrf_token'])) { - generate_csrf_token(); - } - return $_SESSION[config("site.url")]['csrf_token']; -} - -// Check the csrf token -function is_csrf_proper($csrf_token) -{ - if ($csrf_token == get_csrf()) { - return true; - } - return false; -} - // Add page views count function add_view($page) { @@ -3205,41 +3106,6 @@ function shorten($string = null, $char = null) } -// save the i18n tag -function save_tag_i18n($tag,$tagDisplay) -{ - - $dir = 'content/data/'; - if (!is_dir($dir)) { - mkdir($dir, 0775, true); - } - $filename = "content/data/tags.lang"; - $tags = array(); - $tmp = array(); - $views = array(); - - $tt = explode(',', rtrim($tag, ',')); - $tl = explode(',', rtrim($tagDisplay, ',')); - $tags = array_combine($tt,$tl); - - if (file_exists($filename)) { - $views = unserialize(file_get_contents($filename)); - foreach ($tags as $key => $val) { - if (isset($views[$key])) { - $views[$key] = $val; - } else { - $views[$key] = $val; - } - } - } else { - $views = $tags; - } - - $tmp = serialize($views); - file_put_contents($filename, print_r($tmp, true)); - -} - // translate tag to i18n function tag_i18n($tag) { @@ -3283,23 +3149,7 @@ function safe_tag($string) } -// rename category folder -function rename_category_folder($new_name, $old_file) -{ - - $old_name = str_replace('.md', '', basename($old_file)); - $dir = get_category_folder(); - foreach ($dir as $index => $v) { - if (stripos($v, '/' . $old_name . '/') !== false) { - $str = explode('/', $v); - $old_folder = $str[0] . '/' . $str[1] . '/' . $str[2] . '/' . $old_name . '/'; - $new_folder = $str[0] . '/' . $str[1] . '/' . $str[2] . '/' . $new_name . '/'; - rename($old_folder, $new_folder); - } - } - -} - +// Replace href function replace_href($string, $tag, $class, $url) { @@ -3322,6 +3172,7 @@ function replace_href($string, $tag, $class, $url) } +// Set the language function get_language() { @@ -3340,6 +3191,7 @@ function get_language() } +// Format the date function format_date($date, $dateFormat = null) { if (empty($dateFormat)) { @@ -3355,21 +3207,7 @@ function format_date($date, $dateFormat = null) } } -function valueMaker($value) -{ - if (is_string($value)) - return htmlspecialchars($value); - - if ($value === true) - return "true"; - if ($value === false) - return "false"; - - if ($value == false) - return "0"; - return (string)$value; -} - +// Publish scheduled post function publish_scheduled() { $posts = get_scheduled_posts();