落拓居论坛 » 电脑网络 » 网页技术 » [原]仿QQ论坛的两个功能,新增回帖必须有五汉字以上
本页主题: [原]仿QQ论坛的两个功能,新增回帖必须有五汉字以上 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

落拓居士

头衔:骆驼 骆驼

级别: 管理员
精华: 28
发帖: 3944
威望: 3338 点
金钱: 69244 银两
贡献值: 27 点
好评度: 391 点
朋友圈: 落拓
在线时间:521(小时)
注册时间:2005-12-13
最后登录:2020-09-15

[原]仿QQ论坛的两个功能,新增回帖必须有五汉字以上

本帖被 落拓居士 从 版主交流 移动到本区(2010-04-13)
http://www.phpwind.net/read-htm-tid-434191.html
功能一:回帖中必须有汉字.
功能二:发帖标题输入字符数显示,超出长度自动提示

6月7日新增红色部份.
6月8日更新,修正了使用所见即所得时不受限制的BUG.红色部份重新修改就可以了.

于是闲中也来弄弄.
第一个功能:回帖必须有汉字,至于要几个汉字才可以回复,自行设定.

新增如果要修改为必须有五个汉字才可以回复(其实是随便自己设置为几个汉字,只需要修改里面的数字7就可以了,修改为3,则只要有一个汉字就可以回复.自行设定),则按下面修改
效果如图:

找到template\wind下的fastpost.htm里面的
Copy code
if(obj.atc_content.value.length<$db_postmin){

在上方添加以下代码
Copy code
if((obj.atc_content.value+"汉字").match(/[\\u4e00-\\u9fa5]/g).length<7){
                                        alert("尊重楼主,倡导更有价值回帖,回帖内容请在5个汉字以上");
                                        obj.atc_content.focus();
                                        return false;
}

如果要更进一步限制,防止点击新回复而不受限,则按如下:
找到template\wind目录下的post.htm里面的
if(obj.atc_content.value.length<$db_postmin){
在上方添加以下代码
if((obj.atc_content.value+"汉字").match(/[\\u4e00-\\u9fa5]/g).length<7){
                                        alert("尊重会员,倡导更有价值帖,帖子内容请在5个汉字以上");
                                        editor.focusEditor();
                                        return false;
}
第二个功能也不复杂
找到template\wind下的post.htm
找到
Copy code
<tbody><tr class="tr3 f_one"><th width="20%" class="t_one"><b>标题</b></th>

在它的上面添加如下
Copy code
<script language="javascript">
function changeText(objElement) {
var oTextCount = document.getElementById("txtCount");
var stextcount= document.getElementById("txtCount1");
var tmp="";
  tmp=objElement.value.replace(/[^\x00-\xff]/g,"ab");
  oTextCount.innerHTML = tmp.length;
  stextcount.innerHTML=45-tmp.length;
if (tmp.length >45) {
        alert("标题长度超出限制,请减少字数。");       
        }
}
</script>

找到如下代码
Copy code
<th><input class="input" name="atc_title" size="60" value="$atc_title" tabindex="1"  style="font: 14px Tahoma; padding-left:2px" /></th>

替换为
Copy code
<th>
已输入:<font color="red"><span id="txtCount">0</span></font> 字符,剩余<font color=red><span id="txtCount1">45</span></font> 字符<br>
<input class="input" name="atc_title" size="60" value="$atc_title" tabindex="1"  style="font: 14px Tahoma; padding-left:2px" onkeyup="changeText(this);" /></th>

其中的数字45是你后台设置的标题最大长度.如果后台设置的是50,那么这里可以填写45,因为回复帖子的时候会自动加上RE:,如果后台设置标题长度50,当发帖时输入50字符是可以的,但回复时会提示标题太长.原因就是回复时会自动加上RE:

编辑时要重输入标题,是我的错, value="" 丢失了$atc_title

现在修正了.
在对照重新修改一下就行了.

修改时记得备份.
男人就应该象个男人,说男人的话,做男人的事!
顶端 Posted: 2008-03-11 09:40 | [楼 主]
落拓居论坛 » 网页技术

Total 0.026760(s) query 5, Time now is:04-20 06:38, Gzip disabled 蜀ICP备11007877号-1
Powered by PHPWind v5.3 Certificate Code © 2003-07 PHPWind.com Corporation