账号通
    

账号  

密码  

3444

查看

4

回复
主题:科讯在细节化和人性化方面有进一步提升空间(举例说明) [收藏主题] 本贴被认定为精华 转到:  
简直真率 当前离线

5

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:252 分
登录次数:2 次
注册时间:2008/9/16
最后登录:2009/2/6
简直真率 发表于:2009/1/8 12:35:00   | 只看该作者 查看该作者主题 楼主 
科汛在线考试系统(NET)

科讯程序很好,但在追求功能全面的同时一细节上的问题更应该值得关注。以人为本的设计理念才是王道,科讯在这方面做得很好,但还有提升空间。举个小例:

文章系统中的批量设置(Admin/KS.Article.asp),其中关键字批量设置需要改进。

‘原Admin/KS.Article.asp904行’

If KS.ChkClng(KS.G("eKeyWords"))=1 Then   RS("KeyWords")  = KS.G("KeyWords")

'这行的意思很简单,就是新的关键字把所有所有选定的文章的所有关键字都替换为新设置的关键字!

这是很恐怖的事情,难道不是么?你想想你录入文章的时候关键字是不是看了一遍又一遍精选出来的?现在好,全部删除了!

意识到问题的严重了吧?细节化,人性化的光辉体现了吧!

好,我们只要修改一下就可以避免我们辛辛苦苦精挑细选的“关键字”得到保存且扩容!具体做如下修改:

将:‘904行’的If KS.ChkClng(KS.G("eKeyWords"))=1 Then   RS("KeyWords")  = KS.G("KeyWords")

改:

If KS.ChkClng(KS.G("eKeyWords"))=1 Then
 If InStr("|"&RS("KeyWords")&"|","|"&KS.G("KeyWords")&"|") = 0 then
  RS("KeyWords")  = RS("KeyWords")&"|"&KS.G("KeyWords")
 End If
End if

 

=======================

最后提点小建议:批量设置中除了按栏目,ID进行批量设置外,可否还能增加按“关键字”分类的批量设置?
就是修改一下按文章ID的SQL表达即可(个人认为按“关键字”批量设置更有目的性和可操作性,我不可能把所有文章的ID都记住吧)。最要可以来个自定义式的,填个SQL表达式就可以,那可就灵活多了。科讯就是在灵活性上称王的,我想以后也不例外。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
wiki 当前离线

1001

主题

3

广播

6

粉丝
添加关注
级别:八年级

用户积分:4722 分
登录次数:206 次
注册时间:2008/12/22
最后登录:2017/7/26
wiki 发表于:2009/1/8 20:19:00   | 只看该作者 查看该作者主题 沙发 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
简直真率 当前离线

5

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:252 分
登录次数:2 次
注册时间:2008/9/16
最后登录:2009/2/6
简直真率 发表于:2009/1/8 20:00:00   | 只看该作者 查看该作者主题 藤椅 
科汛在线网校系统
以下是引用mt56在2009-1-8 13:17:00的发言:

english


这个单词里面,我把e设为内容关键字,而我的网址如果是www.engee.com,文章发表出来,你看看会是什么效果?


 


english 
这个单词里面,我把e设为内容关键字,english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你看看会是什么效果?  english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你而我的网址如果是www.engee.com,文章发表出来,你看看会是什么效果? 
english 
这个单词里面,我把e设为内容关键字,而我english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你看看会是什么效果?  english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你的网址如果是www.engee.com,文章发表出来,你看看会是什么效果?


下面的这个函数就有可能出现你所说的问题!这是科讯文章系统中 设置》辅助管理》内容关键字设置 中功能模块上的小BUG。


(KS_Cls/Kesion.CommonCls.asp中‘2931行’)


 


