一个把 pLog 博客数据移植到 Mambo 的脚本

由 徐永久 发表于 2005年03月24日 13:34。

做知识管理,仅仅有博客是不能实现一个知识门户的功能的。因此需要一个功能较强,定制灵活的 CMS 系统。 Mambo 确实是一款不错的内容管理软件。虽然我较早时发布过一个 java.freelamp.com 的网站,也采用 Mambo ,那个时候也是整合了一下,后来由于没有时间写内容,所以关闭了该站。 今天有心把 pLog 转化到 Mambo ,所以写了个PHP脚本把 pLog 的数据迁移到 Mambo 上。

迁移之前,需要根据博客中不同的类别归类到几个 section 中,然后手工在 Mambo 后台建立 section 并根据博客中这些分类的名字分别建立分类到对应的 section 中。这部分工作由于 category 和 section 之间的关系必须人工确定所以只能手动完成。接下来就可以运行下面的程序,把博客中的数据导入到 Mambo 了。

// Main Prog.
include(“adodb.inc.php”);
global $conn ;
$conn = &ADONewConnection(‘mysql’);
// $conn->debug=true;
$conn->PConnect(‘localhost’,’root’,’password’,’plog’);
$conn2 = &ADONewConnection(‘mysql’);
$conn2->PConnect(‘localhost’,’root’,’password’,’mambo’);
$sql = ‘SELECT id,name FROM plog_articles_categories WHERE blog_id=1’;
$rs = $conn->Execute($sql);
while ($row = $rs->FetchRow()) {
$id = $row[“id”];
$name = $row[“name”];
$sql = ‘SELECT c.section AS sec_id, c.id AS cat_id FROM mos_categories c JOIN mos_sections s ON ‘;
$sql .= ‘c.section=s.id WHERE c.name=”‘.$name.'”‘;
$rs2 = $conn2->Execute($sql);
$row2 = $rs2->FetchRow();
$rs2->Close();
$sec_id = $row2[“sec_id”];
$cat_id = $row2[“cat_id”];
// echo $sec_id.$cat_id.”\n”;
if ( $sec_id and $cat_id) {
$sql = ‘INSERT INTO mos_content (title,introtext,state,sectionid,catid,created,created_by) ‘;
$sql .= ‘SELECT topic,text,1,’.$sec_id.’,’.$cat_id.’,date,2 from plog.plog_articles ‘;
$sql .= ‘WHERE category_id=’.$id.’ AND blog_id=1′;

echo $sql.”\n”;
if (! $conn2->Execute($sql)) {
echo “Wrong SQL”;
return ;
}
}
}
$rs->Close();
$conn->Close();
$conn2->Close();
?>