<?php require_once('../wp-config.php'); require('upgrade-functions.php'); $wpvarstoreset = array('action', 'gmpath', 'archivespath', 'lastentry'); for ($i=0; $i<count($wpvarstoreset); $i += 1) { $wpvar = $wpvarstoreset[$i]; if (!isset($$wpvar)) { if (empty($_POST["$wpvar"])) { if (empty($_GET["$wpvar"])) { $$wpvar = ''; } else { $$wpvar = $_GET["$wpvar"]; } } else { $$wpvar = $_POST["$wpvar"]; } } } switch ($action) { case "step1": function gm2autobr($string) { // transforms GM's |*| into b2's <br />\n $string = str_replace("|*|","<br />\n",$string); return($string); } if (!chdir($archivespath)) die("Wrong path, $archivespath\ndoesn't exist\non the server"); if (!chdir($gmpath)) die("Wrong path, $gmpath\ndoesn't exist\non the server"); ?> <html> <head> <title>GM 2 b2 - converting...</title> <link rel="stylesheet" href="wp-admin/b2.css" type="text/css"> <style type="text/css"> <!-- <?php if (!preg_match("/Nav/",$HTTP_USER_AGENT)) { ?> textarea,input,select { background-color: #f0f0f0; border-width: 1px; border-color: #cccccc; border-style: solid; padding: 2px; margin: 1px; } <?php } ?> --> </style> </head> <body style="margin: 20px;"> <p><font face="times new roman" style="font-size: 39px;">gm 2 <img src="../wp-images/wpminilogo.png" width="50" height="50" border="0" alt="WP" align="top" /></font></p> <p>The importer is running...</p> <ul> <li>importing users... <ul><?php chdir($gmpath); $userbase = file("gm-authors.cgi"); $connexion = mysql_connect($server,$loginsql,$passsql) or die ("Oops, MySQL connection error ! Couldn't connect to $server with the username $loginsql"); $bdd = mysql_select_db(DB_NAME,$connexion) or die ("Oops, can't find any database named DB_NAME here !"); foreach($userbase as $user) { $userdata=explode("|", $user); $user_ip="127.0.0.1"; $user_domain="localhost"; $user_browser="server"; $s=$userdata[4]; $user_joindate=substr($s,6,4)."-".substr($s,0,2)."-".substr($s,3,2)." 00:00:00"; $user_login=addslashes($userdata[0]); $pass1=addslashes($userdata[1]); $user_nickname=addslashes($userdata[0]); $user_email=addslashes($userdata[2]); $user_url=addslashes($userdata[3]); $user_joindate=addslashes($user_joindate); $loginthere = $wpdb->get_var("SELECT user_login FROM $wpdb->users WHERE user_login = '$user_login'"); if ($loginthere) { echo "<li>user <i>$user_login</i>... <b>Already exists</b></li>"; continue; } $query = "INSERT INTO $wpdb->users (user_login,user_pass,user_nickname,user_email,user_url,user_ip,user_domain,user_browser,dateYMDhour,user_level,user_idmode) VALUES ('$user_login','$pass1','$user_nickname','$user_email','$user_url','$user_ip','$user_domain','$user_browser','$user_joindate','1','nickname')"; $result = mysql_query($query); if ($result==false) { die ("<strong>ERROR</strong>: couldn't register an user!"); } echo "<li>user <i>$user_login</i>... <b>Done</b></li>"; } ?></ul><b>Done</b></li> <li>importing posts, comments, and karma...<br /><ul><?php chdir($archivespath); for($i = 0; $i <= $lastentry; $i = $i + 1) { $entryfile = ""; if ($i<10000000) { $entryfile .= "0"; if ($i<1000000) { $entryfile .= "0"; if ($i<100000) { $entryfile .= "0"; if ($i<10000) { $entryfile .= "0"; if ($i<1000) { $entryfile .= "0"; if ($i<100) { $entryfile .= "0"; if ($i<10) { $entryfile .= "0"; }}}}}}} $entryfile .= "$i"; if (is_file($entryfile.".cgi")) { $entry=file($entryfile.".cgi"); echo "<li>entry # $entryfile "; $postinfo=explode("|",$entry[0]); $postmaincontent=gm2autobr($entry[2]); $postmorecontent=gm2autobr($entry[3]); $post_author=trim(addslashes($postinfo[1])); // we'll check the author is registered, or if it's a deleted author $sql = "SELECT * FROM $wpdb->users WHERE user_login = '$post_author'"; $result = mysql_query($sql); if (!mysql_num_rows($result)) { // if deleted from GM, we register the author as a level 0 user in b2 $user_ip="127.0.0.1"; $user_domain="localhost"; $user_browser="server"; $user_joindate="1979-06-06 00:41:00"; $user_login=addslashes($post_author); $pass1=addslashes("password"); $user_nickname=addslashes($post_author); $user_email=addslashes("user@deleted.com"); $user_url=addslashes(""); $user_joindate=addslashes($user_joindate); $query = "INSERT INTO $wpdb->users (user_login,user_pass,user_nickname,user_email,user_url,user_ip,user_domain,user_browser,dateYMDhour,user_level,user_idmode) VALUES ('$user_login','$pass1','$user_nickname','$user_email','$user_url','$user_ip','$user_domain','$user_browser','$user_joindate','0','nickname')"; $result = mysql_query($query); if ($result==false) { die ("<strong>ERROR</strong>: couldn't register an user!"); } echo ": registered deleted user <i>$user_login</i> at level 0 "; } $sql = "SELECT * FROM $wpdb->users WHERE user_login = '$post_author'"; $result = mysql_query($sql); $myrow = mysql_fetch_array($result); $post_author_ID=$myrow[0]; $post_title=gm2autobr($postinfo[2]); $post_title=addslashes($post_title); $postyear=$postinfo[6]; $postmonth=zeroise($postinfo[4],2); $postday=zeroise($postinfo[5],2); $posthour=zeroise($postinfo[7],2); $postminute=zeroise($postinfo[8],2); $postsecond=zeroise($postinfo[9],2); if (($postinfo[10]=="PM") && ($posthour!="12")) $posthour=$posthour+12; $post_date="$postyear-$postmonth-$postday $posthour:$postminute:$postsecond"; $post_content=$postmaincontent; if (strlen($postmorecontent)>3) $post_content .= "<!--more--><br /><br />".$postmorecontent; $post_content=addslashes($post_content); $post_karma=$postinfo[12]; $query = "INSERT INTO $wpdb->posts (post_author,post_date,post_content,post_title) VALUES ('$post_author_ID','$post_date','$post_content','$post_title')"; $result = mysql_query($query) or die(mysql_error()); if (!$result) die ("Error in posting..."); $sql2 = "SELECT * FROM $wpdb->posts WHERE 1=1 ORDER BY ID DESC LIMIT 1"; $result2 = mysql_query($sql2); $myrow2 = mysql_fetch_array($result2); $post_ID=$myrow2[0]; // Grab a default category. $post_category = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories LIMIT 1"); // Update the post2cat table. $exists = $wpdb->get_row("SELECT * FROM $wpdb->post2cat WHERE post_id = $post_ID AND category_id = $post_category"); if (!$exists) { $wpdb->query(" INSERT INTO $wpdb->post2cat (post_id, category_id) VALUES ($post_ID, $post_category) "); } $c=count($entry); if ($c>4) { for ($j=4;$j<$c;$j++) { $entry[$j]=gm2autobr($entry[$j]); $commentinfo=explode("|",$entry[$j]); $comment_post_ID=$post_ID; $comment_author=addslashes($commentinfo[0]); $comment_author_email=addslashes($commentinfo[2]); $comment_author_url=addslashes($commentinfo[3]); $comment_author_IP=addslashes($commentinfo[1]); $commentyear=$commentinfo[7]; $commentmonth=zeroise($commentinfo[5],2); $commentday=zeroise($commentinfo[6],2); $commenthour=zeroise($commentinfo[8],2); $commentminute=zeroise($commentinfo[9],2); $commentsecond=zeroise($commentinfo[10],2); if (($commentinfo[11]=="PM") && ($commenthour!="12")) $commenthour=$commenthour+12; $comment_date="$commentyear-$commentmonth-$commentday $commenthour:$commentminute:$commentsecond"; $comment_content=addslashes($commentinfo[12]); $sql3 = "INSERT INTO $wpdb->comments (comment_post_ID,comment_author,comment_author_email,comment_author_url,comment_author_IP,comment_date,comment_content) VALUES ('$comment_post_ID','$comment_author','$comment_author_email','$comment_author_url','$comment_author_IP','$comment_date','$comment_content')"; $result3 = mysql_query($sql3); if (!$result3) die ("There is an error with the database, it can't store your comment.."); } $comments=$c-4; echo ": imported $comments comment"; if ($comments>1) echo "s"; } echo "... <b>Done</b></li>"; } } upgrade_all(); ?> </ul><b>Done</b></li></ul> <p> </p> <p>Completed GM 2 b2 import !</p> <p>Now you can go and <a href="wp-login.php">log in</a>, have fun !</p> <?php break; default: ?><html> <head> <title>GM 2 b2 importer utility</title> <link rel="stylesheet" href="wp-admin/b2.css" type="text/css"> <style type="text/css"> <!-- <?php if (!preg_match("/Nav/",$HTTP_USER_AGENT)) { ?> textarea,input,select { background-color: #f0f0f0; border-width: 1px; border-color: #cccccc; border-style: solid; padding: 2px; margin: 1px; } <?php } ?> --> </style> </head> <body style="margin: 20px;"> <p><font face="times new roman" style="font-size: 39px;">gm 2 <img src="../wp-images/wpminilogo.png" width="50" height="50" border="0" alt="WP" align="top" /></font></p> <p>This is a basic GreyMatter to WordPress import script.</p> <p>What it does:</p> <ul> <li>parses gm-authors.cgi to import authors: everyone is imported at level 1</li> <li>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> </ul> <p>What it does not:</p> <ul> <li>parse gm-counter.cgi (what's the use of that file ?), 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> <li>import gm-templates. you'll start with the basic template wp.php</li> <li>doesn't keep entries on top</li> </ul> <p> </p> <h3>First step: install WordPress</h3> <p>Install the WordPress blog as explained in the <a href="../readme.html" target="_blank">ReadMe</a>, then immediately come back here.</p> <form name="stepOne" method="get"> <input type="hidden" name="action" value="step1" /> <h3>Second step: GreyMatter details:</h3> <p><table cellpadding="0"> <tr> <td>Path to GM files:</td> <td><input type="text" style="width:300px" name="gmpath" value="/home/my/site/cgi-bin/greymatter/" /></td> </tr> <tr> <td>Path to GM entries:</td> <td><input type="text" style="width:300px" name="archivespath" value="/home/my/site/cgi-bin/greymatter/archives/" /></td> </tr> <tr> <td colspan="2"><br />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't know that number, just log into your FTP and look it out<br />in the entries' folder)</td> </tr> <tr> <td>Last entry's number:</td> <td><input type="text" name="lastentry" value="00000001" /></td> </tr> </table> </p> <p>When you're ready, click OK to start importing: <input type="submit" name="submit" value="OK" class="search" /></p> </form> </body> </html> <?php break; } ?>