帝国CMS7.0版ajax无刷新添加评论插件

本插件基于帝国CMS7.0版本下编写:(支持“简体GBK”、“简体UTF-8”两种编码)插件名称:帝国CMS-内容页AJAX无刷新添加评论插件
插件更新时间:2013-10-27插件作者:liangguanyu插件介绍:帝国CMS的内容页无刷新动态添加,输入框文字实时倒计算字数。可在内容页不刷新或跳出当前页面发布新评论,可结合帝国官方无刷新分页插件完美使用。声
明:本插件免费使用,使用本插件所引起的任何问题都与作者无关!

该应用实现了即时统计输入字数,并且通过ajax与后台交互,将输入内容插入到话题列表中。我将整个流程分为两部分,本文讲解第一部分jquery实现前端交互操作。

——————————————————–插件使用说明————————————————-

首先查看示例:DEMO

注:本插件只在帝国cms7.0中测试通过,其他版本未测试,官方分页插件中没有回复功能,只需在e/extend/infocomment/template/index.temp.php中加入:

澳门新葡亰网站注册 1
XHTML
复制代码 代码如下:

a href="#tosayp" onclick="repid(?=$r[plid]?,?=$plstep?)"回复/a

140说说你正在做什么…

<>

澳门新葡亰网站注册 2

Demo发布的内容…

<>
<>
<>
<>
<>

XHTML是一个表单,里面有输入框textarea,发布按钮,还有一个统计输入字数的span#counter,和信息提示span#msg,在没有输入的情况下就提交则会提示用户要求输入内容。
CSS
复制代码 代码如下:
h3{height:32px; line-height:32px; font-size:18px}
h3 span{float:right; font-size:32px; font-family:Georgia,serif;
color:#ccc; overflow:hidden}
.input{width:594px; height:58px; margin:5px 0 10px 0; padding:4px 2px;
border:1px solid #aaa; font-size:12px; line-height:18px;
overflow:hidden}
.sub_btn{float:right; width:94px; height:28px;}
#msg{color:#f30}
.clear{clear:both}
.saylist{margin:8px auto; padding:4px 0; border-bottom:1px dotted
#d3d3d3}
.saylist img{float:left; width:50px; margin:4px}
.saytxt{float:right; width:530px; overflow:hidden}
.saytxt p{line-height:18px}
.saytxt p strong{margin-right:6px}
.date{color:#999}

jQuery
先引入jquery库和global.js文件:
复制代码 代码如下:

global.js文件:
global.js要做的事有:
1、用户输入、鼠标离开输入框时,统计输入的字符数,并根据输入字数的不同而输出不同的样式(字体颜色)显示在页面上。
2、处理提交数据:当点击“发布”按钮时,显示等待图片,通过ajax想后台提交输入的数据,等待后台处理,并将处理结果输出给前端页面。
具体代码如下:
复制代码 代码如下:
function recount(){
var maxlen=140;
var current = maxlen-$(‘#saytxt’).val().length;
$(‘.counter’).html(current);
if(current<1 || current>maxlen){
$(‘.counter’).css(‘color’,’#D40D12′);
$(‘input.sub_btn’).attr(‘disabled’,’disabled’);
}
else
$(‘input.sub_btn’).removeAttr(‘disabled’);
if(current<10)
$(‘.counter’).css(‘color’,’#D40D12′);
else if(current<20)
$(‘.counter’).css(‘color’,’#5C0002′);
else
$(‘.counter’).css(‘color’,’#cccccc’);
}

函数recount()完成了输入字符的统计,并根据输入的字符数,显示不同的字体颜色。
复制代码 代码如下:
$(function(){
$(‘#saytxt’).bind(“blur focus keydown keypress keyup”, function(){
recount();
});
$(“#myform”).submit(function(){
var saytxt = $(“#saytxt”).val();
if(saytxt==””){
$(“#msg”).show().html(“你总得说点什么吧.”).fadeOut(2000);;
return false;
}
$(‘.counter’).html(‘澳门新葡亰网站注册 3‘);
$.ajax({
type: “POST”,
url: “submit.php”,
data:”saytxt=”+saytxt,
dataType: “html”,
success: function(msg){
if(parseInt(msg)!=0){
$(‘#saywrap’).prepend(msg);
$(‘#saytxt’).val(”);
recount();
}else{
$(“#msg”).show().html(“系统错误.”).fadeOut(2000);
return false
}
}
});
return false;
});
});

提交数据给后台后,由submit.php进行处理,关于后台的处理程序,我在下一篇文章会重点讲解,敬请关注。

1.把ajaxpl文件夹放到e/extend目录下,安装成功。卸载只需删除即可!进入后台:管理评论》自定义评论字段添加一个类型为INT的floornum字段。

===================以步下步骤可以先在已生成的html内容页调试。===================

2.在head/head之间载入jquery.js文件,没有下载到本地可以使用:

script type="text/javascript" src=""/script

3.把评论表单form action=/e/pl/doaction.php method=post name=saypl
id=saypl onsubmit=return CheckPl(document.saypl)和/form这两句代码删掉

4.在验证码位置加入

script type="text/javascript" src="/e/extend/Ajaxpl/ajaxaddpl.php"/script

插件内置验证码表单,会根据系统开启状态显示。

5.在提交按钮加入
id=sub_btn,如果已经存在入比如id=submit,即可通过参数配置而不用修改:

如:

script type="text/javascript" src="/e/extend/Ajaxpl/ajaxaddpl.php?sub_btn=submit"/script

6.检查文本输入区标签中是否含有id=saytext,如有其他id,则可以同参数配置:saytext=(id的值)

7.选择一个显示错误的地方,然后加入span
id=msg/span,如果用alert提示则不需要,只需将alert提示打开

澳门新葡亰网站注册,如:

script type="text/javascript" src="/e/extend/Ajaxpl/ajaxaddpl.php?alert=1"/script

8.在适当位置加入span id=counter/spanspan id=tosayp/span
显示倒计算字数、回复楼层信息

9.发布成功后即时显示评论id默认是infocommentarea,在使用帝国官方评论分页插件则不用配置,没有则可以根据自己情况通过配置参数

如:

script type="text/javascript" src="/e/extend/Ajaxpl/ajaxaddpl.php?showadd=xxx"/script

===============调试成功后,进入后台》模板管理》公共模板变量》管理标签模板》评论表单
里面去修改====================

===================结合官方分页插件配置表单变量范例=============================================