date( 'r' ), 'version' => '000', ]; } function posts(&$garray) { $posts = Idno\Common\Entity::getFromAll([], [], 99999); $slug_number = 0; $_post_tags = []; $i = 1; foreach($posts as $post) { if ($post instanceof Idno\Entities\Notification) { continue; } $post_markdown = new HTML_To_Markdown( $post->attributes['body'] ); $_post_tags[] = []; $garray['data']['posts'][] = array( 'id' => $i, 'title' => substr( ( empty( $post->attributes['title'] ) ) ? $post->attributes['body'] : $post->attributes['title'], 0, 150 ), 'slug' => $post->attributes['slug'], 'markdown' => $post_markdown->output(), 'html' => $post->attributes['body'], 'image' => null, 'featured' => 0, 'page' => 0, 'status' => isset($post->attributes['publish_status']) ? substr( $post->attributes['publish_status'], 0, 150 ) : 'published', 'language' => 'fr_FR', 'meta_title' => null, 'meta_description' => null, 'author_id' => 1, 'created_at' => _get_json_date( $post->created ), 'created_by' => 1, 'updated_at' => _get_json_date( $post->updated ), 'updated_by' => 1, 'published_at' => _get_json_date( $post->created ), 'published_by' => 1, ); $slug_number += 1; $i++; } $garray['data']['posts_tags'] = $_post_tags; // cleanup unset( $posts_args ); unset( $posts ); unset( $slug_number ); unset( $_post_tags ); unset( $tags ); unset( $tag ); unset( $s ); } function _get_json_date( $date ) { return date( 'r', $date ); } function populate_data(&$garray) { // attaches metadata metas($garray); // populates posts posts($garray); } /** * Sends necessary headers and whatnot to allow to download file */ function download_file($garray) { populate_data($garray); $filedir = dirname(__FILE__).'/Uploads'; $filename = 'known2ghost_export_' . time() . '.json'; if ( ! is_writable( $filedir ) ) { echo ( "

Uploads directory is not writable, can't save the Ghost json file :/

Generated by the Ghost plugin version {$this->version}.

"); } $handle = fopen( $filedir . '/' . $filename, 'w' ); $content = json_encode( $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; } download_file($garray);