LaraDuoshuo

基于 Laravel 5 的私有评论系统
授权协议 MIT
开发语言 PHP HTML/CSS
所属分类 建站系统、 在线IT服务网站
软件类型 开源软件
地区 国产
投 递 者 子车雅珺
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

LaraDuoshuo

多说已经于 2017 年 6 月 1 号关闭,此为我即兴写的私有评论系统,初步设计用于 Hexo,下一步准备支持煎蛋那样的单页面多评论需求。

live demo

https://autolayout.club

特性

  •  多说数据导入功能

  •  新评论邮件通知,被回复邮件通知

  •  基于简单 @ 的回复功能

  •  "审核后才显示"开关

  •  域名白名单

  •  基于 Akismet 的反垃圾评论

  •  管理后台:评论审核、编辑

  •  页面自注册

  •  跨域部署,异步加载

  •  移动兼容

环境要求

PHP > 5.6.4

图片们

原理图

原理图

截图

截图

如何激活附带的 demo

后端跑起来

生成 .env 文件和密钥:

git clone git@github.com:johnlui/LaraDuoshuo.git
cd LaraDuoshuo
composer update
sudo chmod -R 777 storage/ bootstrap/cache/
cp .env.example .env
php artisan key:generate
cd public
php -S 0.0.0.0:9000

然后将数据库配置修改为真实值,并将根目录下的 LaraDuoshuo.sql 导入数据库。

demo 跑起来

npm install hexo-cli -g
cd hexo-demo
hexo serve

如何用于 Hexo

后端

将代码部署到自己的服务器,指一个域名过去即可。

前端

Hexo 默认主题

在 themes/landscape/layout/_partial/article.ejs 第 36 行 </article> 的后面添加如下代码:

<% if (!index) { -%>
<link rel="stylesheet" href="//fuck.io:9000/css/static.css">
<div id="comments"></div>
<% } -%>

将 themes/landscape/layout/_partial/after-footer.ejs 第 17 行 <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 替换为:

<script src="//apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//fuck.io:9000/js/static.js"></script>
<script>
LaraDuoshuo.APP_KEY = 'base64:nMYxR20sgL9zbiRrMS8GekiVzPSLBId9QAoTepx+nuk=';
LaraDuoshuo.BaseURL = 'http://fuck.io:9000';
</script>

请将上面的 LaraDuoshuo.APP_KEY 的值替换为你服务端 .env 中的 APP_KEY 的值。

著名的 NexT 主题

在 themes/next/layout/_layout.swig 中 {% if page.comments %} 这一行的下面增加:

<link rel="stylesheet" href="//fuck.io:9000/css/static.css">
<div id="comments"></div>

在 <script type="text/javascript" src="//cdn.bootcss.com/jquery/2.1.3/jquery.min.js"></script> 这一行的下面增加:

<script src="//fuck.io:9000/js/static.js"></script>
<script>
LaraDuoshuo.APP_KEY = 'base64:nMYxR20sgL9zbiRrMS8GekiVzPSLBId9QAoTepx+nuk=';
LaraDuoshuo.BaseURL = 'http://fuck.io:9000';
</script>

同样,请将上面的 LaraDuoshuo.APP_KEY 的值替换为你服务端 .env 中的 APP_KEY 的值。

替换域名

别忘了将上文中的 fuck.io:9000 替换为你真实的域名端口。

如何用于自己的静态页面

代码如下:

<link rel="stylesheet" href="//fuck.io:9000/css/static.css"> // 默认样式
<div id="comments"></div> // 评论 DOM 锚点

<script src="//apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//fuck.io:9000/js/static.js"></script> // 此 js 必须在 jQuery 之后引入,否则会被覆盖
<script> // 注入基础参数
LaraDuoshuo.APP_KEY = 'base64:nMYxR20sgL9zbiRrMS8GekiVzPSLBId9QAoTepx+nuk=';
LaraDuoshuo.BaseURL = 'http://fuck.io:9000';
</script>

