web/wp-admin/import/greymatter.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
 * GreyMatter 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
 * GreyMatter Importer class
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
 * Basic GreyMatter to WordPress importer, will import posts, comments, and
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
 * posts karma.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
class GM_Import {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
	var $gmnames = array ();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
	function header() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
		echo '<div class="wrap">';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
		screen_icon();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
		echo '<h2>'.__('Import GreyMatter').'</h2>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
	function footer() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
		echo '</div>';
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 greet() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
		$this->header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
<p><?php _e('This is a basic GreyMatter to WordPress import script.') ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
<p><?php _e('What it does:') ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
<ul>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
<li><?php _e('Parses gm-authors.cgi to import (new) authors. Everyone is imported at level 1.') ?></li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
<li><?php _e('Parses the entries cgi files to import posts, comments, and karma on posts (although karma is not used on WordPress yet).<br />If authors are found not to be in gm-authors.cgi, imports them at level 0.') ?></li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
<li><?php _e("Detects duplicate entries or comments. If you don't import everything the first time, or this import should fail in the middle, duplicate entries will not be made when you try again.") ?></li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
</ul>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
<p><?php _e('What it does not:') ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
<ul>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
<li><?php _e('Parse gm-counter.cgi, gm-banlist.cgi, gm-cplog.cgi (you can make a CP log hack if you really feel like it, but I question the need of a CP log).') ?></li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
<li><?php _e('Import gm-templates.') ?></li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
<li><?php _e("Doesn't keep entries on top.")?></li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
</ul>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
<p>&nbsp;</p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
<form name="stepOne" method="get" action="">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
<input type="hidden" name="import" value="greymatter" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
<input type="hidden" name="step" value="1" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
<?php wp_nonce_field('import-greymatter'); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
<h3><?php _e('Second step: GreyMatter details:') ?></h3>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
<table class="form-table">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
<td><label for="gmpath"><?php _e('Path to GM files:') ?></label></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
<td><input type="text" style="width:300px" name="gmpath" id="gmpath" value="/home/my/site/cgi-bin/greymatter/" /></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
<td><label for="archivespath"><?php _e('Path to GM entries:') ?></label></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
<td><input type="text" style="width:300px" name="archivespath" id="archivespath" value="/home/my/site/cgi-bin/greymatter/archives/" /></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
<td><label for="lastentry"><?php _e('Last entry&#8217;s number:') ?></label></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
<td><input type="text" name="lastentry" id="lastentry" value="00000001" /><br />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
	<?php _e('This importer will search for files 00000001.cgi to 000-whatever.cgi,<br />so you need to enter the number of the last GM post here.<br />(if you don&#8217;t know that number, just log in to your FTP and look it out<br />in the entries&#8217; folder)') ?></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
</table>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
<p class="submit"><input type="submit" name="submit" class="button" value="<?php esc_attr_e('Start Importing') ?>" /></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
</form>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
		$this->footer();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
	function gm2autobr($string) { // transforms GM's |*| into b2's <br />\n
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
		$string = str_replace("|*|","<br />\n",$string);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
		return($string);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
	function import() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
		global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
		$wpvarstoreset = array('gmpath', 'archivespath', 'lastentry');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
		for ($i=0; $i<count($wpvarstoreset); $i += 1) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
			$wpvar = $wpvarstoreset[$i];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
			if (!isset($$wpvar)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
				if (empty($_POST["$wpvar"])) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
					if (empty($_GET["$wpvar"])) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
						$$wpvar = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
					} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
						$$wpvar = $_GET["$wpvar"];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
				} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
					$$wpvar = $_POST["$wpvar"];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
		if (!chdir($archivespath))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
			wp_die(__("Wrong path, the path to the GM entries does not exist on the server"));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
		if (!chdir($gmpath))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
			wp_die(__("Wrong path, the path to the GM files does not exist on the server"));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
		$lastentry = (int) $lastentry;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
		$this->header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
<p><?php _e('The importer is running...') ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
<ul>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
<li><?php _e('importing users...') ?><ul><?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
	chdir($gmpath);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
	$userbase = file("gm-authors.cgi");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
	foreach($userbase as $user) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
		$userdata=explode("|", $user);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
		$user_ip="127.0.0.1";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
		$user_domain="localhost";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
		$user_browser="server";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
		$s=$userdata[4];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
		$user_joindate=substr($s,6,4)."-".substr($s,0,2)."-".substr($s,3,2)." 00:00:00";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   127
0d28b7c10758 First commit
ymh
parents:
diff changeset
   128
		$user_login=$wpdb->escape($userdata[0]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   129
		$pass1=$wpdb->escape($userdata[1]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   130
		$user_nickname=$wpdb->escape($userdata[0]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   131
		$user_email=$wpdb->escape($userdata[2]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   132
		$user_url=$wpdb->escape($userdata[3]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   133
		$user_joindate=$wpdb->escape($user_joindate);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   134
0d28b7c10758 First commit
ymh
parents:
diff changeset
   135
		$user_id = username_exists($user_login);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   136
		if ($user_id) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   137
			printf('<li>'.__('user %s').'<strong>'.__('Already exists').'</strong></li>', "<em>$user_login</em>");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   138
			$this->gmnames[$userdata[0]] = $user_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   139
			continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   140
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   141
0d28b7c10758 First commit
ymh
parents:
diff changeset
   142
		$user_info = array("user_login"=>"$user_login", "user_pass"=>"$pass1", "user_nickname"=>"$user_nickname", "user_email"=>"$user_email", "user_url"=>"$user_url", "user_ip"=>"$user_ip", "user_domain"=>"$user_domain", "user_browser"=>"$user_browser", "dateYMDhour"=>"$user_joindate", "user_level"=>"1", "user_idmode"=>"nickname");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   143
		$user_id = wp_insert_user($user_info);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   144
		$this->gmnames[$userdata[0]] = $user_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   145
0d28b7c10758 First commit
ymh
parents:
diff changeset
   146
		printf('<li>'.__('user %s...').' <strong>'.__('Done').'</strong></li>', "<em>$user_login</em>");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   147
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   148
0d28b7c10758 First commit
ymh
parents:
diff changeset
   149
?></ul><strong><?php _e('Done') ?></strong></li>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   150
<li><?php _e('importing posts, comments, and karma...') ?><br /><ul><?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   151
0d28b7c10758 First commit
ymh
parents:
diff changeset
   152
	chdir($archivespath);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   153
0d28b7c10758 First commit
ymh
parents:
diff changeset
   154
	for($i = 0; $i <= $lastentry; $i = $i + 1) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   155
0d28b7c10758 First commit
ymh
parents:
diff changeset
   156
		$entryfile = "";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   157
0d28b7c10758 First commit
ymh
parents:
diff changeset
   158
		if ($i<10000000) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   159
			$entryfile .= "0";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   160
			if ($i<1000000) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   161
				$entryfile .= "0";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   162
				if ($i<100000) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   163
					$entryfile .= "0";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   164
					if ($i<10000) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   165
						$entryfile .= "0";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   166
						if ($i<1000) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   167
							$entryfile .= "0";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   168
							if ($i<100) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   169
								$entryfile .= "0";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   170
								if ($i<10) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   171
									$entryfile .= "0";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   172
		}}}}}}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   173
