迹忆博客
当前位置: 主页 > 趣味杂谈 > 观点与感想 > 文章

多说评论关闭,个人博客该怎么办

发布时间: 2017-04-23 作者: 迹忆 浏览次数:

2017年的六一,多说给了个人博客的博主们一个“重磅的礼物”:

多说使用将于2017年6月1日到期,请尽快迁移,详见duoshuo.com

看到这则消息,我相信大多数博主都吃了一惊。毕竟,多年积累了大量的评论数据。这些评论该何去何从。干脆有的博主就直接关闭了评论功能;有的继续坚持,直到最后一刻;有的就直接再找一个评论插件,前提当然能接手多说的评论数据,换到自己的个人博客上。总之,我们要和多说说拜拜了。

多说走了,马上就有很多插件出来接手。由多说的经验,我们在使用这些插件的时候一定要考虑到如果这些插件和多说一样,哪一天也关闭了,那我们岂不是得不偿失了。所以说最好的办法就是将多说的数据迁移到自己的博客中。也就是我们自己开发一个简单的评论功能。当然了,多说的数据是要兼容的。自己开发的评论功能并不需要多说的全部功能,也就是我们只需要多说的部分数据。

所以,第一步就是新建数据表,按照我们的表结构,导入多说的数据。要导入多说的数据,首先要了解多说评论的数据结构(多说为我们提供了导出的功能)。多说评论的数据主要分为两部分

threads 文章记录
{
         thread_id, 多说文章ID
         thread_key, 文章在当前站点中的唯一标识符,例如文章ID
         title, 文章的标题
         url,  文章的链接
         author_key,文章作者在本站的ID
         author_id, 文章作者的多说ID,如果为空,说明发表文章时没有登陆多说账号
         likes, 文章被点赞的次数
         views 文章的浏览次数
}
posts 评论的内容,不包括垃圾评论、删除的评论等
{
         post_id, 多说评论ID
         thread_id, 这条评论对应的文章id。也就是针对那篇文章发表的评论。
         message, 评论内容
         parents, 如果不为空,说明该条评论是针对某一条评论的回复,该字段值即为评论的id
         created_at, 评论发表时间
         author_id, 作者在多说的id,空表示匿名用户
         author_name, 作者显示名称
         author_email, 作者邮箱
         author_url, 作者邮箱
         ip, 作者的ip
}

对于上面的字段我们不需要都导入我们自己的系统中的,只要部分字段即可。这里我根据上面多说的数据结构新建了两个表 message_threads和message_posts。

第二步就是导入数据。在多说系统中我们导出的评论数据格式是json数据。所以我们需要使用某种编程语言读取json数据,然后想办法导入数据表中。这里我使用的是php。

$handle = fopen(DOC_ROOT.'../export.json','r');
while(false != ($res = fread($handle, 1024))){
	$json.=$res;
}
fclose($handle);
$arr = json_decode($json,true,512,JSON_BIGINT_AS_STRING);
//解析成数组以后提取我们需要的数据,并且按照我们的数据结构进行处理
for($i=0;$i<count($threads);$i++){
	//这里面是处理数据
}
//后面代码是添加数据库操作,代码就不全粘过来了,只是个思路
$sql = "INSERT INTO message_threads ...... ";
$mod->sql($sql);

第三步就是显示评论数据,我们有了自己的表和数据。要显示这些数据应该很简单。

最后一步当然就是添加评论数据了。

这样一个兼容之前多说评论的个人评论功能就完成了。其实,自己开发一个评论功能也是比较简单的,主要的问题就是兼容多说评论的数据。

目前本博客的评论功能也是刚刚完成,有些地方可能不太完善。还请各位在使用的过程中提出宝贵意见。

赞助
迹忆博客

上一篇:个人网站如何快速搭建

下一篇:没有了

除非注明转载,本站文章均为原创,欢迎转载,转载请以链接形式注明出处

本文地址: