web/wp-admin/import/mt.php
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
 * Movable Type and TypePad Importer
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
 * @package WordPress
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
 * @subpackage Importer
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
 * Moveable Type and TypePad Importer class
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
 * Upload your exported Movable Type or TypePad entries into WordPress.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
class MT_Import {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
	var $posts = array ();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
	var $file;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
	var $id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
	var $mtnames = array ();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
	var $newauthornames = array ();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
	var $j = -1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
	function header() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
		echo '<div class="wrap">';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
		screen_icon();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
		echo '<h2>'.__('Import Movable Type or TypePad').'</h2>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
	function footer() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
		echo '</div>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
	function greet() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
		$this->header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
<div class="narrow">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
<p><?php _e('Howdy! We&#8217;re about to begin importing all of your Movable Type or TypePad entries into WordPress. To begin, either choose a file to upload and click &#8220;Upload file and import&#8221;, or use FTP to upload your MT export file as <code>mt-export.txt</code> in your <code>/wp-content/</code> directory and then click "Import mt-export.txt"'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
<?php wp_import_upload_form( add_query_arg('step', 1) ); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
<form method="post" action="<?php echo esc_attr(add_query_arg('step', 1)); ?>" class="import-upload-form">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
<?php wp_nonce_field('import-upload'); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
<p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
	<input type="hidden" name="upload_type" value="ftp" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
<?php _e('Or use <code>mt-export.txt</code> in your <code>/wp-content/</code> directory'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
<p class="submit">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
<input type="submit" class="button" value="<?php esc_attr_e('Import mt-export.txt'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
</p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
</form>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
<p><?php _e('The importer is smart enough not to import duplicates, so you can run this multiple times without worry if&#8212;for whatever reason&#8212;it doesn&#8217;t finish. If you get an <strong>out of memory</strong> error try splitting up the import file into pieces.'); ?> </p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
</div>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
		$this->footer();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
	function users_form($n) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
		global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
		$users = $wpdb->get_results("SELECT * FROM $wpdb->users ORDER BY ID");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
?><select name="userselect[<?php echo $n; ?>]">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
	<option value="#NONE#"><?php _e('- Select -') ?></option>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
	<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
		foreach ($users as $user) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
			echo '<option value="'.$user->user_login.'">'.$user->user_login.'</option>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
	</select>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
	<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
	function has_gzip() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
		return is_callable('gzopen');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
	function fopen($filename, $mode='r') {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
		if ( $this->has_gzip() )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
			return gzopen($filename, $mode);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
		return fopen($filename, $mode);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
	function feof($fp) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
		if ( $this->has_gzip() )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
			return gzeof($fp);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
		return feof($fp);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
	function fgets($fp, $len=8192) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
		if ( $this->has_gzip() )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
			return gzgets($fp, $len);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
		return fgets($fp, $len);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
	function fclose($fp) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
		if ( $this->has_gzip() )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
			return gzclose($fp);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
		return fclose($fp);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
 	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
	//function to check the authorname and do the mapping
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
	function checkauthor($author) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
		//mtnames is an array with the names in the mt import file
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
		$pass = wp_generate_password();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
		if (!(in_array($author, $this->mtnames))) { //a new mt author name is found
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
			++ $this->j;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
			$this->mtnames[$this->j] = $author; //add that new mt author name to an array
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
			$user_id = username_exists($this->newauthornames[$this->j]); //check if the new author name defined by the user is a pre-existing wp user
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
			if (!$user_id) { //banging my head against the desk now.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
				if ($this->newauthornames[$this->j] == 'left_blank') { //check if the user does not want to change the authorname
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
					$user_id = wp_create_user($author, $pass);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
					$this->newauthornames[$this->j] = $author; //now we have a name, in the place of left_blank.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
				} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
					$user_id = wp_create_user($this->newauthornames[$this->j], $pass);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
			} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
				return $user_id; // return pre-existing wp username if it exists
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
		} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
			$key = array_search($author, $this->mtnames); //find the array key for $author in the $mtnames array
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
			$user_id = username_exists($this->newauthornames[$key]); //use that key to get the value of the author's name from $newauthornames
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
		return $user_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   127
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   128
0d28b7c10758 First commit
ymh
parents:
diff changeset
   129
	function get_mt_authors() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   130
		$temp = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   131
		$authors = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   132
0d28b7c10758 First commit
ymh
parents:
diff changeset
   133
		$handle = $this->fopen($this->file, 'r');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   134
		if ( $handle == null )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   135
			return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   136
0d28b7c10758 First commit
ymh
parents:
diff changeset
   137
		$in_comment = false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   138
		while ( $line = $this->fgets($handle) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   139
			$line = trim($line);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   140
0d28b7c10758 First commit
ymh
parents:
diff changeset
   141
			if ( 'COMMENT:' == $line )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   142
				$in_comment = true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   143
			else if ( '-----' == $line )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   144
				$in_comment = false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   145
0d28b7c10758 First commit
ymh
parents:
diff changeset
   146
			if ( $in_comment || 0 !== strpos($line,"AUTHOR:") )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   147
				continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   148
0d28b7c10758 First commit
ymh
parents:
diff changeset
   149
			$temp[] = trim( substr($line, strlen("AUTHOR:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   150
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   151
0d28b7c10758 First commit
ymh
parents:
diff changeset
   152
		//we need to find unique values of author names, while preserving the order, so this function emulates the unique_value(); php function, without the sorting.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   153
		$authors[0] = array_shift($temp);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   154
		$y = count($temp) + 1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   155
		for ($x = 1; $x < $y; $x ++) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   156
			$next = array_shift($temp);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   157
			if (!(in_array($next, $authors)))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   158
				array_push($authors, "$next");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   159
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   160
0d28b7c10758 First commit
ymh
parents:
diff changeset
   161
		$this->fclose($handle);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   162
0d28b7c10758 First commit
ymh
parents:
diff changeset
   163
		return $authors;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   164
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   165
0d28b7c10758 First commit
ymh
parents:
diff changeset
   166
	function get_authors_from_post() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   167
		$formnames = array ();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   168
		$selectnames = array ();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   169
0d28b7c10758 First commit
ymh
parents:
diff changeset
   170
		foreach ($_POST['user'] as $key => $line) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   171
			$newname = trim(stripslashes($line));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   172
			if ($newname == '')
0d28b7c10758 First commit
ymh
parents:
diff changeset
   173
				$newname = 'left_blank'; //passing author names from step 1 to step 2 is accomplished by using POST. left_blank denotes an empty entry in the form.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   174
			array_push($formnames, "$newname");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   175
		} // $formnames is the array with the form entered names
0d28b7c10758 First commit
ymh
parents:
diff changeset
   176
0d28b7c10758 First commit
ymh
parents:
diff changeset
   177
		foreach ($_POST['userselect'] as $user => $key) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   178
			$selected = trim(stripslashes($key));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   179
			array_push($selectnames, "$selected");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   180
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   181
0d28b7c10758 First commit
ymh
parents:
diff changeset
   182
		$count = count($formnames);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   183
		for ($i = 0; $i < $count; $i ++) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   184
			if ($selectnames[$i] != '#NONE#') { //if no name was selected from the select menu, use the name entered in the form
0d28b7c10758 First commit
ymh
parents:
diff changeset
   185
				array_push($this->newauthornames, "$selectnames[$i]");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   186
			} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   187
				array_push($this->newauthornames, "$formnames[$i]");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   188
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   189
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   190
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   191
0d28b7c10758 First commit
ymh
parents:
diff changeset
   192
	function mt_authors_form() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   193
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   194
<div class="wrap">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   195
<?php screen_icon(); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   196
<h2><?php _e('Assign Authors'); ?></h2>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   197
<p><?php _e('To make it easier for you to edit and save the imported posts and drafts, you may want to change the name of the author of the posts. For example, you may want to import all the entries as admin&#8217;s entries.'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   198
<p><?php _e('Below, you can see the names of the authors of the MovableType posts in <em>italics</em>. For each of these names, you can either pick an author in your WordPress installation from the menu, or enter a name for the author in the textbox.'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   199
<p><?php _e('If a new user is created by WordPress, a password will be randomly generated. Manually change the user&#8217;s details if necessary.'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   200
	<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   201
0d28b7c10758 First commit
ymh
parents:
diff changeset
   202
0d28b7c10758 First commit
ymh
parents:
diff changeset
   203
		$authors = $this->get_mt_authors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   204
		echo '<ol id="authors">';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   205
		echo '<form action="?import=mt&amp;step=2&amp;id=' . $this->id . '" method="post">';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   206
		wp_nonce_field('import-mt');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   207
		$j = -1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   208
		foreach ($authors as $author) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   209
			++ $j;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   210
			echo '<li><label>'.__('Current author:').' <strong>'.$author.'</strong><br />'.sprintf(__('Create user %1$s or map to existing'), ' <input type="text" value="'. esc_attr($author) .'" name="'.'user[]'.'" maxlength="30"> <br />');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   211
			$this->users_form($j);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   212
			echo '</label></li>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   213
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   214
0d28b7c10758 First commit
ymh
parents:
diff changeset
   215
		echo '<p class="submit"><input type="submit" class="button" value="'.esc_attr__('Submit').'"></p>'.'<br />';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   216
		echo '</form>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   217
		echo '</ol></div>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   218
0d28b7c10758 First commit
ymh
parents:
diff changeset
   219
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   220
0d28b7c10758 First commit
ymh
parents:
diff changeset
   221
	function select_authors() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   222
		if ( $_POST['upload_type'] === 'ftp' ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   223
			$file['file'] = WP_CONTENT_DIR . '/mt-export.txt';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   224
			if ( !file_exists($file['file']) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   225
				$file['error'] = __('<code>mt-export.txt</code> does not exist');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   226
		} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   227
			$file = wp_import_handle_upload();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   228
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   229
		if ( isset($file['error']) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   230
			$this->header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   231
			echo '<p>'.__('Sorry, there has been an error').'.</p>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   232
			echo '<p><strong>' . $file['error'] . '</strong></p>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   233
			$this->footer();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   234
			return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   235
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   236
		$this->file = $file['file'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   237
		$this->id = (int) $file['id'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   238
0d28b7c10758 First commit
ymh
parents:
diff changeset
   239
		$this->mt_authors_form();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   240
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   241
0d28b7c10758 First commit
ymh
parents:
diff changeset
   242
	function save_post(&$post, &$comments, &$pings) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   243
		// Reset the counter
0d28b7c10758 First commit
ymh
parents:
diff changeset
   244
		set_time_limit(30);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   245
		$post = get_object_vars($post);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   246
		$post = add_magic_quotes($post);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   247
		$post = (object) $post;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   248
0d28b7c10758 First commit
ymh
parents:
diff changeset
   249
		if ( $post_id = post_exists($post->post_title, '', $post->post_date) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   250
			echo '<li>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   251
			printf(__('Post <em>%s</em> already exists.'), stripslashes($post->post_title));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   252
		} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   253
			echo '<li>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   254
			printf(__('Importing post <em>%s</em>...'), stripslashes($post->post_title));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   255
0d28b7c10758 First commit
ymh
parents:
diff changeset
   256
			if ( '' != trim( $post->extended ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   257
					$post->post_content .= "\n<!--more-->\n$post->extended";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   258
0d28b7c10758 First commit
ymh
parents:
diff changeset
   259
			$post->post_author = $this->checkauthor($post->post_author); //just so that if a post already exists, new users are not created by checkauthor
0d28b7c10758 First commit
ymh
parents:
diff changeset
   260
			$post_id = wp_insert_post($post);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   261
			if ( is_wp_error( $post_id ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   262
				return $post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   263
0d28b7c10758 First commit
ymh
parents:
diff changeset
   264
			// Add categories.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   265
			if ( 0 != count($post->categories) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   266
				wp_create_categories($post->categories, $post_id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   267
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   268
0d28b7c10758 First commit
ymh
parents:
diff changeset
   269
			 // Add tags or keywords
0d28b7c10758 First commit
ymh
parents:
diff changeset
   270
			if ( 1 < strlen($post->post_keywords) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   271
			 	// Keywords exist.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   272
				printf(__('<br />Adding tags <i>%s</i>...'), stripslashes($post->post_keywords));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   273
				wp_add_post_tags($post_id, $post->post_keywords);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   274
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   275
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   276
0d28b7c10758 First commit
ymh
parents:
diff changeset
   277
		$num_comments = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   278
		foreach ( $comments as $comment ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   279
			$comment = get_object_vars($comment);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   280
			$comment = add_magic_quotes($comment);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   281
0d28b7c10758 First commit
ymh
parents:
diff changeset
   282
			if ( !comment_exists($comment['comment_author'], $comment['comment_date'])) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   283
				$comment['comment_post_ID'] = $post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   284
				$comment = wp_filter_comment($comment);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   285
				wp_insert_comment($comment);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   286
				$num_comments++;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   287
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   288
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   289
0d28b7c10758 First commit
ymh
parents:
diff changeset
   290
		if ( $num_comments )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   291
			printf(' '._n('(%s comment)', '(%s comments)', $num_comments), $num_comments);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   292
0d28b7c10758 First commit
ymh
parents:
diff changeset
   293
		$num_pings = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   294
		foreach ( $pings as $ping ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   295
			$ping = get_object_vars($ping);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   296
			$ping = add_magic_quotes($ping);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   297
0d28b7c10758 First commit
ymh
parents:
diff changeset
   298
			if ( !comment_exists($ping['comment_author'], $ping['comment_date'])) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   299
				$ping['comment_content'] = "<strong>{$ping['title']}</strong>\n\n{$ping['comment_content']}";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   300
				$ping['comment_post_ID'] = $post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   301
				$ping = wp_filter_comment($ping);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   302
				wp_insert_comment($ping);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   303
				$num_pings++;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   304
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   305
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   306
0d28b7c10758 First commit
ymh
parents:
diff changeset
   307
		if ( $num_pings )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   308
			printf(' '._n('(%s ping)', '(%s pings)', $num_pings), $num_pings);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   309
0d28b7c10758 First commit
ymh
parents:
diff changeset
   310
		echo "</li>";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   311
		//ob_flush();flush();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   312
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   313
0d28b7c10758 First commit
ymh
parents:
diff changeset
   314
	function process_posts() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   315
		global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   316
0d28b7c10758 First commit
ymh
parents:
diff changeset
   317
		$handle = $this->fopen($this->file, 'r');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   318
		if ( $handle == null )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   319
			return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   320
0d28b7c10758 First commit
ymh
parents:
diff changeset
   321
		$context = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   322
		$post = new StdClass();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   323
		$comment = new StdClass();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   324
		$comments = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   325
		$ping = new StdClass();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   326
		$pings = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   327
0d28b7c10758 First commit
ymh
parents:
diff changeset
   328
		echo "<div class='wrap'><ol>";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   329
0d28b7c10758 First commit
ymh
parents:
diff changeset
   330
		while ( $line = $this->fgets($handle) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   331
			$line = trim($line);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   332
0d28b7c10758 First commit
ymh
parents:
diff changeset
   333
			if ( '-----' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   334
				// Finishing a multi-line field
0d28b7c10758 First commit
ymh
parents:
diff changeset
   335
				if ( 'comment' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   336
					$comments[] = $comment;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   337
					$comment = new StdClass();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   338
				} else if ( 'ping' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   339
					$pings[] = $ping;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   340
					$ping = new StdClass();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   341
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   342
				$context = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   343
			} else if ( '--------' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   344
				// Finishing a post.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   345
				$context = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   346
				$result = $this->save_post($post, $comments, $pings);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   347
				if ( is_wp_error( $result ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   348
					return $result;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   349
				$post = new StdClass;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   350
				$comment = new StdClass();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   351
				$ping = new StdClass();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   352
				$comments = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   353
				$pings = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   354
			} else if ( 'BODY:' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   355
				$context = 'body';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   356
			} else if ( 'EXTENDED BODY:' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   357
				$context = 'extended';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   358
			} else if ( 'EXCERPT:' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   359
				$context = 'excerpt';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   360
			} else if ( 'KEYWORDS:' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   361
				$context = 'keywords';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   362
			} else if ( 'COMMENT:' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   363
				$context = 'comment';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   364
			} else if ( 'PING:' == $line ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   365
				$context = 'ping';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   366
			} else if ( 0 === strpos($line, "AUTHOR:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   367
				$author = trim( substr($line, strlen("AUTHOR:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   368
				if ( '' == $context )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   369
					$post->post_author = $author;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   370
				else if ( 'comment' == $context )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   371
					 $comment->comment_author = $author;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   372
			} else if ( 0 === strpos($line, "TITLE:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   373
				$title = trim( substr($line, strlen("TITLE:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   374
				if ( '' == $context )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   375
					$post->post_title = $title;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   376
				else if ( 'ping' == $context )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   377
					$ping->title = $title;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   378
			} else if ( 0 === strpos($line, "STATUS:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   379
				$status = trim( strtolower( substr($line, strlen("STATUS:")) ) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   380
				if ( empty($status) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   381
					$status = 'publish';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   382
				$post->post_status = $status;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   383
			} else if ( 0 === strpos($line, "ALLOW COMMENTS:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   384
				$allow = trim( substr($line, strlen("ALLOW COMMENTS:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   385
				if ( $allow == 1 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   386
					$post->comment_status = 'open';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   387
				else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   388
					$post->comment_status = 'closed';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   389
			} else if ( 0 === strpos($line, "ALLOW PINGS:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   390
				$allow = trim( substr($line, strlen("ALLOW PINGS:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   391
				if ( $allow == 1 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   392
					$post->ping_status = 'open';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   393
				else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   394
					$post->ping_status = 'closed';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   395
			} else if ( 0 === strpos($line, "CATEGORY:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   396
				$category = trim( substr($line, strlen("CATEGORY:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   397
				if ( '' != $category )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   398
					$post->categories[] = $category;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   399
			} else if ( 0 === strpos($line, "PRIMARY CATEGORY:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   400
				$category = trim( substr($line, strlen("PRIMARY CATEGORY:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   401
				if ( '' != $category )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   402
					$post->categories[] = $category;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   403
			} else if ( 0 === strpos($line, "DATE:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   404
				$date = trim( substr($line, strlen("DATE:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   405
				$date = strtotime($date);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   406
				$date = date('Y-m-d H:i:s', $date);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   407
				$date_gmt = get_gmt_from_date($date);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   408
				if ( '' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   409
					$post->post_modified = $date;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   410
					$post->post_modified_gmt = $date_gmt;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   411
					$post->post_date = $date;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   412
					$post->post_date_gmt = $date_gmt;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   413
				} else if ( 'comment' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   414
					$comment->comment_date = $date;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   415
				} else if ( 'ping' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   416
					$ping->comment_date = $date;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   417
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   418
			} else if ( 0 === strpos($line, "EMAIL:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   419
				$email = trim( substr($line, strlen("EMAIL:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   420
				if ( 'comment' == $context )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   421
					$comment->comment_author_email = $email;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   422
				else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   423
					$ping->comment_author_email = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   424
			} else if ( 0 === strpos($line, "IP:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   425
				$ip = trim( substr($line, strlen("IP:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   426
				if ( 'comment' == $context )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   427
					$comment->comment_author_IP = $ip;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   428
				else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   429
					$ping->comment_author_IP = $ip;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   430
			} else if ( 0 === strpos($line, "URL:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   431
				$url = trim( substr($line, strlen("URL:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   432
				if ( 'comment' == $context )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   433
					$comment->comment_author_url = $url;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   434
				else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   435
					$ping->comment_author_url = $url;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   436
			} else if ( 0 === strpos($line, "BLOG NAME:") ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   437
				$blog = trim( substr($line, strlen("BLOG NAME:")) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   438
				$ping->comment_author = $blog;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   439
			} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   440
				// Processing multi-line field, check context.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   441
0d28b7c10758 First commit
ymh
parents:
diff changeset
   442
				if( !empty($line) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   443
					$line .= "\n";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   444
0d28b7c10758 First commit
ymh
parents:
diff changeset
   445
				if ( 'body' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   446
					$post->post_content .= $line;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   447
				} else if ( 'extended' ==  $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   448
					$post->extended .= $line;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   449
				} else if ( 'excerpt' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   450
					$post->post_excerpt .= $line;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   451
				} else if ( 'keywords' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   452
					$post->post_keywords .= $line;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   453
				} else if ( 'comment' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   454
					$comment->comment_content .= $line;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   455
				} else if ( 'ping' == $context ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   456
					$ping->comment_content .= $line;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   457
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   458
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   459
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   460
0d28b7c10758 First commit
ymh
parents:
diff changeset
   461
		$this->fclose($handle);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   462
0d28b7c10758 First commit
ymh
parents:
diff changeset
   463
		echo '</ol>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   464
0d28b7c10758 First commit
ymh
parents:
diff changeset
   465
		wp_import_cleanup($this->id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   466
		do_action('import_done', 'mt');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   467
0d28b7c10758 First commit
ymh
parents:
diff changeset
   468
		echo '<h3>'.sprintf(__('All done. <a href="%s">Have fun!</a>'), get_option('home')).'</h3></div>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   469
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   470
0d28b7c10758 First commit
ymh
parents:
diff changeset
   471
	function import() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   472
		$this->id = (int) $_GET['id'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   473
		if ( $this->id == 0 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   474
			$this->file = WP_CONTENT_DIR . '/mt-export.txt';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   475
		else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   476
			$this->file = get_attached_file($this->id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   477
		$this->get_authors_from_post();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   478
		$result = $this->process_posts();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   479
		if ( is_wp_error( $result ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   480
			return $result;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   481
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   482
0d28b7c10758 First commit
ymh
parents:
diff changeset
   483
	function dispatch() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   484
		if (empty ($_GET['step']))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   485
			$step = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   486
		else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   487
			$step = (int) $_GET['step'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   488
0d28b7c10758 First commit
ymh
parents:
diff changeset
   489
		switch ($step) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   490
			case 0 :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   491
				$this->greet();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   492
				break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   493
			case 1 :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   494
				check_admin_referer('import-upload');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   495
				$this->select_authors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   496
				break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   497
			case 2:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   498
				check_admin_referer('import-mt');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   499
				$result = $this->import();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   500
				if ( is_wp_error( $result ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   501
					echo $result->get_error_message();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   502
				break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   503
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   504
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   505
0d28b7c10758 First commit
ymh
parents:
diff changeset
   506
	function MT_Import() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   507
		// Nothing.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   508
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   509
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   510
0d28b7c10758 First commit
ymh
parents:
diff changeset
   511
$mt_import = new MT_Import();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   512
0d28b7c10758 First commit
ymh
parents:
diff changeset
   513
register_importer('mt', __('Movable Type and TypePad'), __('Import posts and comments from a Movable Type or TypePad blog.'), array ($mt_import, 'dispatch'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   514
?>