'*************************************************************************************
 '函数名:ReplaceInnerLink
 '作  用:替换站内链接
 '参  数:Content-待替换内容
 '*************************************************************************************
 Public Function ReplaceInnerLink(Content)
   If Not IsObject(Application(SiteSN & "_InnerLink")) then
   Dim Rs:Set Rs = Conn.Execute("Select Title,Url,OpenType,CaseTF,Times From KS_InnerLink Where OpenTF=1 Order By ID")
   Set Application(SiteSN & "_InnerLink")=RecordsetToxml(Rs,"InnerLink","InnerLinkList")
   Set Rs = Nothing
  end if
  Dim Node,CaseTF,Times
  For Each Node In Application(SiteSN & "_InnerLink").DocumentElement.SelectNodes("InnerLink")
   If InStr(Content,Node.selectSingleNode("@ks0").text)>0 Then
    Dim OpenTypeStr:OpenTypeStr = G_O_T_S(Node.selectSingleNode("@ks2").text)
    CaseTF=Cint(Node.selectSingleNode("@ks3").text)
    Times=Cint(Node.selectSingleNode("@ks4").text)
    Content= Replace(Content,Node.selectSingleNode("@ks0").text,"<a href="""&Node.selectSingleNode("@ks1").text&"""" & OpenTypeStr & " class=""innerlink"">"&Node.selectSingleNode("@ks0").text&"</a>",1,Times,CaseTF)
   End if
  Next
  ReplaceInnerLink = HTMLCode(Content)
 End Function


 


'======================


这种情况下因为你设置的关键字"e"也包含了HTML标签中的<a href="">标签中的‘E’,所以,要是原来内容中的<a href="">标签被新关键字‘E’替换后原链接主被破坏,页面也会凌乱:<a hr<a href="">e</a>f=""></a>


我的方案是:


1、设置关键字时不要用单上英文字母,数字单个数字也不要用。


2、进行保留的关键字的保护,比如关键字为,www,com,net,http,engee


3、先过滤HTML标签。


'代码部分=======================================


<%
'in_out:封存=in 输出=out
'constr:文章内容
'KeyWord:保留的关键字


Function KeepWord(in_out,Constr,splitstr)
  Dim htmltag_keyword,htmltag
  KeyWord = "www,com,net,http,engee"
 If in_out = "in" Then
  Constr=Replace(Replace(Constr,vbCrLf,""),vbNewLine,""): htmltag = ReExec(Constr,"<.+?>")
  Session("htmltag_keyword_"&splitstr) = KeyWord
  If htmltag<>"" Then Session("htmltag_keyword_"&splitstr) = htmltag &","& KeyWord
 End if
 
 htmltag_keyword=Session("htmltag_keyword_"&splitstr)
  keyword = Split(htmltag_keyword , ",")
 For i = 0 To UBound(keyword) - 1
  If in_out = "in" Then Constr = Replace(Constr,keyword(i),splitstr&I)
  If in_out = "out" Then Constr = Replace(Constr,splitstr&I,keyword(i))
  next
  KeepWord = Constr
End Function


 


 Function ReExec(strng,patrn)
   Dim regEx, Match, Matches,RetStr,splitstr
   Set regEx = New RegExp
  If patrn="" Then patrn="<[^>]*>"
   regEx.Pattern = patrn
   regEx.IgnoreCase = True
   regEx.Global = True
   Set Matches = regEx.Execute(strng)
    splitstr=""
   For Each Match in Matches


      If InStr(RetStr,Match.Value)=0 Then RetStr = RetStr &splitstr& Match.Value:splitstr=","
    'RetStr = RetStr &splitstr& Match.Value:splitstr=","
       
   Next
   ReExec = RetStr
   Set regEx = Nothing
   Set Matches = Nothing
 End Function



 Sub gotest()
   Dim txt,keyword
  KeyWord = "www,e,键字,文章,p,单词"'要添加链接的关键字
  txt="<p>english</p><p>这个单词里面,我把e设为内容关键字,而我的网址如果是<a href=""http://www.engee.com/"">www.engee.com</a>,文章发表出来,你看看会是什么效果?</p>"
  keyword = Split(keyword,",")
  '-------------------
     txt = KeepWord("in",txt,"!@#$%")
  '-------------------


  For i = 0 To UBound(keyword) - 1
  
   
   a_txt=KeepWord("in",a_txt,"^&*()")


   
   txt = Replace(txt,keyword(i),KeepWord("in","<a href=""http://www.engee.com/"">"&keyword(i)&"</a>","^&*()"))
   'If ReExec(txt,"<.+?>")<>"" then htmltag_keyword = htmltag_keyword&","&ReExec(txt,"<.+?>")
   'txt = KeepWord("in",txt,"^&*()")
  Next
  
  '-------------------
    txt = KeepWord("out",txt,"^&*()")
      txt = KeepWord("out",txt,"!@#$%")
  '-------------------


  response.Write txt
  End Sub
  Call gotest()
%>
'==========================代码结束
时间写的匆忙,有一些细节也没处理,思路就是这样,有兴趣的同学可以去完善。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
goon2005 当前离线

740

主题

1

广播

0

粉丝
添加关注
级别:六年级

用户积分:3504 分
登录次数:229 次
注册时间:2006/10/31
最后登录:2018/2/26
goon2005 发表于:2009/1/8 15:03:00   | 只看该作者 查看该作者主题 板凳 
科汛在线网校系统
   呵呵,细节决定成败!
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
mt56 当前离线

4985

主题

53

广播

17

粉丝
添加关注
级别:版主

用户积分:23430 分
登录次数:1621 次
注册时间:2007/2/10
最后登录:2022/9/28
mt56 发表于:2009/1/8 13:17:00   | 只看该作者 查看该作者主题 报纸 
科汛在线网校系统

english

这个单词里面,我把e设为内容关键字,而我的网址如果是www.engee.com,文章发表出来,你看看会是什么效果?

 

english 
这个单词里面,我把e设为内容关键字,english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你看看会是什么效果?  english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你而我的网址如果是www.engee.com,文章发表出来,你看看会是什么效果? 
english 
这个单词里面,我把e设为内容关键字,而我english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你看看会是什么效果?  english  这个单词里面,我把e设为内容关键字,而我的网址如果是ef="http://www.engee.com">www.engee.com,文章发表出来,你的网址如果是www.engee.com,文章发表出来,你看看会是什么效果?

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.15625秒 powered by KesionCMS 9.0