微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

前些天,写了一个PHP脚本用于supesite7.0导入PHPCMS2008:

<?PHP
/*
supesite7.0导入PHPcms 2008 sp3 导入脚本
[email protected]
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中已发表的文章,未审核通过和垃圾箱的都没有导入。评论也是只有审核过的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