Browse Source

Migrate old content

pull/255/head
Danang Probo Sayekti 10 years ago
parent
commit
6745806b41
4 changed files with 174 additions and 87 deletions
  1. +3
    -3
      system/admin/admin.php
  2. +1
    -0
      system/admin/views/updated-to.html.php
  3. +8
    -9
      system/htmly.php
  4. +162
    -75
      system/includes/functions.php

+ 3
- 3
system/admin/admin.php View File

@ -1069,7 +1069,7 @@ function edit_category($title, $url, $content, $oldfile, $destination = null, $d
} }
$post_content = '<!--t ' . $post_title . ' t-->' . $post_description . "\n\n" . $content; $post_content = '<!--t ' . $post_title . ' t-->' . $post_description . "\n\n" . $content;
if (!empty($post_title) && !empty($post_url) && !empty($post_content)) { if (!empty($post_title) && !empty($post_url) && !empty($post_content)) {
if (get_magic_quotes_gpc()) { if (get_magic_quotes_gpc()) {
$post_content = stripslashes($post_content); $post_content = stripslashes($post_content);
} }
@ -1080,8 +1080,8 @@ function edit_category($title, $url, $content, $oldfile, $destination = null, $d
rename($oldfile, $newfile); rename($oldfile, $newfile);
file_put_contents($newfile, print_r($post_content, true)); file_put_contents($newfile, print_r($post_content, true));
} }
rename_category_folder($post_url, $oldfile);
rename_category_folder($post_url, $oldfile);
rebuilt_cache('all'); rebuilt_cache('all');
if ($destination == 'post') { if ($destination == 'post') {


+ 1
- 0
system/admin/views/updated-to.html.php View File

@ -6,4 +6,5 @@
<?php <?php
require_once "system/upgrade/run.php"; require_once "system/upgrade/run.php";
migrate_old_content();
?> ?>

+ 8
- 9
system/htmly.php View File

@ -1304,12 +1304,12 @@ get('/category/:category', function ($category) {
$perpage = config('category.perpage'); $perpage = config('category.perpage');
$posts = get_category($category, $page, $perpage); $posts = get_category($category, $page, $perpage);
$desc = get_category_info($category);
if(strtolower($category) !== 'uncategorized') {
$desc = $desc[0];
}
$desc = get_category_info($category);
if(strtolower($category) !== 'uncategorized') {
$desc = $desc[0];
}
$total = get_categorycount($category); $total = get_categorycount($category);
@ -1323,7 +1323,7 @@ get('/category/:category', function ($category) {
'canonical' => $desc->url, 'canonical' => $desc->url,
'page' => $page, 'page' => $page,
'posts' => $posts, 'posts' => $posts,
'category' => $desc,
'category' => $desc,
'bodyclass' => 'incategory', 'bodyclass' => 'incategory',
'breadcrumb' => '<a href="' . site_url() . '">' . config('breadcrumb.home') . '</a> &#187; ' . $desc->title, 'breadcrumb' => '<a href="' . site_url() . '">' . config('breadcrumb.home') . '</a> &#187; ' . $desc->title,
'pagination' => has_pagination($total, $perpage, $page), 'pagination' => has_pagination($total, $perpage, $page),
@ -1441,8 +1441,7 @@ get('/category/:category/delete', function ($category) {
}); });
// Get deleted category data // Get deleted category data
post('/category/:category/delete', function ()
{
post('/category/:category/delete', function () {
$proper = is_csrf_proper(from($_REQUEST, 'csrf_token')); $proper = is_csrf_proper(from($_REQUEST, 'csrf_token'));
if ($proper && login()) { if ($proper && login()) {
$file = from($_REQUEST, 'file'); $file = from($_REQUEST, 'file');


+ 162
- 75
system/includes/functions.php View File

@ -125,7 +125,7 @@ function get_draft_posts()
return $_draft; return $_draft;
} }
// Get user draft.
// Get category info files.
function get_category_files() function get_category_files()
{ {
static $_desc = array(); static $_desc = array();
@ -141,7 +141,7 @@ function get_category_files()
return $_desc; return $_desc;
} }
// Get user draft.
// Get category folder.
function get_category_folder() function get_category_folder()
{ {
static $_dfolder = array(); static $_dfolder = array();
@ -183,13 +183,13 @@ function rebuilt_cache($type)
} }
if ($type === 'posts') { if ($type === 'posts') {
$tmpu = array();
$tmpu = array();
$tmpu = glob('content/*/blog/*/*/*.md', GLOB_NOSORT); $tmpu = glob('content/*/blog/*/*/*.md', GLOB_NOSORT);
if (is_array($tmpu)) {
if (is_array($tmpu)) {
foreach ($tmpu as $fileu) { foreach ($tmpu as $fileu) {
if(strpos($fileu, 'draft') === false) {
if(strpos($fileu, 'draft') === false) {
$posts_cache_unsorted[] = $fileu; $posts_cache_unsorted[] = $fileu;
}
}
} }
} }
$string = serialize($posts_cache_unsorted); $string = serialize($posts_cache_unsorted);
@ -200,9 +200,9 @@ function rebuilt_cache($type)
if (is_array($tmp)) { if (is_array($tmp)) {
foreach ($tmp as $file) { foreach ($tmp as $file) {
if(strpos($file, 'draft') === false) {
if(strpos($file, 'draft') === false) {
$posts_cache_sorted[] = pathinfo($file); $posts_cache_sorted[] = pathinfo($file);
}
}
} }
} }
usort($posts_cache_sorted, "sortfile"); usort($posts_cache_sorted, "sortfile");
@ -263,20 +263,20 @@ function get_posts($posts, $page = 1, $perpage = 0)
// Author string // Author string
$str = explode('/', $replaced); $str = explode('/', $replaced);
$author = $str[count($str) - 5]; $author = $str[count($str) - 5];
if($str[count($str) - 3] == 'uncategorized') {
$category = default_category();
$post->category = '<a href="' . $category->url . '">' . $category->title . '</a>';
} else {
$category = get_category_info($str[count($str) - 3]);
$post->category = '<a href="' . $category[0]->url . '">' . $category[0]->title . '</a>';
}
$type = $str[count($str) - 2];
if($str[count($str) - 3] == 'uncategorized') {
$category = default_category();
$post->category = '<a href="' . $category->url . '">' . $category->title . '</a>';
} else {
$category = get_category_info($str[count($str) - 3]);
$post->category = '<a href="' . $category[0]->url . '">' . $category[0]->title . '</a>';
}
$type = $str[count($str) - 2];
// The post author + author url // The post author + author url
$post->author = $author; $post->author = $author;
$post->authorUrl = site_url() . 'author/' . $author; $post->authorUrl = site_url() . 'author/' . $author;
$post->type = $type;
$post->type = $type;
$dt = str_replace($replaced, '', $arr[0]); $dt = str_replace($replaced, '', $arr[0]);
$t = str_replace('-', '', $dt); $t = str_replace('-', '', $dt);
@ -310,7 +310,7 @@ function get_posts($posts, $page = 1, $perpage = 0)
$tag = array(); $tag = array();
$url = array(); $url = array();
$bc = array(); $bc = array();
$rel = array();
$rel = array();
$tagt = get_content_tag('tag', $content); $tagt = get_content_tag('tag', $content);
$t = explode(',', rtrim($arr[1], ',')); $t = explode(',', rtrim($arr[1], ','));
@ -339,8 +339,8 @@ function get_posts($posts, $page = 1, $perpage = 0)
$post->tag = implode(' ', $url); $post->tag = implode(' ', $url);
$post->tagb = implode(' » ', $bc); $post->tagb = implode(' » ', $bc);
$post->related = rtrim($arr[1], ',');
$post->related = rtrim($arr[1], ',');
// Get the contents and convert it to HTML // Get the contents and convert it to HTML
$post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content));
@ -453,7 +453,7 @@ function get_category($category, $page, $perpage)
$tmp = array(); $tmp = array();
foreach ($posts as $index => $v) { foreach ($posts as $index => $v) {
$filepath = $v['dirname'] . '/' . $v['basename']; $filepath = $v['dirname'] . '/' . $v['basename'];
// Extract the date // Extract the date
@ -464,11 +464,11 @@ function get_category($category, $page, $perpage)
// Author string // Author string
$str = explode('/', $replaced); $str = explode('/', $replaced);
$cat = $str[count($str) - 3];
if (strtolower($category) === strtolower($cat)) {
$tmp[] = $v;
}
$cat = $str[count($str) - 3];
if (strtolower($category) === strtolower($cat)) {
$tmp[] = $v;
}
} }
if (empty($tmp)) { if (empty($tmp)) {
@ -480,7 +480,7 @@ function get_category($category, $page, $perpage)
return $tmp = get_posts($tmp, $page, $perpage); return $tmp = get_posts($tmp, $page, $perpage);
} }
// Return category data.
// Return category info.
function get_category_info($category) function get_category_info($category)
{ {
$posts = get_category_files(); $posts = get_category_files();
@ -499,10 +499,10 @@ function get_category_info($category)
// The static page URL // The static page URL
$url= str_replace($replaced, '', $v); $url= str_replace($replaced, '', $v);
$desc->url = site_url() . 'category/' . str_replace('.md', '', $url); $desc->url = site_url() . 'category/' . str_replace('.md', '', $url);
$desc->md = str_replace('.md', '', $url);
$desc->md = str_replace('.md', '', $url);
$desc->file = $v; $desc->file = $v;
@ -519,11 +519,11 @@ function get_category_info($category)
} }
} }
} }
if (strtolower($category) == 'uncategorized') {
return default_category();
}
if (strtolower($category) == 'uncategorized') {
return default_category();
}
return $tmp; return $tmp;
} }
@ -882,7 +882,7 @@ function get_categorycount($var)
$tmp = array(); $tmp = array();
foreach ($posts as $index => $v) { foreach ($posts as $index => $v) {
$filepath = $v['dirname'] . '/' . $v['basename']; $filepath = $v['dirname'] . '/' . $v['basename'];
// Extract the date // Extract the date
@ -893,8 +893,8 @@ function get_categorycount($var)
// Author string // Author string
$str = explode('/', $replaced); $str = explode('/', $replaced);
$cat = $str[count($str) - 3];
$cat = $str[count($str) - 3];
if (stripos($cat, "$var") !== false) { if (stripos($cat, "$var") !== false) {
$tmp[] = $v; $tmp[] = $v;
} }
@ -911,7 +911,7 @@ function get_draftcount($var)
$tmp = array(); $tmp = array();
foreach ($posts as $index => $v) { foreach ($posts as $index => $v) {
$filepath = $v['dirname'] . '/' . $v['basename']; $filepath = $v['dirname'] . '/' . $v['basename'];
// Extract the date // Extract the date
@ -922,8 +922,8 @@ function get_draftcount($var)
// Author string // Author string
$str = explode('/', $replaced); $str = explode('/', $replaced);
$cat = $str[count($str) - 3];
$cat = $str[count($str) - 3];
if (stripos($cat, "$var") !== false) { if (stripos($cat, "$var") !== false) {
$tmp[] = $v; $tmp[] = $v;
} }
@ -1037,7 +1037,7 @@ function popular_posts($custom = null, $count = null)
if (config('views.counter') == 'true') { if (config('views.counter') == 'true') {
if (empty($_views)) { if (empty($_views)) {
$filename = 'content/views.json';
$filename = 'content/data/views.json';
if (file_exists($filename)) { if (file_exists($filename)) {
$_views = json_decode(file_get_contents($filename), true); $_views = json_decode(file_get_contents($filename), true);
if(is_array($_views)) { if(is_array($_views)) {
@ -2400,7 +2400,7 @@ function is_csrf_proper($csrf_token)
// Add page views count // Add page views count
function add_view($page) function add_view($page)
{ {
$filename = "content/views.json";
$filename = "content/data/views.json";
$views = array(); $views = array();
if (file_exists($filename)) { if (file_exists($filename)) {
$views = json_decode(file_get_contents($filename), true); $views = json_decode(file_get_contents($filename), true);
@ -2419,7 +2419,7 @@ function get_views($page)
static $_views = array(); static $_views = array();
if (empty($_views)) { if (empty($_views)) {
$filename = "content/views.json";
$filename = "content/data/views.json";
if (file_exists($filename)) { if (file_exists($filename)) {
$_views = json_decode(file_get_contents($filename), true); $_views = json_decode(file_get_contents($filename), true);
} }
@ -2511,7 +2511,7 @@ function shorten($string = null, $char = null)
// save the i18n tag // save the i18n tag
function save_tag_i18n($tag,$tagDisplay) function save_tag_i18n($tag,$tagDisplay)
{ {
$filename = "content/tags.lang";
$filename = "content/data/tags.lang";
$tags = array(); $tags = array();
$tmp = array(); $tmp = array();
$views = array(); $views = array();
@ -2544,7 +2544,7 @@ function tag_i18n($tag)
static $tags = array(); static $tags = array();
if (empty($tags)) { if (empty($tags)) {
$filename = "content/tags.lang";
$filename = "content/data/tags.lang";
if (file_exists($filename)) { if (file_exists($filename)) {
$tags = unserialize(file_get_contents($filename)); $tags = unserialize(file_get_contents($filename));
} }
@ -2568,44 +2568,131 @@ function safe_html($string)
// return tag safe string // return tag safe string
function safe_tag($string) function safe_tag($string)
{ {
$tags = array();
$string = preg_replace('/[\s-]+/', ' ', $string);
$string = explode(',', $string);
$tags = array();
$string = preg_replace('/[\s-]+/', ' ', $string);
$string = explode(',', $string);
$string = array_map('trim', $string); $string = array_map('trim', $string);
foreach ($string as $str) { foreach ($string as $str) {
$tags[] = $str; $tags[] = $str;
} }
$string = implode(',', $tags);
$string = preg_replace('/[\s_]/', '-', $string);
return $string;
$string = implode(',', $tags);
$string = preg_replace('/[\s_]/', '-', $string);
return $string;
} }
// rename category folder // rename category folder
function rename_category_folder($string, $old_url) function rename_category_folder($string, $old_url)
{ {
$old = str_replace('.md', '/', $old_url);
$url = substr($old, 0, strrpos($old, '/'));
$ostr = explode('/', $url);
$url = '/blog/' . $ostr[count($ostr) - 1];
$old = str_replace('.md', '/', $old_url);
$url = substr($old, 0, strrpos($old, '/'));
$ostr = explode('/', $url);
$url = '/blog/' . $ostr[count($ostr) - 1];
$dir = get_category_folder(); $dir = get_category_folder();
$file = array();
$file = array();
foreach ($dir as $index => $v) {
if (stripos($v, $url) !== false) {
$str = explode('/', $v);
$n = $str[count($ostr) - 4] . '/' . $str[count($ostr) - 3] .'/'. $str[count($ostr) - 2] .'/'. $string . '/';
$file[] = array($v, $n);
}
}
foreach ($file as $f) {
if(is_dir($f[0])) {
rename($f[0], $f[1]);
}
}
foreach ($dir as $index => $v) {
if (stripos($v, $url) !== false) {
$str = explode('/', $v);
$n = $str[count($ostr) - 4] . '/' . $str[count($ostr) - 3] .'/'. $str[count($ostr) - 2] .'/'. $string . '/';
$file[] = array($v, $n);
}
}
foreach ($file as $f) {
if(is_dir($f[0])) {
rename($f[0], $f[1]);
}
}
}
// Migrate old content.
function migrate_old_content()
{
$content = array();
$tmp = array();
$files = array();
$tmp = glob('content/*/blog/*.md', GLOB_NOSORT);
if (is_array($tmp)) {
foreach ($tmp as $file) {
$content[] = $file;
}
}
if(!empty($content)) {
foreach ($content as $c => $v) {
$arr = explode('/', $v);
$string = file_get_contents($v);
$image = get_content_tag('image', $string);
$video = get_youtube_id(get_content_tag('video', $string));
$audio = get_content_tag('audio', $string);
$link = get_content_tag('link', $string);
$quote = get_content_tag('quote', $string);
if (!empty($image)) {
$files[] = array($v, 'content/' . $arr[1] . '/blog/uncategorized/image/' . $arr[3]);
$dir = 'content/' . $arr[1] . '/blog/uncategorized/image/';
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
}
if (!empty($video)) {
$files[] = array($v, 'content/' . $arr[1] . '/blog/uncategorized/video/' . $arr[3]);
$dir = 'content/' . $arr[1] . '/blog/uncategorized/video/';
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
}
if (!empty($audio)) {
$files[] = array($v, 'content/' . $arr[1] . '/blog/uncategorized/audio/' . $arr[3]);
$dir = 'content/' . $arr[1] . '/blog/uncategorized/audio/';
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
}
if (!empty($link)) {
$files[] = array($v, 'content/' . $arr[1] . '/blog/uncategorized/link/' . $arr[3]);
$dir = 'content/' . $arr[1] . '/blog/uncategorized/link/';
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
}
if (!empty($quote)) {
$files[] = array($v, 'content/' . $arr[1] . '/blog/uncategorized/quote/' . $arr[3]);
$dir = 'content/' . $arr[1] . '/blog/uncategorized/quote/';
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
}
if (empty($image) && empty($video) && empty($audio) && empty($link) && empty($quote)) {
$files[] = array($v, 'content/' . $arr[1] . '/blog/uncategorized/post/' . $arr[3]);
$dir = 'content/' . $arr[1] . '/blog/uncategorized/post/';
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
}
}
foreach ($files as $f) {
rename($f[0], $f[1]);
}
}
if (file_exists('content/tags.lang')) {
$dir = 'content/data/';
if (!is_dir($dir)) {
mkdir($dir, 0775, true);
}
rename('content/tags.lang', 'content/data/tags.lang');
unlink('content/views.json');
}
rebuilt_cache('all');
} }

Loading…
Cancel
Save