0d28b7c10758 First commit
ymh
parents:
diff changeset
   174
		$entryfile .= "$i";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   175
0d28b7c10758 First commit
ymh
parents:
diff changeset
   176
		if (is_file($entryfile.".cgi")) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   177
0d28b7c10758 First commit
ymh
parents:
diff changeset
   178
			$entry=file($entryfile.".cgi");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   179
			$postinfo=explode("|",$entry[0]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   180
			$postmaincontent=$this->gm2autobr($entry[2]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   181
			$postmorecontent=$this->gm2autobr($entry[3]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   182
0d28b7c10758 First commit
ymh
parents:
diff changeset
   183
			$post_author=trim($wpdb->escape($postinfo[1]));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   184
0d28b7c10758 First commit
ymh
parents:
diff changeset
   185
			$post_title=$this->gm2autobr($postinfo[2]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   186
			printf('<li>'.__('entry # %s : %s : by %s'), $entryfile, $post_title, $postinfo[1]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   187
			$post_title=$wpdb->escape($post_title);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   188
0d28b7c10758 First commit
ymh
parents:
diff changeset
   189
			$postyear=$postinfo[6];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   190
			$postmonth=zeroise($postinfo[4],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   191
			$postday=zeroise($postinfo[5],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   192
			$posthour=zeroise($postinfo[7],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   193
			$postminute=zeroise($postinfo[8],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   194
			$postsecond=zeroise($postinfo[9],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   195
0d28b7c10758 First commit
ymh
parents:
diff changeset
   196
			if (($postinfo[10]=="PM") && ($posthour!="12"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   197
				$posthour=$posthour+12;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   198
0d28b7c10758 First commit
ymh
parents:
diff changeset
   199
			$post_date="$postyear-$postmonth-$postday $posthour:$postminute:$postsecond";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   200
0d28b7c10758 First commit
ymh
parents:
diff changeset
   201
			$post_content=$postmaincontent;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   202
			if (strlen($postmorecontent)>3)
0d28b7c10758 First commit
ymh
parents:
diff changeset
   203
				$post_content .= "<!--more--><br /><br />".$postmorecontent;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   204
			$post_content=$wpdb->escape($post_content);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   205
0d28b7c10758 First commit
ymh
parents:
diff changeset
   206
			$post_karma=$postinfo[12];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   207
0d28b7c10758 First commit
ymh
parents:
diff changeset
   208
			$post_status = 'publish'; //in greymatter, there are no drafts
0d28b7c10758 First commit
ymh
parents:
diff changeset
   209
			$comment_status = 'open';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   210
			$ping_status = 'closed';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   211
0d28b7c10758 First commit
ymh
parents:
diff changeset
   212
			if ($post_ID = post_exists($post_title, '', $post_date)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   213
				echo ' ';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   214
				_e('(already exists)');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   215
			} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   216
				//just so that if a post already exists, new users are not created by checkauthor
0d28b7c10758 First commit
ymh
parents:
diff changeset
   217
				// we'll check the author is registered, or if it's a deleted author
0d28b7c10758 First commit
ymh
parents:
diff changeset
   218
				$user_id = username_exists($post_author);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   219
				if (!$user_id) {	// if deleted from GM, we register the author as a level 0 user
0d28b7c10758 First commit
ymh
parents:
diff changeset
   220
					$user_ip="127.0.0.1";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   221
					$user_domain="localhost";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   222
					$user_browser="server";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   223
					$user_joindate="1979-06-06 00:41:00";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   224
					$user_login=$wpdb->escape($post_author);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   225
					$pass1=$wpdb->escape("password");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   226
					$user_nickname=$wpdb->escape($post_author);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   227
					$user_email=$wpdb->escape("user@deleted.com");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   228
					$user_url=$wpdb->escape("");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   229
					$user_joindate=$wpdb->escape($user_joindate);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   230
0d28b7c10758 First commit
ymh
parents:
diff changeset
   231
					$user_info = array("user_login"=>$user_login, "user_pass"=>$pass1, "user_nickname"=>$user_nickname, "user_email"=>$user_email, "user_url"=>$user_url, "user_ip"=>$user_ip, "user_domain"=>$user_domain, "user_browser"=>$user_browser, "dateYMDhour"=>$user_joindate, "user_level"=>0, "user_idmode"=>"nickname");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   232
					$user_id = wp_insert_user($user_info);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   233
					$this->gmnames[$postinfo[1]] = $user_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   234
0d28b7c10758 First commit
ymh
parents:
diff changeset
   235
					echo ': ';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   236
					printf(__('registered deleted user %s at level 0 '), "<em>$user_login</em>");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   237
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   238
0d28b7c10758 First commit
ymh
parents:
diff changeset
   239
				if (array_key_exists($postinfo[1], $this->gmnames)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   240
					$post_author = $this->gmnames[$postinfo[1]];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   241
				} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   242
					$post_author = $user_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   243
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   244
0d28b7c10758 First commit
ymh
parents:
diff changeset
   245
				$postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_modified', 'post_modified_gmt');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   246
				$post_ID = wp_insert_post($postdata);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   247
				if ( is_wp_error( $post_ID ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   248
					return $post_ID;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   249
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   250
0d28b7c10758 First commit
ymh
parents:
diff changeset
   251
			$c=count($entry);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   252
			if ($c>4) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   253
				$numAddedComments = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   254
				$numComments = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   255
				for ($j=4;$j<$c;$j++) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   256
					$entry[$j]=$this->gm2autobr($entry[$j]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   257
					$commentinfo=explode("|",$entry[$j]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   258
					$comment_post_ID=$post_ID;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   259
					$comment_author=$wpdb->escape($commentinfo[0]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   260
					$comment_author_email=$wpdb->escape($commentinfo[2]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   261
					$comment_author_url=$wpdb->escape($commentinfo[3]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   262
					$comment_author_IP=$wpdb->escape($commentinfo[1]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   263
0d28b7c10758 First commit
ymh
parents:
diff changeset
   264
					$commentyear=$commentinfo[7];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   265
					$commentmonth=zeroise($commentinfo[5],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   266
					$commentday=zeroise($commentinfo[6],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   267
					$commenthour=zeroise($commentinfo[8],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   268
					$commentminute=zeroise($commentinfo[9],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   269
					$commentsecond=zeroise($commentinfo[10],2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   270
					if (($commentinfo[11]=="PM") && ($commenthour!="12"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   271
						$commenthour=$commenthour+12;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   272
					$comment_date="$commentyear-$commentmonth-$commentday $commenthour:$commentminute:$commentsecond";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   273
0d28b7c10758 First commit
ymh
parents:
diff changeset
   274
					$comment_content=$wpdb->escape($commentinfo[12]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   275
0d28b7c10758 First commit
ymh
parents:
diff changeset
   276
					if (!comment_exists($comment_author, $comment_date)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   277
						$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_author_email', 'comment_author_IP', 'comment_date', 'comment_content', 'comment_approved');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   278
						$commentdata = wp_filter_comment($commentdata);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   279
						wp_insert_comment($commentdata);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   280
						$numAddedComments++;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   281
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   282
					$numComments++;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   283
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   284
				if ($numAddedComments > 0) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   285
					echo ': ';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   286
				printf( _n('imported %s comment', 'imported %s comments', $numAddedComments) , $numAddedComments);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   287
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   288
				$preExisting = $numComments - numAddedComments;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   289
				if ($preExisting > 0) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   290
					echo ' ';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   291
					printf( _n( 'ignored %s pre-existing comment', 'ignored %s pre-existing comments', $preExisting ) , $preExisting);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   292
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   293
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   294
			echo '... <strong>'.__('Done').'</strong></li>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   295
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   296
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   297
	do_action('import_done', 'greymatter');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   298
	?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   299
</ul><strong><?php _e('Done') ?></strong></li></ul>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   300
<p>&nbsp;</p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   301
<p><?php _e('Completed GreyMatter import!') ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   302
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   303
	$this->footer();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   304
	return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   305
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   306
0d28b7c10758 First commit
ymh
parents:
diff changeset
   307
	function dispatch() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   308
		if (empty ($_GET['step']))
0d28b7c10758 First commit
ymh
parents:
diff changeset
   309
			$step = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   310
		else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   311
			$step = (int) $_GET['step'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   312
0d28b7c10758 First commit
ymh
parents:
diff changeset
   313
		switch ($step) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   314
			case 0 :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   315
				$this->greet();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   316
				break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   317
			case 1:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   318
				check_admin_referer('import-greymatter');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   319
				$result = $this->import();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   320
				if ( is_wp_error( $result ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   321
					echo $result->get_error_message();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   322
				break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   323
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   324
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   325
0d28b7c10758 First commit
ymh
parents:
diff changeset
   326
	function GM_Import() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   327
		// Nothing.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   328
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   329
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   330
0d28b7c10758 First commit
ymh
parents:
diff changeset
   331
$gm_import = new GM_Import();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   332
0d28b7c10758 First commit
ymh
parents:
diff changeset
   333
register_importer('greymatter', __('GreyMatter'), __('Import users, posts, and comments from a Greymatter blog.'), array ($gm_import, 'dispatch'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   334
?>