83 lines
2.1 KiB
PHP
83 lines
2.1 KiB
PHP
<?php
|
|
use voku\db\DB;
|
|
use Symfony\Component\Yaml\Yaml;
|
|
use Cocur\Slugify\Slugify;
|
|
|
|
require 'vendor/autoload.php';
|
|
|
|
@mkdir('markdown');
|
|
@mkdir('markdown/posts');
|
|
$db = DB::getInstance('localhost', 'root', '123456', 'oreolek');
|
|
$slugify = new Slugify();
|
|
|
|
function get_active($draft)
|
|
{
|
|
if ($draft == '1')
|
|
return FALSE;
|
|
return TRUE;
|
|
}
|
|
|
|
function import_posts($db)
|
|
{
|
|
global $slugify;
|
|
$result = $db->query("SELECT * FROM tags")->fetchAllArray();
|
|
$tags = [];
|
|
foreach($result as $row)
|
|
{
|
|
$tags[$row['id']] = $row['name'];
|
|
}
|
|
$posts = $db->query("SELECT * FROM posts")->fetchAllArray();
|
|
foreach($posts as $post)
|
|
{
|
|
$tagarray = [];
|
|
$id = $post['id'];
|
|
$result = $db->query("SELECT * FROM posts_tags WHERE post_id = $id")->fetchAllArray();
|
|
foreach($result as $row)
|
|
{
|
|
$tagarray[] = $tags[$row['tag_id']];
|
|
}
|
|
echo $post['name'].PHP_EOL;
|
|
$metadata = [
|
|
'title' => $post['name'],
|
|
'active' => get_active($post['is_draft']),
|
|
'published_at' => $post['posted_at'],
|
|
'password' => $post['password'],
|
|
'tags' => $tagarray,
|
|
'extends' => '_layouts.post',
|
|
'section' => 'content'
|
|
];
|
|
$slug = $slugify->slugify($post['name']);
|
|
$content = '---'.PHP_EOL.Yaml::dump($metadata).'---'
|
|
.PHP_EOL.$post['content'];
|
|
$date = new \DateTime($post['posted_at']);
|
|
$filename = './markdown/posts/'.$date->format('Y-m-d').'-'.$slug.'.md';
|
|
$postarray[$post['id']] = $filename;
|
|
file_put_contents($filename, $content);
|
|
echo $filename.PHP_EOL;
|
|
}
|
|
}
|
|
|
|
function import_pages($db)
|
|
{
|
|
global $slugify;
|
|
$pages = $db->query("SELECT * FROM pages")->fetchAllArray();
|
|
foreach($pages as $page)
|
|
{
|
|
echo $page['name'].PHP_EOL;
|
|
$metadata = [
|
|
'title' => $page['name'],
|
|
'active' => get_active($page['is_draft']),
|
|
'extends' => '_layouts.page',
|
|
'section' => 'content',
|
|
];
|
|
$slug = $slugify->slugify($page['name']);
|
|
$filename = './markdown/'.$slug.'.md';
|
|
$content = '---'.PHP_EOL.Yaml::dump($metadata).'---'
|
|
.PHP_EOL.$page['content'];
|
|
file_put_contents($filename, $content);
|
|
}
|
|
}
|
|
|
|
import_posts($db);
|
|
import_pages($db);
|