类留言板插件(通知提醒版) v3.2.0


提示:不需要短信提醒及自定义模板功能的朋友,请稳步至留言板2.0


2020.09.18 更新至3.2.0版,新增对移动端模板的支持

2020.08.13 更新至3.1.2版

2019.08.04 更新至3.1.1版!全面支持自定义主题!新增发送手机验证码接口!


全新3.1版,对提醒功能全面重构,重新开发,旨在解决网站留言、加盟申请、业务咨询、信息索取等需求!有些留言信息十分重要,商机稍纵即逝,本插件提供的邮箱、短信提醒功能,让你在第一时间获取留言信息,及时联系或反馈,不会错过重要机会!


已经购买的朋友,可以联系我,获取相应的售后服务。本人提供一次免费修改模板服务,赠送一份短信插件,让留言板更符合你的应用。也可以加我的QQ:2510722273



ThinkCMF5 留言板插件 ver 3.2.0

作者邮箱:crazys@126.com

应用场景

网站需要开放留言功能,后台需要对留言进行查阅和管理。例如网站留言、加盟申请、业务咨询、信息索取等,不需要在线同步沟通的情况。

环境要求

  1. ThinkCMF 5.1.x,由于插件中大量使用了ThinkPHP 5.1新特性,因此不再向 5.0 版本兼容。

  2. 如果要使用短信提醒功能,则需要安装短信提醒功能插件,强烈推荐本人开发的系列短信插件,兼容性更好。

安装

  1. 将插件复制到public\plugins中。

  2. 进入到网站后台,打开“插件中心->插件列表”。

  3. 找到右侧内容部分,插件名称为“留言板”的插件,点击该行最右侧操作栏的“安装”。

设置

留言板设置

安装成功之后,可以在插件列表中,点击留言板插件的“设置”按钮,打开设置界面。界面内容说明如下:

标题:显示在留言板上方的文字内容,系统默认为留言板,如果不想显示,删除即可。
说明文字:显示在标题下方的附标题,如果不想显示,删除即可。
留言间隔:为了防止恶意留言,可以在此设置相同IP地址的用户两次留言之间的最小时间间隔,系统默认为300秒,0 或者空为不限制。
显示样式:系统提供了6种前端样式,默认为基础灰色,用户可以根据前端风格,挑选接近的风格。(如果使用了自定义模板,本设置忽略即可)
主题:自定义主题模板文件夹名,默认为default。如果不使用自定义主题请不要改动!

提醒功能设置

邮件提醒:使用邮件提醒,需要ThinkCMF后台【设置】->【配置邮箱】处,设置好发送邮件的相关参数。因为本插件是使用该配置发送邮件的,因此如果没有设置,该功能无法使用且没有提示。

短信提醒:短信提醒需配合短信插件使用。只要安装支持通知短信功能的短信插件,并将短信插件设置好即可。通常情况下,3.0以后版本都会赠送短信插件,不需要额外购买。但如果您使用的 短信平台没有相应的插件提供,也可以与作者联系,单独开发。

使用

前端

在需要使用留言板的模板中,添加钩子。有两种方式添加:

  • 使用ThinkCMF标签,只需添加如下代码即可:

<hook name="guestbook" once="true"/>
  • 使用系统钩子函数

{:hook_one('guestbook')}

<!-- 或者 -->
<php>hook_one('guestbook');</php>

添加钩子后,刷新页面,即可看到留言界面。

后台管理

插件成功安装之后,左侧菜单栏会添加留言板插件菜单。如果是初次安装,则需要刷新后台界面,重新加载菜单才能看到。点击留言板插件->留言板管理,即可进入留言板后台管理界面。

同样方式,可以进行留言板设置界面,对接收留言提醒进行管理。插件会自动识别添加的是邮箱地址还是手机号码,不必区分。对于邮件接收提醒,还可以设置模板,在模板设置页面上有详细说明。

留言板管理

该界面每页显示10条留言,上部可以设置条件搜索,对显示内容进行过滤。

点击留言标题,或右侧的查看按钮,可以查看留言内容,同时设置留言状态为已读

