Supesite7.0 转换导入phpcms 2008 sp3的方法

前些天,写了一个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;
}
}
?>

需要的可以试用一下

完成了如下功能:
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中已发表的文章,未审核通过和垃圾箱的都没有导入。评论也是只有审核过的

相关文章

文章浏览阅读483次。dedecms织梦频道模板中调用栏目分类并排...
文章浏览阅读284次。我们在用织梦建站的过程中,难免会遇到各...
文章浏览阅读152次。seo专题是seo优化必不可少的一环,对于网...
文章浏览阅读142次。在Dedecms中,在列表页调用文章摘要的方...
文章浏览阅读234次。织梦DedeCMS文章内容发布时可以选择“头...
文章浏览阅读701次。虽然织梦DedeCMS因为安全问题被人所诟病...