php评论 盖楼,我努力了一下,终于把博客的评论样式改成盖楼样式了,完美

前几天逛博客,看到的博客评论是那种回复一次,回复内容就在下面显示出来,也就是俗称的“盖楼式评论”。像下面的样式:

b6596b10b7c2f8614aa1b2328fcbbffd.png

我的博客的评论,我之前开发这个评论的时候,偷了一个懒,直接把回复评论添加一条新的数据,并附带把上级评论内容也再保存一份到一张表里。

这样有一个好处就是,所有的评论跟普通文章序列一样,按评论iD查询,再直接显示出来就好了。就像下面这样:

61431779b33835ba888ce9afc5b56e5d.png

这样的样式不但丑,而且还多占数据空间,随着同一条评论回复得越多,后期追加的原评论数据就越多。

于是,做好心理准备之后,搬来我的小板凳,我就开始了一天多的评论系统重构工作。

因为原评论模块的调用方式和后来我要实现的完全不一样,于是就想着重写一个评论模块,但没成想,这个模块太绕了。

想着是,每一条父级评论,如果有子评论,循环调出来就完事,结果完全不是这么个情况。

父级下面的子评论,可能id是跨越的,下一条可能是别的父级下的子评论,总之是一堆问题,我一时半会没想明白怎么弄。

我去参考Zblog官方的评论样式输出,发现我根本用不上,又去网上查。

最后找到了一个思路,就是直接用递归函数的方式去查,好嘛,几行查询就直接搞定子父级关系了。

终于在昨天凌晨的时候,完成了评论基本逻辑实现。

15aecca9c3b72e4479c351b477629143.png

下午的时候,把这个逻辑代码重写了一个方法,按博客原本的数据去调用测试。

结果又发现一个硬伤:不能现实分页。

没办法,又去查Zblog的评论,好家伙,Zblog最新版本的博文评论,居然是没分页的(我测试了20条都没有),这我不能忍受呀。

我想着如果我的某一篇博文评论非常多,那页面显示也会非常长,加载也会变慢一些,当然,想象归想象,要做还得做“完美”些。

于是我又重写了刚写的递归函数,结果我发现直接用Limit去查数据库做分页,根本不行,普通的数据可以这么做,但这种评论是有子父级关系的。

比如每个页面显示10条,如果第10条下面刚好有3条子评论,不能把这3条子评论(回复)分开到第二页去呀。

基于这么一个情况,就只好一个递归函数不够用,那就再来一个。

一个递归函数是把数据从数据库里出来的,按评论子父级进行重组为新的多维数组。

另一个递归函数,是把这些函数按分页的形式进行截取,也就是只按多维数组中的第一列数据进行取整。

最后完美现实了分页,这样每个Page下可以显示10条,如果只是数评论数,可能是11,也可能更多。

评论及评论分页,大概是这么个情况,很烧脑,一把年纪了,敲代码着实不易。

通过递归函数,就调出这么个多维数组。

7967c45a8c4a6b2e1669699268a45ba3.png

接着就是显示 “楼层”数了,这个楼层数不能按每个页面显示出来的数据量显示,要在总评论数里计算楼层,同时只显示每个有子父级评论的第一列数组。

不说了,不说了,太绕了,这个楼层显示还是有些问题,以后有时间再修复。

接下来就是把原有的评论提交方式再修改下,在邮件回复的时候,需要截取的字段修改下,把

真是牵一发而动全身,以后再也不这么干了,除非这个博客有别的需要重大升级的模块。

参考资料:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值