/*
v1.1 - add robustness code for category creation and item adding (admun)
v1.2 - add sql_table()
-*/
+ */
include("../../config.php");
function def($s){
if (isset($_POST[$s]))
- echo addslashes(stripslashes($_POST[$s]));
+ echo Entity::hsc($_POST[$s]);
else {
- if (strstr($s,'host')) echo "localhost";
- if (strstr($s,'username')) echo "root";
- if (strstr($s,'wpprefix')) echo "wp_";
+ if (i18n::strpos($s,'host')!==FALSE) echo "localhost";
+ if (i18n::strpos($s,'username')!==FALSE) echo "root";
+ if (i18n::strpos($s,'wpprefix')!==FALSE) echo "wp_";
}
}
<body>
<div id='content'>
<h1><small>WordPress »»</small> Nucleus CMS <small>»» convertor</small></h1>
-
<?php
- if (!isset($_POST['convert'])) {
+if ( !isset($_POST['convert']) )
+{
?>
<p>This tool will convert your <a href='http://wordpress.org/'>WordPress blog</a> (tested w/ 3.1.x), into <a href='http://nucleuscms.org'> Nucleus CMS weblog</a>. 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.</p>
<?php
- } else {
+}
+else
+{
- $isok=true;
-
- // 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...");
- }
-
- if (!$isok) {
- echo "<p>Please correct these errors first!</p><hr />";
- } else {
- /* */
- /* transfer data ! */
- /* */
- $prefixwp=$_POST['wpprefix'];
-
- /* *********************************************** */
- echo "<h2>Getting encoding...</h2>";
- $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 "<p>Encoding: $input</p>";
+ $isok = true;
- /* *********************************************** */
- echo "<h2>Transfering categories...</h2>";
- 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...");
+ }
- $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 "<p>rows to transfer: ".mysql_num_rows($querywp)."</p>";
- echo "<p>";
- $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 "</p>";
+ // 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...");
+ }
+ */
- /* *********************************************** */
- echo "<h2>Transfering posts and comments...</h2>";
- 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 "<p>rows to transfer: ".mysql_num_rows($querywp)."</p>";
- echo "<p>";
- $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;
+ if ( !$isok )
+ {
+ echo "<p>Please correct these errors first!</p><hr />";
+ }
+ else
+ {
+ /* */
+ /* transfer data ! */
+ /* */
+ $prefixwp = $_POST['wpprefix'];
- // 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 "<h2>Getting encoding...</h2>";
+ $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 "<p>Encoding: $input</p>";
- // 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 "</p>";
+ /* *********************************************** */
+ echo "<h2>Transfering categories...</h2>";
+ 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++;
- // done
- echo "<h2>Done! Enjoy your stay in Nucleus</h2>";
- die;
- }
+ $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 "<p>rows to transfer: " . mysql_num_rows($querywp) . "</p>";
+ echo "<p>";
+ $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 "</p>";
+
+ /* *********************************************** */
+ echo "<h2>Transfering posts and comments...</h2>";
+ 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 "<p>rows to transfer: " . mysql_num_rows($querywp) . "</p>";
+ echo "<p>";
+ $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 "</p>";
+
+ // done
+ echo "<h2>Done! Enjoy your stay in Nucleus</h2>";
+ die;
}
+
+}
?>
<form method='post' action='./wordpress.php'>