web/wp-admin/includes/import.php
branchwordpress
changeset 109 03b0d1493584
child 132 4d4862461b8d
equal deleted inserted replaced
-1:000000000000 109:03b0d1493584
       
     1 <?php
       
     2 /**
       
     3  * WordPress Administration Importer API.
       
     4  *
       
     5  * @package WordPress
       
     6  * @subpackage Administration
       
     7  */
       
     8 
       
     9 /**
       
    10  * Retrieve list of importers.
       
    11  *
       
    12  * @since 2.0.0
       
    13  *
       
    14  * @return array
       
    15  */
       
    16 function get_importers() {
       
    17 	global $wp_importers;
       
    18 	if ( is_array($wp_importers) )
       
    19 		uasort($wp_importers, create_function('$a, $b', 'return strcmp($a[0], $b[0]);'));
       
    20 	return $wp_importers;
       
    21 }
       
    22 
       
    23 /**
       
    24  * Register importer for WordPress.
       
    25  *
       
    26  * @since 2.0.0
       
    27  *
       
    28  * @param string $id Importer tag. Used to uniquely identify importer.
       
    29  * @param string $name Importer name and title.
       
    30  * @param string $description Importer description.
       
    31  * @param callback $callback Callback to run.
       
    32  * @return WP_Error Returns WP_Error when $callback is WP_Error.
       
    33  */
       
    34 function register_importer( $id, $name, $description, $callback ) {
       
    35 	global $wp_importers;
       
    36 	if ( is_wp_error( $callback ) )
       
    37 		return $callback;
       
    38 	$wp_importers[$id] = array ( $name, $description, $callback );
       
    39 }
       
    40 
       
    41 /**
       
    42  * Cleanup importer.
       
    43  *
       
    44  * Removes attachment based on ID.
       
    45  *
       
    46  * @since 2.0.0
       
    47  *
       
    48  * @param string $id Importer ID.
       
    49  */
       
    50 function wp_import_cleanup( $id ) {
       
    51 	wp_delete_attachment( $id );
       
    52 }
       
    53 
       
    54 /**
       
    55  * Handle importer uploading and add attachment.
       
    56  *
       
    57  * @since 2.0.0
       
    58  *
       
    59  * @return array
       
    60  */
       
    61 function wp_import_handle_upload() {
       
    62 	$overrides = array( 'test_form' => false, 'test_type' => false );
       
    63 	$_FILES['import']['name'] .= '.txt';
       
    64 	$file = wp_handle_upload( $_FILES['import'], $overrides );
       
    65 
       
    66 	if ( isset( $file['error'] ) )
       
    67 		return $file;
       
    68 
       
    69 	$url = $file['url'];
       
    70 	$type = $file['type'];
       
    71 	$file = addslashes( $file['file'] );
       
    72 	$filename = basename( $file );
       
    73 
       
    74 	// Construct the object array
       
    75 	$object = array( 'post_title' => $filename,
       
    76 		'post_content' => $url,
       
    77 		'post_mime_type' => $type,
       
    78 		'guid' => $url
       
    79 	);
       
    80 
       
    81 	// Save the data
       
    82 	$id = wp_insert_attachment( $object, $file );
       
    83 
       
    84 	return array( 'file' => $file, 'id' => $id );
       
    85 }
       
    86 
       
    87 ?>