Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
php-code-for-posts-master
/
Classes
:
Exporter.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php Class PhpCodeForPosts_Exporter { public static function generate_export_file () { $snippets = PhpCodeForPosts_Database::load_all_snippets(); $columns = array( "ID", "Name", "Description", "Code", "Shared", "Slug" ); $csvOutput = "\"" . implode( "\",\"", $columns ) . "\"" . "\r\n"; if( count( $snippets ) > 0 ) { while( $snippet = array_shift( $snippets ) ) { /* var $snippet = PhpCodeForPosts_Snippet() */ $_snippet = array( $snippet->get_id(), addslashes( $snippet->get_name() ), addslashes( $snippet->get_description() ), addslashes( PhpCodeForPosts_Snippet::hash_code( $snippet->get_code() ) ), intval( $snippet->get_shared() ), addslashes( $snippet->get_slug() ) ); $csvOutput .= "\"" . implode( "\",\"", $_snippet ) . "\"" . "\r\n"; } } $filename = 'php-code-for-posts-export-' . date( 'Y-m-d' ) . '.csv'; header( 'Content-Type: Application/CSV; charset=utf-8' ); header( 'Content-Length: ' . strlen( $csvOutput ) ); header( 'Content-Disposition: attachment; filename=' . $filename ); echo $csvOutput; exit; } public static function do_import () { $file = isset( $_FILES['csvfile'] ) ? $_FILES['csvfile'] : false; if( ! $file || $file['error'] ) { throw new Exception( __( 'Error: Invalid file', "phpcodeforposts" ) ); } $open = fopen( $file['tmp_name'], 'r' ); if( ! $open ) { throw new Exception( __( 'Error: Failed to read file', "phpcodeforposts" ) ); } //the first line is the titles, we dont care for them, for now. //I cant validate this line really because columns could be what ever the user chooses fgets( $open ); $snippets = array(); $keepIds = isset( $_POST['keep-ids'] ) ? intval( $_POST['keep-ids'] ) : 0; while( ( $line = fgetcsv( $open ) ) != false ) { if( empty( $line ) ) { continue; } if( ! self::is_file_line_valid( $line ) ) { throw new Exception( __( 'Error: Invalid line, not continuing', "phpcodeforposts" ) ); } $snippet = new PhpCodeForPosts_Snippet(); $snippet ->set_name( $line[1] ) ->set_description( $line[2] ) ->set_code( PhpCodeForPosts_Snippet::unhash_code( $line[3] ) ) ->set_shared( $line[4] ) ->set_slug( $line[5] ); if( $keepIds ) { $snippet->set_id( $line[0] ); } $snippets[] = $snippet; } if( count( $snippets ) > 0 ) { foreach( $snippets as $snippet ) { PhpCodeForPosts_Database::save_snippet( $snippet ); } } } private static function is_file_line_valid ( $file ) { if( ! filter_var( $file[0], FILTER_VALIDATE_INT ) ) { return false; } if( ! isset( $file[1][0] ) ) { return false; } if( false === base64_decode( $file[3], true ) ) { return false; } if( $file[4] != "0" && $file[4] != "1" ) { return false; } return true; } }