前些天,写了一个PHP脚本用于supesite7.0导入PHPcms2008:
<?PHP
/*
supesite7.0导入PHPcms 2008 sp3 导入脚本
warran@qq.com
http://www.veryhuo.com
*/
header("Content-Type: text/html;charset=utf-8");
set_time_limit(0);
define('IN_ADMIN',TRUE);
define('IN_PHPCMS',TRUE);
require_once '../include/common.inc.PHP';
require_once '../include/admin/process.class.PHP';
require '../include/priv_role.class.PHP';
require_once '../include/attachment.class.PHP';
require_once '../include/admin/content.class.PHP';
//数据库连接
//conn1为supesite数据库
//conn2为PHPcms数据库
$conn1=MysqL_connect("localhost","root","");
MysqL_select_db("site",$conn1);
$conn2=MysqL_connect("localhost","");
MysqL_select_db("PHPcms",$conn2);
//清空PHPcms 文章和评论数据
if($_GET["action"]=='clean'){
MysqL_query("delete from PHPcms_content where 1=1",$conn2);
MysqL_query("delete from PHPcms_content_count where 1=1",$conn2);
MysqL_query("delete from PHPcms_c_news where 1=1",$conn2);
MysqL_query("delete from PHPcms_content_tag where 1=1",$conn2);
MysqL_query("delete from PHPcms_keyword where 1=1",$conn2);
MysqL_query("delete from PHPcms_member_group_priv where 1=1",$conn2);
MysqL_query("delete from PHPcms_comment where 1=1",$conn2);
exit("清空完成");
}
if($_GET["action"]=='test'){
echo hasuser("warran");
exit();
}
//读取分类表
$result=MysqL_query("select catid,catname from PHPcms_category",$conn2);
while($row=MysqL_fetch_array($result)){
$cat["$row[catname]"]=$row[catid];
}
$_roleid = cache_read('admin_role_'.$_userid.'.PHP');
$priv_role = new priv_role();
$c = new content();
$tmp=0;
//添加文章
$result=MysqL_query("select supe_spaceitems.*,supe_categories.name as catname from supe_spaceitems,supe_categories where supe_spaceitems.catid=supe_categories.catid and supe_spaceitems.folder=1",$conn1);
while($row=MysqL_fetch_array($result)){
//使用PHPcms自带的类,添加内容
$data["catid"]=$cat[$row["catname"]];
$attachment = new attachment("PHPcms",$data["catid"]);
$data["title"]=addslashes($row["subject"]);
$data["style"]="";
$data["thumb"]="";
$res=MysqL_query("select * from supe_spacenews where itemid=$row[itemid]",$conn1);
$includetags="";
$message="";
while($rs=MysqL_fetch_array($res)){
$message.=$rs["message"];
if($rs["includetags"]!=''){
$includetags.=" ".$rs["includetags"];
}
}
$data["keywords"]=addslashes($includetags);
$data["author"]=addslashes($row["username"]);
$data["copyfrom"]=addslashes($row["newsauthor"]);
$data["description"]="";
$data["content"]=addslashes($message);
$data["paginationtype"]="0";
$data["maxcharperpage"]="10000";
$data["titleintact"]=addslashes($row["short_subject"]);
$data["islink"]="99";
$time_tmp=date("Y-m-d h:i:s");
$data["inputtime"]=$time_tmp;
$data["posids"]="-99";
$data["groupids_view"]=array("-99");
$data["readpoint"]="";
$data["prefix"]="";
$data["template"]="show";
$data["status"]=99;
$data["updatetime"]=$time_tmp;
$contentid=$c->add($data,"",1);
//添加评论
$res=MysqL_query("select * from supe_spacecomments where itemid=$row[itemid] and rates=0",$conn1);
$comment_num=0;
while($rs=MysqL_fetch_array($res)){
$comment["keyid"]="PHPcms-content-title-".$contentid;
if($rs["authorid"]==0){
$comment["username"]="游客";
$comment["userid"]=0;
}else{
$comment["username"]=addslashes($rs["author"]);
$hasuser=hasuser($rs["author"]);
if($hasuser==0){
$userinfo["username"]=addslashes($rs["author"]);
$userinfo["password"]="82790085228cf8a1e3bac41f45271e5f";
$userinfo["touserid"]=$rs["authorid"];
$userinfo["email"]="";
$comment["userid"]=adduser($userinfo);
}else{
$comment["userid"]=$hasuser;
}
}
$comment["content"]=$rs["message"];
$comment["ip"]=$rs["ip"];
$comment["addtime"]=$rs["dateline"];
if(MysqL_query("insert into PHPcms_comment(keyid,userid,username,content,ip,addtime,status) values('$comment[keyid]',$comment[userid],'$comment[username]','$comment[content]','$comment[ip]',$comment[addtime],1)",$conn2)){
$comment_num+=1;
}
}
MysqL_query("update PHPcms_content_count set comments=$comment_num,comments_checked=$comment_num where contentid=$contentid");
}
function dump($vars,$label = '',$return = false)
{
if (ini_get('html_errors')) {
$content = "<pre>";
if ($label != '') {
$content .= "<b>{$label} :</b>";
}
$content .= htmlspecialchars(print_r($vars,true));
$content .= "</pre>";
} else {
$content = $label . " :" . print_r($vars,true);
}
if ($return) { return $content; }
echo $content;
return null;
}
/*
向PHPcms中添加用户
*/
function adduser($userinfo){
global $conn2;
MysqL_query("insert into PHPcms_member(username,password,groupid,touserid,email) values('$userinfo[username]','$userinfo[password]',6,$userinfo[touserid],'$userinfo[email]')",$conn2);
$userid=MysqL_insert_id();
MysqL_query("insert into PHPcms_member_cache(username,$conn2);
return $userid;
}
/*
判断PHPcms中是否有此用户
*/
function hasuser($username)
{
global $conn2;
$res=MysqL_query("select userid from PHPcms_member where username='".$username."'",$conn2);
$row=MysqL_fetch_array($res);
if($row[0]){
//有用户
return $row[0];
}else{
//没用户
return 0;
}
}
?>
/*
supesite7.0导入PHPcms 2008 sp3 导入脚本
warran@qq.com
http://www.veryhuo.com
*/
header("Content-Type: text/html;charset=utf-8");
set_time_limit(0);
define('IN_ADMIN',TRUE);
define('IN_PHPCMS',TRUE);
require_once '../include/common.inc.PHP';
require_once '../include/admin/process.class.PHP';
require '../include/priv_role.class.PHP';
require_once '../include/attachment.class.PHP';
require_once '../include/admin/content.class.PHP';
//数据库连接
//conn1为supesite数据库
//conn2为PHPcms数据库
$conn1=MysqL_connect("localhost","root","");
MysqL_select_db("site",$conn1);
$conn2=MysqL_connect("localhost","");
MysqL_select_db("PHPcms",$conn2);
//清空PHPcms 文章和评论数据
if($_GET["action"]=='clean'){
MysqL_query("delete from PHPcms_content where 1=1",$conn2);
MysqL_query("delete from PHPcms_content_count where 1=1",$conn2);
MysqL_query("delete from PHPcms_c_news where 1=1",$conn2);
MysqL_query("delete from PHPcms_content_tag where 1=1",$conn2);
MysqL_query("delete from PHPcms_keyword where 1=1",$conn2);
MysqL_query("delete from PHPcms_member_group_priv where 1=1",$conn2);
MysqL_query("delete from PHPcms_comment where 1=1",$conn2);
exit("清空完成");
}
if($_GET["action"]=='test'){
echo hasuser("warran");
exit();
}
//读取分类表
$result=MysqL_query("select catid,catname from PHPcms_category",$conn2);
while($row=MysqL_fetch_array($result)){
$cat["$row[catname]"]=$row[catid];
}
$_roleid = cache_read('admin_role_'.$_userid.'.PHP');
$priv_role = new priv_role();
$c = new content();
$tmp=0;
//添加文章
$result=MysqL_query("select supe_spaceitems.*,supe_categories.name as catname from supe_spaceitems,supe_categories where supe_spaceitems.catid=supe_categories.catid and supe_spaceitems.folder=1",$conn1);
while($row=MysqL_fetch_array($result)){
//使用PHPcms自带的类,添加内容
$data["catid"]=$cat[$row["catname"]];
$attachment = new attachment("PHPcms",$data["catid"]);
$data["title"]=addslashes($row["subject"]);
$data["style"]="";
$data["thumb"]="";
$res=MysqL_query("select * from supe_spacenews where itemid=$row[itemid]",$conn1);
$includetags="";
$message="";
while($rs=MysqL_fetch_array($res)){
$message.=$rs["message"];
if($rs["includetags"]!=''){
$includetags.=" ".$rs["includetags"];
}
}
$data["keywords"]=addslashes($includetags);
$data["author"]=addslashes($row["username"]);
$data["copyfrom"]=addslashes($row["newsauthor"]);
$data["description"]="";
$data["content"]=addslashes($message);
$data["paginationtype"]="0";
$data["maxcharperpage"]="10000";
$data["titleintact"]=addslashes($row["short_subject"]);
$data["islink"]="99";
$time_tmp=date("Y-m-d h:i:s");
$data["inputtime"]=$time_tmp;
$data["posids"]="-99";
$data["groupids_view"]=array("-99");
$data["readpoint"]="";
$data["prefix"]="";
$data["template"]="show";
$data["status"]=99;
$data["updatetime"]=$time_tmp;
$contentid=$c->add($data,"",1);
//添加评论
$res=MysqL_query("select * from supe_spacecomments where itemid=$row[itemid] and rates=0",$conn1);
$comment_num=0;
while($rs=MysqL_fetch_array($res)){
$comment["keyid"]="PHPcms-content-title-".$contentid;
if($rs["authorid"]==0){
$comment["username"]="游客";
$comment["userid"]=0;
}else{
$comment["username"]=addslashes($rs["author"]);
$hasuser=hasuser($rs["author"]);
if($hasuser==0){
$userinfo["username"]=addslashes($rs["author"]);
$userinfo["password"]="82790085228cf8a1e3bac41f45271e5f";
$userinfo["touserid"]=$rs["authorid"];
$userinfo["email"]="";
$comment["userid"]=adduser($userinfo);
}else{
$comment["userid"]=$hasuser;
}
}
$comment["content"]=$rs["message"];
$comment["ip"]=$rs["ip"];
$comment["addtime"]=$rs["dateline"];
if(MysqL_query("insert into PHPcms_comment(keyid,userid,username,content,ip,addtime,status) values('$comment[keyid]',$comment[userid],'$comment[username]','$comment[content]','$comment[ip]',$comment[addtime],1)",$conn2)){
$comment_num+=1;
}
}
MysqL_query("update PHPcms_content_count set comments=$comment_num,comments_checked=$comment_num where contentid=$contentid");
}
function dump($vars,$label = '',$return = false)
{
if (ini_get('html_errors')) {
$content = "<pre>";
if ($label != '') {
$content .= "<b>{$label} :</b>";
}
$content .= htmlspecialchars(print_r($vars,true));
$content .= "</pre>";
} else {
$content = $label . " :" . print_r($vars,true);
}
if ($return) { return $content; }
echo $content;
return null;
}
/*
向PHPcms中添加用户
*/
function adduser($userinfo){
global $conn2;
MysqL_query("insert into PHPcms_member(username,password,groupid,touserid,email) values('$userinfo[username]','$userinfo[password]',6,$userinfo[touserid],'$userinfo[email]')",$conn2);
$userid=MysqL_insert_id();
MysqL_query("insert into PHPcms_member_cache(username,$conn2);
return $userid;
}
/*
判断PHPcms中是否有此用户
*/
function hasuser($username)
{
global $conn2;
$res=MysqL_query("select userid from PHPcms_member where username='".$username."'",$conn2);
$row=MysqL_fetch_array($res);
if($row[0]){
//有用户
return $row[0];
}else{
//没用户
return 0;
}
}
?>
需要的可以试用一下
完成了如下功能:
1、文章导入
2、评论导入
3、关键字导入
4、如果supesite中某个用户做了评论,则在PHPcms中建立相应的帐号,并将评论和其绑定
使用方法:
1、因为没有导入分类,要在PHPcms中手动建立同名分类,因为管理是根据分类名称关联的
2、修改conn1和conn2数据库地址、库名、用户、密码
3、将代码存为conv.PHP,放到PHPcms根目录的 temp 文件夹中
4、以管理员身份登录PHPcms
5、浏览器中运行localhost/temp/conv.PHP
需要说明的是:
1、数据库连接要改成自己的
2、代码中有些目录结构,表名要注意,可能你的环境和我的不一样
3、当运行conv.PHP?action=clean的时候,可以清空PHPcms中的文章、评论、关键字等数据
4、function dump可以用更美观的形式打印array数组,用以调试
5、附件手动复制到相应的目录下就可以了,按supesite的结构复制过来attachments/***
6、因为我的PHPcms是和ucenter整合的,所以导过来的用户在PHPcms中,密码是什么无所谓的,以后的注册和登录验证都是走ucenter那边
7、只导入了supesite中已发表的文章,未审核通过和垃圾箱的都没有导入。评论也是只有审核过的