OSDN Git Service

ADD:adminskinvarsのヘルプを追加
[nucleus-jp/nucleus-next.git] / nucleus / convert / wordpress.php
index 93d8da4..9e5a78c 100644 (file)
 /*
   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_";
     }
   }
   
@@ -104,130 +104,148 @@ a:hover{text-decoration:underline}
 <body>
   <div id='content'>
   <h1><small>WordPress &raquo;&raquo;</small> Nucleus CMS <small>&raquo;&raquo; 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'>