其他配置

域名白名单

修改 config/app.php 内的 domain_white_list 字段,将允许使用本系统的域名加入进去即可。注意那里还有一个开关,默认是不验证的呦。

Akismet 反垃圾评论

到 https://akismet.com 注册一个账户,得到一个"AKISMET API KEY",配置到 config/app.php 内的 AKISMET_API_KEY字段,就 OK 啦!

管理后台

访问 /register 注册一个账号,成功之后将 config/app.php 内的 register_enable 字段改为 false 关闭注册。

之后就可以使用简洁高效的管理后台啦~

审核通过才显示

此配置位于 config/app.php 内,名为 force_show_after_check,默认为打开状态。

开源协议

本项目遵循 MIT 协议开源,具体请查看根目录下的 LICENSE 文件。

 相关资料
  • 本文向大家介绍基于Angularjs+mybatis实现二级评论系统(仿简书),包括了基于Angularjs+mybatis实现二级评论系统(仿简书)的使用技巧和注意事项,需要的朋友参考一下 一直想写个评论系统,看了下多说,网易,简书的评论,想了下自己该实现怎样的评论系统。 评论系统关键是嵌套层数以及数据库表设计。嵌套层数多,表结构复杂,呈现也麻烦,最后决定实现一个二级评论。系统由maven构建,

  • 本文向大家介绍基于jquery实现ajax无刷新评论,包括了基于jquery实现ajax无刷新评论的使用技巧和注意事项,需要的朋友参考一下 jquery实现ajax无刷新评论需要用的技术:(本次试验用的是“jquery-1.4.2.js”版本的jquery) $.post("一般处理程序路径",{以字典的形式传递参数},function(data,status){``````}); jquery中

  • 本文向大家介绍thinkPHP实现基于ajax的评论回复功能,包括了thinkPHP实现基于ajax的评论回复功能的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP实现基于ajax的评论回复功能。分享给大家供大家参考,具体如下: 控制器代码: JavaScript代码: 页面样式代码: 页面布局代码: sql语句: 页面布局少一个jquery.js请自行加上。 更多关于thi

  • 嗨,我是拉威尔和我的新朋友,我试图在我的帖子和帖子评论之间建立一种关系。 我想用与posts id相同的post_id显示帖子上的所有评论。我认为应该是这样的。但是我不能让它工作。有什么建议吗? 在App\BlogComments中。php 在App\Post.php 在BlogCommentsController中: 在posts/show中。刀身php

  • 本文向大家介绍jQuery基于ajax实现星星评论代码,包括了jQuery基于ajax实现星星评论代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery基于ajax实现星星评论代码。分享给大家供大家参考。具体如下: 这里使用jquery模仿点评网的星星评论功能,Ajax评论模块,鼠标点击星星即可评价,下边是分数,可以点击后给分,网上很流行的效果,本代码相对完整,相信很多朋友会喜欢

  • 获取所有评论 GET /comments 请求查询参数: 名字 类型 描述 limit integer 可选,本次请求需要返回的数据条数。 index integer 可选,查询开始的评论位置,来源响应 id 字段。 direction string 可选,数据排序方向,以 id 进行排序,支持 asc 或 desc,默认 desc。 author integer 可选,需要筛选的评论作者,传递

  • 评论一条资讯 获取一条资讯的评论列表 删除一条资讯评论 评论一条资讯 POST /news/{news}/comments 参数 名称 描述 body 评论内容 reply_user 被回复用户id 默认为0 Response Headers Status: 201 Created { "message": [ "操作成功" ], "comment": { "use

  • 获取问题评论列表 获取回答评论列表 评论问题 评论答案 删除问题评论 删除回答评论 获取问题评论列表 GET /questions/:question/comments 参数 名称 类型 描述 limit Integer 默认 20 ,获取列表条数,修正值 1 - 30。 after integer 默认 0 ,筛选偏移, 上一次获取的评论列表中最后一条的id 响应 Status: 200 OK