WordPress »» Nucleus CMS »» convertor
-This tool will convert your WordPress blog (tested w/ 3.1.x), into Nucleus CMS weblog. First, install Nucleus, in a default install, and only after that run this tool. It will transfer all categories, posts, and comments into blog #1.
Please correct these errors first!"; - } else { - /* */ - /* transfer data ! */ - /* */ - $prefixwp=$_POST['wpprefix']; - - /* *********************************************** */ - echo "
Getting encoding...
"; - $query="select option_value from ".$prefixwp."options where option_name='blog_charset'"; - $querywp=mysql_query($query,$linkwp) or die($query); - if ($row=mysql_fetch_object($querywp)) - $input=$row->option_value; - else - $input="utf-8"; - echo "Encoding: $input
"; + $isok = true; - /* *********************************************** */ - echo "Transfering categories...
"; - mysql_query("delete from ". sql_table('category') . " where cdesc='@wordpress'",$linkblogcms); - $q = mysql_query("SELECT count(*) as result FROM " . sql_table('category')); - $total_row = mysql_fetch_object($q); - $total_num = $total_row->result; - $catdd = $total_num; - $total_num++; + // connect to WordPress database + $linkwp = @mysql_connect($_POST['wphost'], $_POST['wpusername'], $_POST['wppassword'], true); + if ( $linkwp == false ) + error("Cannot connect to WordPress DB.."); + else + { + @mysql_select_db($_POST['wpdatabase'], $linkwp) or error("Cannot select WordPress DB..."); + } + + // connect to Nucleus CMS database + /* + $linkblogcms = @mysql_connect($_POST['blogcmshost'],$_POST['blogcmsusername'],$_POST['blogcmspassword'],true); + if($linkblogcms==false) + error("Cannot connect to Nucleus DB.."); + else { + @mysql_select_db($_POST['blogcmsdatabase'],$linkblogcms) or error("Cannot select Nucleus DB..."); + } + */ - $query="SELECT * FROM ".$prefixwp."term_taxonomy , ".$prefixwp."terms WHERE ".$prefixwp."term_taxonomy.term_taxonomy_id = ".$prefixwp."terms.term_id AND ".$prefixwp."term_taxonomy.taxonomy='category'"; - $querywp=mysql_query($query,$linkwp) or die($query); - echo "rows to transfer: ".mysql_num_rows($querywp)."
"; - echo ""; - $cate_map = array(); - while ($row=mysql_fetch_object($querywp)) { - echo $total_num.", "; - $cate_map[$row->term_id] = $total_num; - $query= - "INSERT INTO " . sql_table('category') . - " (catid,cblog,cname,cdesc) values (". - intval($total_num).",1,'".encoding($row->name)."','@wordpress')"; - $result = mysql_query($query,$linkblogcms) or die($query); - $total_num++; - } - echo "
"; + if ( !$isok ) + { + echo "Please correct these errors first!
"; + } + else + { + /* */ + /* transfer data ! */ + /* */ + $prefixwp = $_POST['wpprefix']; - /* *********************************************** */ - echo "
Transfering posts and comments...
"; - mysql_query("delete from " . sql_table('comment') . " where chost='@wordpress'",$linkblogcms); - $query="select * from ".$prefixwp."posts where post_status='publish' order by ID"; - $querywp=mysql_query($query,$linkwp) or die($query); - echo "rows to transfer: ".mysql_num_rows($querywp)."
"; - echo ""; - $i=1; - while ($row=mysql_fetch_object($querywp)) { - echo $i++.", "; - // find category - $query = 'select * from '.$prefixwp.'term_relationships, '.$prefixwp.'term_taxonomy where '.$prefixwp.'term_relationships.term_taxonomy_id='.$prefixwp.'term_taxonomy.term_taxonomy_id and object_id='.$row->ID.' and '.$prefixwp.'term_taxonomy.taxonomy=\'category\' limit 1'; - $catwp = mysql_query($query, $linkwp) or die($query); - $category = mysql_fetch_object($catwp); - $cat = $cate_map[$category->term_id]; - if (empty($cat)) $cat = 1; + /* *********************************************** */ + echo "
Getting encoding...
"; + $query = "SELECT option_value FROM " . $prefixwp . "options WHERE option_name='blog_charset'"; + $querywp = mysql_query($query, $linkwp) or die($query); + if ( $row = mysql_fetch_object($querywp) ) + $input = $row->option_value; + else + $input = "utf-8"; + echo "Encoding: $input
"; - // insert post - $query= - "INSERT INTO " . sql_table('item') . " ". - "(ititle,ibody,iblog,iauthor,itime,icat) values (". - "'".addslashes(encoding($row->post_title))."','".addslashes(paragraph(encoding(stripslashes($row->post_content)),false))."',1,1,'".$row->post_date."',$cat)"; - $result = mysql_query($query,$linkblogcms) or die($query); - $itemid=mysql_insert_id($linkblogcms); + /* *********************************************** */ + echo "Transfering categories...
"; + DB::execute("DELETE FROM " . sql_table('category') . " WHERE cdesc='@wordpress'"); + $total_num = DB::getValue("SELECT count(*) as result FROM " . sql_table('category')); + $catdd = $total_num; + $total_num++; - // insert comments - $query="select * from ".$prefixwp."comments where comment_post_ID=".$row->ID; - $querywp_detail=mysql_query($query,$linkwp) or die($query); - while ($row_detail=mysql_fetch_object($querywp_detail)) { - $url=$row_detail->comment_author_email; - if (!empty($row_detail->comment_author_url)) $url=$row_detail->comment_author_url; - $query= - "INSERT INTO " . sql_table('comment') . - " (cbody,cuser,cmail,cmember,citem,ctime,cip,cblog,chost) values (". - "'".addslashes(paragraph(encoding(strip_tags(stripslashes($row_detail->comment_content))),true))."',". - "'".encoding($row_detail->comment_author)."',". - "'$url',". - "0,". - "$itemid,". - "'".$row_detail->comment_date."',". - "'".$row_detail->comment_author_IP."',". - "1,". - "'@wordpress')"; - $result = mysql_query($query,$linkblogcms) or die($query); - } - } - echo ""; + $query = "SELECT * FROM " . $prefixwp . "term_taxonomy , " . $prefixwp . "terms WHERE " . $prefixwp . "term_taxonomy.term_taxonomy_id = " + . $prefixwp . "terms.term_id AND " . $prefixwp . "term_taxonomy.taxonomy='category'"; + $querywp = mysql_query($query, $linkwp) or die($query); + echo "rows to transfer: " . mysql_num_rows($querywp) . "
"; + echo ""; + $cate_map = array(); + while ( $row = mysql_fetch_object($querywp) ) + { + echo $total_num . ", "; + $cate_map[$row->term_id] = $total_num; + $query = sprintf("INSERT INTO %s (catid,cblog,cname,cdesc) VALUES (%d,1,'%s','@wordpress')" + , sql_table('category'), intval($total_num), encoding($row->name)); + if ( DB::execute($query) === FALSE ) + { + die($query); + } + $total_num++; + } + echo "
"; - // done - echo "Done! Enjoy your stay in Nucleus
"; - die; - } + /* *********************************************** */ + echo "Transfering posts and comments...
"; + DB::execute("DELETE FROM " . sql_table('comment') . " WHERE chost='@wordpress'"); + $query = "SELECT * FROM " . $prefixwp . "posts WHERE post_status='publish' ORDER BY ID"; + $querywp = mysql_query($query, $linkwp) or die($query); + echo "rows to transfer: " . mysql_num_rows($querywp) . "
"; + echo ""; + $i = 1; + while ( $row = mysql_fetch_object($querywp) ) + { + echo $i++ . ", "; + // find category + $query = 'SELECT * FROM ' . $prefixwp . 'term_relationships, ' . $prefixwp . 'term_taxonomy WHERE ' . $prefixwp + . 'term_relationships.term_taxonomy_id=' . $prefixwp . 'term_taxonomy.term_taxonomy_id AND object_id=' . $row->ID . ' AND ' + . $prefixwp . 'term_taxonomy.taxonomy=\'category\' LIMIT 1'; + $catwp = mysql_query($query, $linkwp) or die($query); + $category = mysql_fetch_object($catwp); + $cat = $cate_map[$category->term_id]; + if ( empty($cat) ) $cat = 1; + // insert post + $query = sprintf("INSERT INTO %s (ititle,ibody,iblog,iauthor,itime,icat) VALUES (%s,%s,1,1,'%s',%d)" + , sql_table('item') + , DB::quoteValue(encoding($row->post_title)) + , DB::quoteValue(paragraph(encoding(stripslashes($row->post_content)), false)) + , $row->post_date + , $cat); + if ( DB::execute($query) === FALSE ) + { + die($query); + } + $itemid = DB::getInsertId(); + + // insert comments + $query = "SELECT * FROM " . $prefixwp . "comments WHERE comment_post_ID=" . $row->ID; + $querywp_detail = mysql_query($query, $linkwp) or die($query); + while ( $row_detail = mysql_fetch_object($querywp_detail) ) + { + $url = $row_detail->comment_author_email; + if ( !empty($row_detail->comment_author_url) ) $url = $row_detail->comment_author_url; + $query = sprintf("INSERT INTO %s (cbody,cuser,cmail,cmember,citem,ctime,cip,cblog,chost)" + . " VALUES (%s,%s,%s,0,%d,'%s',%s,1,'@wordpress')" + , sql_table('comment') + , DB::quoteValue(paragraph(encoding(strip_tags(stripslashes($row_detail->comment_content))), true)) + , encoding($row_detail->comment_author) + , DB::quoteValue($url) + , $itemid + , $row_detail->comment_date + , DB::quoteValue($row_detail->comment_author_IP)); + if ( DB::execute($query) === FALSE ) + { + die($query); + } + } + } + echo "
"; + + // done + echo "