点击操作栏中的删除按钮,可以删除选中的留言。也可通过左侧的多选按钮,选中多条留言,再通过列表顶部或底部的删除按钮,一次删除多条留言。

  • 删除的留言会进入回收站,如果误删留言,可以在回收站中找到并还原。

  • 回收站入口在菜单栏顶部,是红底色回收标志的按钮。

用户自定义主题

前端样式虽然好,但毕竟无法满足所有的应用,因此3.1版开始,支持自定义模板,具体开发过程如下:

  1. crazy_guestbook/view文件夹下,新建你的模板文件夹,例如:crazy_guestbook/view/mytmpl

  2. mytmpl下,新建留言板模板 html 文件,文件名固定为 guestbook.html,该文件名不可自定义!

  3. 修改guestbook.html文件内容,以符合你的要求。

  4. 在插件设置(不是留言板管理)中,修改【主题】为你的主题名,也就是文件夹名,例如 mytmpl

模板规则:

  • 由于留言板内容是插入到系统模板中的,因此该模板不可以包含 html 文件头及其它,仅包含留言板部分。如果有css样式,可以写在模板文件中,也可以外部引用,具体参考默认模板。 (此处要掌握ThinkPHP 5模板知识,不会的前端人员,直接写在一个文件中即可。)

  • 模板中的输入字段的 name 属性仅支持:subject(标题)、content(内容)、name(姓名)、email(邮箱)、qq(QQ号)、tel(电话),还有必填字段 captcha(验证码)。 其中 3 种联系方式为可选,标题、内容、姓名和验证码为必填。

  • 表单 action 属性地址固定为cmf_plugin_url('CrazyGuestbook://Index/addPost'),提交方式为post。例如一个没有任何样式的表单如下所示:

<form action="{:cmf_plugin_url('CrazyGuestbook://Index/addPost')}" method="post">
    <input type="text" name="subject" placeholder="标题(必填)" required/>
    <textarea name="content" placeholder="留言内容(必填)" maxlength="512" required></textarea>
    <input type="text" name="name" placeholder="姓名(必填)" required/>
    <input type="email" name="email" placeholder="Email地址"/>
    <input type="text" name="qq" placeholder="QQ号"/>
    <input type="text" name="tel" placeholder="联系电话"/>
    <input id="captcha" name="captcha" type="text" placeholder="验证码"/>
    <!-- 下边是 ThinkCMF 生成验证码的代码 -->
    <captcha height="38" width="160" font-size="20"/>
    <button type="submit">提交</button>
</form>

如果不希望看到提交成功后的提示页面,请考虑使用ThinkCMF提供的Ajax表单,参考手册,也可以自行编写交互。

移动端模板


自3.2.0版开始,留言板支持移动端模板,模板开发过程请参阅《用户自定义主题》一节。但请遵循以下规定:


1. 模板文件夹请放置在`view`文件夹下,与PC端模板文件夹并列,即兄弟关系。
2. 文件夹命名必须是`<模板主题名>_mobile`,例如默认主题的移动端模板文件夹名为:default_mobile。
3. 模板入口文件名必须是:guestbook.html

举例说明,如果你自己开发了一套主题,起名为“ocean”,那么PC端文件夹名称为`ocean`,移动端文件夹名称为`ocean_mobile`。

使用时,与PC端一样,插件会自动判断是否为移动端,且存在移动端模板,有则调用,无则继续使用PC端模板。如果某些浏览器不能自动识别,可以在钩子调用时,
通过添加参数,显式指定为移动端。参数数组的键名为`isMobile`,值为`true`或者`1`。

<php>$param = ['isMobile'=> true];</php>
<hook name="guestbook" once="true" param="$param"/>

<!-- 或者是这样 -->
{:hook_one('guestbook', $param)}

<!-- 也可以这样 -->
<php>hook_one('guestbook', $param);</php>

手机验证码

3.1.0 版本以后,插件提供了发送短信验证码API,适用于需要验证手机号的场景。API访问地址为:cmf_plugin_url('CrazyGuestbook://Index/verifyMobile')。例如你的应用中, 需要对手机号码进行校验,可以在手机号输入框边上,添加一个发送验证码的按钮。用户点击后,调用插件的API接口发送验证码,用户输入获取到的验证码后再提交留言。后台验证成功后, 保存留言。具体使用方法如下:

1、在后台插件设置中,启用验证手机。

