🚀 Finish the script
This commit is contained in:
parent
24cee9e4c6
commit
51cf511c23
202
export.php
202
export.php
@ -7,153 +7,115 @@ error_reporting(E_ALL);
|
|||||||
require_once(dirname(__FILE__) . '/Idno/start.php');
|
require_once(dirname(__FILE__) . '/Idno/start.php');
|
||||||
|
|
||||||
include 'HTML-To-Markdown.php';
|
include 'HTML-To-Markdown.php';
|
||||||
$garray = [];
|
|
||||||
$garray['data'] = array();
|
|
||||||
$garray['data']['posts'] = array();
|
|
||||||
$garray['data']['tags'] = array();
|
|
||||||
$garray['data']['posts_tags'] = array();
|
|
||||||
$garray['data']['users'] = array();
|
|
||||||
|
|
||||||
function metas($garray) {
|
$garray = [];
|
||||||
$garray['meta'] = array(
|
$garray['data'] = [];
|
||||||
'exported_on' => date( 'r' ),
|
$garray['data']['posts'] = [];
|
||||||
'version' => '000',
|
$garray['data']['tags'] = [];
|
||||||
);
|
$garray['data']['posts_tags'] = [];
|
||||||
|
$garray['data']['users'] = [];
|
||||||
|
|
||||||
|
function metas(&$garray) {
|
||||||
|
$garray['meta'] = [
|
||||||
|
'exported_on' => date( 'r' ),
|
||||||
|
'version' => '000',
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
function tags() {
|
function posts(&$garray) {
|
||||||
$all_tags = get_tags();
|
|
||||||
|
|
||||||
if ( ! empty( $all_tags ) ) {
|
$posts = Idno\Common\Entity::getFromAll([], [], 99999);
|
||||||
foreach ( $all_tags as $tag ) {
|
$slug_number = 0;
|
||||||
$garray['data']['tags'][] = array(
|
$_post_tags = [];
|
||||||
'id' => intval( $tag->term_id ),
|
$i = 1;
|
||||||
'name' => $tag->name,
|
|
||||||
'slug' => $tag->slug,
|
|
||||||
'description' => $tag->description,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// cleanup
|
foreach($posts as $post) {
|
||||||
unset( $all_tags );
|
if ($post instanceof Idno\Entities\Notification) {
|
||||||
unset( $tag );
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
// TODO modifier ça pour Known !
|
|
||||||
// https://github.com/idno/Known/blob/master/Idno/Common/Entity.php
|
|
||||||
function posts($garray) {
|
|
||||||
|
|
||||||
$posts = Idno\Common\Entity::getFromAll([], [], 99999);
|
|
||||||
$slug_number = 0;
|
|
||||||
$_post_tags = [];
|
|
||||||
|
|
||||||
foreach($posts as $post) {
|
|
||||||
if ($post instanceof Idno\Entities\Notification) {
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$post_markdown = new HTML_To_Markdown( $post->attributes['body'] );
|
$post_markdown = new HTML_To_Markdown( $post->attributes['body'] );
|
||||||
|
|
||||||
$_post_tags[] = [];
|
$_post_tags[] = [];
|
||||||
$garray['data']['posts'][] = array(
|
$garray['data']['posts'][] = array(
|
||||||
//'id' => intval( $post->ID ),
|
'id' => $i,
|
||||||
'title' => substr( ( empty( $post->attributes['title'] ) ) ? $post->attributes['body'] : $post->attributes['title'], 0, 150 ),
|
'title' => substr( ( empty( $post->attributes['title'] ) ) ? $post->attributes['body'] : $post->attributes['title'], 0, 150 ),
|
||||||
'slug' => $post->attributes['slug'],
|
'slug' => $post->attributes['slug'],
|
||||||
'markdown' => $post_markdown->output(),
|
'markdown' => $post_markdown->output(),
|
||||||
'html' => $post->attributes['body'],
|
'html' => $post->attributes['body'],
|
||||||
'image' => null,
|
'image' => null,
|
||||||
'featured' => 0,
|
'featured' => 0,
|
||||||
'page' => 1,
|
'page' => 1,
|
||||||
'status' => substr( $post->attributes['publish_status'], 0, 150 ),
|
'status' => isset($post->attributes['publish_status']) ? substr( $post->attributes['publish_status'], 0, 150 ) : 'published',
|
||||||
'language' => 'fr_FR',
|
'language' => 'fr_FR',
|
||||||
'meta_title' => null,
|
'meta_title' => null,
|
||||||
'meta_description' => null,
|
'meta_description' => null,
|
||||||
'author_id' => 1,
|
'author_id' => 1,
|
||||||
'created_at' => _get_json_date( $post->post_date ),
|
'created_at' => _get_json_date( $post->created ),
|
||||||
'created_by' => 1,
|
'created_by' => 1,
|
||||||
'updated_at' => _get_json_date( $post->post_modified ),
|
'updated_at' => _get_json_date( $post->updated ),
|
||||||
'updated_by' => 1,
|
'updated_by' => 1,
|
||||||
'published_at' => _get_json_date( $post->post_date ),
|
'published_at' => _get_json_date( $post->created ),
|
||||||
'published_by' => 1,
|
'published_by' => 1,
|
||||||
);
|
);
|
||||||
|
|
||||||
$slug_number += 1;
|
$slug_number += 1;
|
||||||
}
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
$garray['data']['posts_tags'] = $_post_tags;
|
$garray['data']['posts_tags'] = $_post_tags;
|
||||||
|
|
||||||
// cleanup
|
|
||||||
unset( $posts_args );
|
|
||||||
unset( $posts );
|
|
||||||
unset( $slug_number );
|
|
||||||
unset( $_post_tags );
|
|
||||||
unset( $tags );
|
|
||||||
unset( $tag );
|
|
||||||
unset( $s );
|
|
||||||
|
|
||||||
var_dump($garray);
|
|
||||||
exit;
|
|
||||||
|
|
||||||
|
// cleanup
|
||||||
|
unset( $posts_args );
|
||||||
|
unset( $posts );
|
||||||
|
unset( $slug_number );
|
||||||
|
unset( $_post_tags );
|
||||||
|
unset( $tags );
|
||||||
|
unset( $tag );
|
||||||
|
unset( $s );
|
||||||
}
|
}
|
||||||
|
|
||||||
function _get_json_date( $date ) {
|
function _get_json_date( $date ) {
|
||||||
return date( 'r', strtotime( $date ) );
|
return date( 'r', $date );
|
||||||
}
|
}
|
||||||
|
|
||||||
function populate_data($garray) {
|
function populate_data(&$garray) {
|
||||||
// if ( $garray !== null ) {
|
// attaches metadata
|
||||||
// return;
|
metas($garray);
|
||||||
// }
|
|
||||||
// attaches metadata
|
|
||||||
metas($garray);
|
|
||||||
|
|
||||||
// attaches tags
|
// populates posts
|
||||||
// tags();
|
posts($garray);
|
||||||
// populates posts
|
|
||||||
posts($garray);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sends necessary headers and whatnot to allow to download file
|
* Sends necessary headers and whatnot to allow to download file
|
||||||
* @return bin file
|
|
||||||
*/
|
*/
|
||||||
function download_file($garray) {
|
function download_file($garray) {
|
||||||
|
|
||||||
// Ensure the user accessing the function actually has permission to do this
|
populate_data($garray);
|
||||||
if ( ! current_user_can('export') ) {
|
$filedir = dirname(__FILE__).'/Uploads';
|
||||||
wp_die( "<p>You are not allowed to do that.</p>", 'Permission error' );
|
$filename = 'known2ghost_export_' . time() . '.json';
|
||||||
}
|
|
||||||
|
|
||||||
populate_data($garray);
|
if ( ! is_writable( $filedir ) ) {
|
||||||
|
echo ( "<p>Uploads directory is not writable, can't save the Ghost json file :/</p><p>Generated by the Ghost plugin version {$this->version}.</p>");
|
||||||
|
}
|
||||||
|
|
||||||
$upload_dir = wp_upload_dir();
|
$handle = fopen( $filedir . '/' . $filename, 'w' );
|
||||||
$filedir = $upload_dir['path'];
|
$content = json_encode( $garray );
|
||||||
$filename = 'wp2ghost_export_' . time() . '.json';
|
fwrite( $handle, $content );
|
||||||
|
fclose( $handle );
|
||||||
|
header( 'Content-Description: File Transfer' );
|
||||||
|
header( 'Content-Type: application/octet-stream' );
|
||||||
|
header( 'Content-Disposition: attachment; filename='.$filename );
|
||||||
|
header( 'Content-Transfer-Encoding: binary' );
|
||||||
|
header( 'Expires: 0' );
|
||||||
|
header( 'Cache-Control: must-revalidate' );
|
||||||
|
header( 'Pragma: public' );
|
||||||
|
header( 'Content-Length: ' . filesize( $filedir . '/' . $filename ) );
|
||||||
|
|
||||||
if ( ! is_writable( $filedir ) ) {
|
flush();
|
||||||
wp_die( "<p>Uploads directory is not writable, can't save the Ghost json file :/</p><p>Generated by the Ghost plugin version {$this->version}.</p>", 'Directory not writable' );
|
readfile( $filedir . '/' . $filename );
|
||||||
}
|
exit;
|
||||||
|
|
||||||
$handle = fopen( $filedir . '/' . $filename, 'w' );
|
|
||||||
$content = $this->get_json( $garray );
|
|
||||||
fwrite( $handle, $content );
|
|
||||||
fclose( $handle );
|
|
||||||
|
|
||||||
header( 'Content-Description: File Transfer' );
|
|
||||||
header( 'Content-Type: application/octet-stream' );
|
|
||||||
header( 'Content-Disposition: attachment; filename='.$filename );
|
|
||||||
header( 'Content-Transfer-Encoding: binary' );
|
|
||||||
header( 'Expires: 0' );
|
|
||||||
header( 'Cache-Control: must-revalidate' );
|
|
||||||
header( 'Pragma: public' );
|
|
||||||
header( 'Content-Length: ' . filesize( $filedir . '/' . $filename ) );
|
|
||||||
|
|
||||||
flush();
|
|
||||||
readfile( $filedir . '/' . $filename );
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
populate_data($garray);
|
download_file($garray);
|
||||||
/*
|
|
||||||
//highlight_string("<?php\n\$data =\n" . var_export(Idno\Common\Entity::getFromAll([], [], 99999), true) . ";\n?>");
|
|
||||||
|
Loading…
Reference in New Issue
Block a user