K9 通用版 博客版 主题版 地方门户版 企业版 |   企业(ASP) 分类 使用 分享 疑问 模板 建议 帮助 错误 其他
+新建主题 [Ajax]
填写帐号密码即可完成注册
+新建话题 最新回复排序 最新主题排序 精华帖子

添加文章时,让关键词跟简介的字数自动变化

1Next >

fox1383164k 发表于:10-09-02 09:51 [添加收藏] 楼主 [回复] #Top#
fox1383164k 人气:377 积分:864 金币:3006
KC元老 灌水狂人

添加文章时,让关键词跟简介的字数自动变化

添加文章,有时候发现添加不上去,显示红色的提示是关键词或者是简介过长,无法发布。其实,我们只要在这些输入框后面加一个代码告诉你还能输入多少字即可很好地控制字数了。

**************************************************
创建文件admin/Article/checkinput.js


<!-- Begin
function getStrLong(str){//计算字符串str的长度,汉字1英文0.5
  var valueLen = 0;
  var charNum = 0;
  if (str != ""){
    for (i = 0; i < str.length; i++){
      var code = escape(str.charAt(i));
      if ((code.length >= 4) && (code < '%uFF60' || code > '%uFF9F')){
        valueLen += 1;
      } else {
        valueLen +=0.5;
      }
      if(valueLen <= 100){
       charNum++;
      }
    }
  }
  return Array(valueLen, charNum);
}
function textCounter(field, countfield, maxlimit) {
countfield.value = maxlimit - getStrLong(field.value)[0];
if (getStrLong(field.value)[0] > maxlimit) {
  countfield.style.color='#FF0000';
}
}
// End -->

**************************************************
打开admin/article/index.asp,找到king.form_input,改为

Il "<script src=""checkinput.js"" type=""text/javascript""></script>"
king.form_input2 "artkeywords",art.lang("label/keyword"),data(9,0),"artkeywords|6|"&encode(art.lang("check/keyword"))&"|0-100"

king.form_area2 "artdescription",art.lang("label/description"),data(10,0),"artdescription|6|"&encode(art.lang("check/description"))&"|0-255"

**************************************************
打开page/system/fun.asp,找到form_input,添加form_input2

public sub form_input2(l1,l2,l3,l4)'formname,label,value,check
dim I1,I2,I3
I1=sect(l4&";","("&l1&"|6|.+?|)","(;)","")
if len(I1)>0 then
  I2=split(I1,"-")
  if ubound(I2)=1 then I3=" maxlength="""&I2(1)&""""
end if
Il "<p><label>"&l2&"</label><input type=""text"" name="""&l1&""" id="""&l1&""" value="""&formencode(l3)&""" class=""in4"""&I3&" onChange=textCounter(this.form."&l1&",this.form.count_0,68); onKeyUp=textCounter(this.form."&l1&",this.form.count_0,68); onKeyDown=textCounter(this.form."&l1&",this.form.count_0,68); />"
Il king.check(l4)
Il "</p>"
end Sub