2、在guestbook.html的表单中,添加手机验证码输入框,name属性固定为code,同时添加发送验证码按钮。下面是示例代码:

注意,示例中没有样式,请根据实际情况自行添加。

<input type="text" name="tel" placeholder="请输入手机号">

<!--手机验证码输入框 name 属性必须为 code,否则无法验证-->
<input type="text" name="code" placeholder="手机验证码">

<button type="button" id="send_code">获取验证码</button>

3、编写相应的js代码,本例中使用了jQuery:

// 为按钮添加点击事件
$("#send_code").on("click", function () {
    // 获取手机号
    let mobile = $("input[name=tel]").val();    
    // TODO 此处添加手机号校验逻辑    
    
    // 设置按钮倒计时    
    setButton(this, 60);    
    
    // 定义请求地址    
    let url = "{:cmf_plugin_url('CrazyGuestbook://Index/verifyMobile')}";    
    // ajax请求发送验证码    
    $.post(url, {mobile}, res => {
        // 发送成功时,res.code 为 1,失败时为 0
        if (res.code === 0) {            
            // TODO 这里是发生错误的逻辑            
            console.log(res.msg);        
        }
    });
});

// 设置按钮不可用,并显示倒计时
function setButton(obj, count) {
    let btn = $(obj);
    const countDown = setInterval(() => {        
        if (count === 0) {            
            // 倒计时结束            
            // TODO 此处可以添加你自己的逻辑,比如按钮样式变化            
            btn.text("重新发送").removeAttr("disabled");            
            clearInterval(countDown);        
        } else {            
        // 按钮不可用,并且按钮文字变更为倒计时            
        // TODO 你可以添加自己的逻辑,比如按钮样式变化            
            btn.attr("disabled", true);            
            btn.text(count + "秒后可重新获取");        
        }
        count--;
    }, 1000);
}

由于前端业务逻辑不尽相同,因此无法制作成通用版js代码,因此上边的代码也仅供参考。

特别说明

  • 由于提醒功能成功与否不受本插件控制,且客户留言时不关心是否提醒成功,因此本插件未对提醒信息发送结果作任何提示,也不保证每条留言都能准确发送提醒信息,请谅解。

  • 通常手机验证码和网页验证码只希望保留一个,因此当你仅需要验证手机时,可以参考本文,对模板进行修改,去除网页验证码字段即可。

常见问题

  • 腾讯短信个人认证时,每个参数最长字符数为 12,否则发送失败。插件对短信提醒中的留言时间(time)做了处理,但其它参数未处理,请注意。企业认证用户无此限制。

更新

3.2.0

  • 新增对移动端模板的支持,自动识别PC/移动端,也可强制指定

3.1.2

  • 新增功能:当主题为空时,取内容的前30个字符作为主题。

  • 去除对主题的验证,以适应不需要主题(subject)的场景。

  • 优化后台部分逻辑。


3.1.1

  • 修改模型及逻辑层,使用ThinkPHP 5.1新特性,不再支持5.0系统。


3.1.0

  • 模板部分更新,全面支持前端主题,用户可以自定义自己的前端模板。

  • 新增发送手机验证码接口

  • 邮件提醒模板更新,支持html格式。


3.0.1

  • 修改提醒通知host,由网站地址改为网站名称, 解决一些短信平台禁用关键词问题。

  • 修复腾讯短信提醒,时间参数过长导致个人认证用户无法提醒的bug。

  • 修复留言间隔时间设置为0时,默认仍然为300的bug。


3.0.0
本版对插件进行了重构,使结构更加合理。同时全面支持留言提醒,通过接口扩展接收提醒的模式,让代码耦合性更低,扩展更容易!

  • 新增邮件、短信 2 种方式接收提醒。

  • 新增提醒设置,可以对接收邮箱/短信,接收内容进行自定义。

  • 自动识别接收地址类型


ThinkCMF模板插件交流群:550851374 ,领取阿里云1000通用代金券

评论

暂时关闭,稍后恢复~
文档请看10遍以上!有问题可加QQ群!
发布插件

七牛专享优惠码

507670e8

ThinkCMF教程


ThinkCMF 8.0.0发布啦!祝大家节日快乐! 立即体验!