找到form_area,添加
Public Sub form_area2(l1,l2,l3,l4)
If CStr(l4)="0" Then l4=""
Il "<p><label>"&l2&"</label><textarea name="""&l1&""" id="""&l1&""" rows=""4"" cols=""80"" class=""in4"" onChange=textCounter(this.form."&l1&",this.form.count_1,146); onKeyUp=textCounter(this.form."&l1&",this.form.count_1,146); onKeyDown=textCounter(this.form."&l1&",this.form.count_1,146);>"&formencode(l3)&"</textarea>"
Il king.check(l4)
Il "</p>"
End Sub

亦也 发表于:10-09-02 09:53 沙发 [回复] #Top#
亦也 人气:191 积分:491 金币:1305
最佳新人
建议下一版本中将此功能实现会更好!
fox1383164k 发表于:10-09-02 09:54 板凳 [回复] #Top#
fox1383164k 人气:377 积分:864 金币:3006
KC元老 灌水狂人

文章阅读页面的导读显示

template/images/style.css

添加
/*新闻阅读页面*/
.dd {margin:20px;border:1px solid #EEE;background:#333;padding:20px;line-height:24px;}

template/inside/article[page]/default.htm
找到:{king:content /}
改成:
     <p class="dd">{king:description /}</p>
     <p>{king:content /}</p>

对简介说明的字数即时显示的另一种方法

我们在添加文章的时候,需要对关键词与简介导读进行编辑,发布以后才发现超过了字数**,很麻烦,这里进行修改,让字数**在开始编辑时就显示出来:









打开admin/system/fun.asp




找到




Public Sub form_area(l1,l2,l3,l4)
在下面添加




Public Sub form_area2(l1,l2,l3,l4)
If CStr(l4)="0" Then l4=""
Il "<p><label>"&l2&"</label><textarea name="""&l1&""" id="""&l1&""" rows=""4"" cols=""80"" class=""in4"" onChange=textCounter(this.form."&l1&",this.form.count_1,127.5); onKeyUp=textCounter(this.form."&l1&",this.form.count_1,127.5); onKeyDown=textCounter(this.form."&l1&",this.form.count_1,127.5);>"&formencode(l3)&"</textarea>"
Il king.check(l4)
Il "</p>"
End Sub














打开admin/Article/index.asp




找到




king.form_area "artdescription",art.lang("label/description"),data(10,0),"artdescription|6|"&encode(art.lang("check/description"))&"|0-255"
替换成




Il "<script src=""checkinput.js"" type=""text/javascript""></script>"




king.form_area2 "artdescription",art.lang("label/description"),data(10,0),"artdescription|6|"&encode(art.lang("check/description"))&"|0-255"












checkinput.js内容








**************************************************




<!-- Begin
function getStrLong(str){//计算字符串str的长度,汉字1英文0.5
  var valueLen = 0;
  var charNum = 0;
  if (str != ""){
    for (i = 0; i < str.length; i++){
      var code = escape(str.charAt(i));
      if ((code.length >= 4) && (code < '%uFF60' || code > '%uFF9F')){
        valueLen += 1;
      } else {
        valueLen +=0.5;
      }
      if(valueLen <= 100){
       charNum++;
      }
    }
  }
  return Array(valueLen, charNum);
}
function textCounter(field, countfield, maxlimit) {
countfield.value = maxlimit - getStrLong(field.value)[0];
if (getStrLong(field.value)[0] > maxlimit) {
  countfield.style.color='#FF0000';
}
}
// End -->




**************************************************




在PAGE/ARTICLE/LANGUAGE/ZH-CN.XML还要进行一下修改
找到<keyword>
后面的中文内容,修改为:
<keyword>关键字 (不填写自动补充,Max=120)<input readonly name=count_0 size=3 value=120></keyword>
<description>简述 (不填写自动补充,Max=255)<input readonly name=count_1 size=3 value=63></description>

fox1383164k 发表于:10-09-02 10:07 4楼 [回复] #Top#
fox1383164k 人气:377 积分:864 金币:3006
KC元老 灌水狂人

   在此基础上进行改进,支持所有的input,textarea的长度自动提醒。
  针对 kingcms5.1

  第一步:
  在/admin/system/images/jquery.kc.js 最后面加以下代码:

function getStrLong(str){//计算字符串str的长度,汉字1英文0.5
  var valueLen = 0;
  var charNum = 0;
  if (str != ""){
    for (i = 0; i < str.length; i++){
      var code = escape(str.charAt(i));
      if ((code.length >= 4) && (code < '%uFF60' || code > '%uFF9F')){
        valueLen += 2;
      } else {
        valueLen += 1;
      }
    }
  }

  return valueLen;

}

function textCounter(fieldId,fieldName,maxlimit) {
        //alert(getStrLong($('#'+fieldId).val()));
        if (getStrLong($('#'+fieldId).val()) > maxlimit) {
                $('#'+fieldId).css("color","#f00").css("border","1px solid #f00");
                if($('#'+fieldId).next(".k_error").length>0){
                        $('#'+fieldId).next(".k_error").val(fieldName + "长度不能超过"+maxlimit+"个字符");
                }else{
                        $("<span class='k_error'>"+fieldName+"长度不能超过"+maxlimit+"个字符</span>").insertAfter('#'+fieldId);
                }
        }else{
                $('#'+fieldId).css("color","#000").css("border","1px solid #ccc");
                if($('#'+fieldId).next(".k_error").length>0){
                        $('#'+fieldId).next(".k_error").remove();
                }
        }
}

第二步:在/page/system/fun.asp 找到 public sub form_input(l1,l2,l3,l4)
将此段过程代码替换为如下:

public sub form_input(l1,l2,l3,l4)'formname,label,value,check
        dim I1,I2,I3
        Dim autochecker,l5,l6
        autochecker = " "
       
        I1=sect(l4&";","("&l1&"|6|.+?|)","(;)","")
        if len(I1)>0 then
                I2=split(I1,"-")
                if ubound(I2)=1 then I3=" maxlength="""&I2(1)&""""
        end if
       
        if I2(1) > 0  then
                autochecker = " onchange=""textCounter('"&l1&"','"&l2&"',"&I2(1)&");"" "
        end if
        Il "<p><label>"&l2&"</label><input type=""text"" name="""&l1&""""&autochecker&"id="""&l1&""" value="""&formencode(l3)&""" class=""in4"""&I3&" />"
        Il king.check(l4)
        Il "</p>"
end sub
找到:public sub form_area(l1,l2,l3,l4) ,将此段替换为:

public sub form_area(l1,l2,l3,l4)
        Dim autochecker,l5,l6
        if cstr(l4)="0" then l4=""
        autochecker = " "
        if l4 <> "" then
                l5 = split(l4,"|")
                if instr(l5(ubound(l5)),"-")>0 then
                        l6 = split(l5(ubound(l5)),"-")(1)
                else
                        l6 = 0
                end if
                if l6 > 0 then
                        autochecker = " onchange=""textCounter('"&l1&"','"&l2&"',"&l6&");"" "
                end if
        end if
        Il "<p><label>"&l2&"</label><textarea name="""&l1&""" id="""&l1&""" rows=""4"" cols=""80"""&autochecker&"class=""in4"">"&formencode(l3)&"</textarea>"
        Il king.check(l4)
        Il "</p>"
end sub


注意:修改时请备份源文件,防止出现错误!!!

zongxiao08 发表于:11-04-25 18:00 5楼 [回复] #Top#
zongxiao08 人气:145 积分:1044 金币:3553
我觉得应该要的 

1Next >

发表回复

帐号 匿名发布 审核后可见 [加载完整在线编辑器]
内容
验证码
KingCMS 内容管理系统

关于我们 联系我们 广告报价 付款方式 站点导航

Copyright © 2004-2015 Focuznet All rights reserved.

广州唯众网络科技有限公司 粤ICP备08008106号