账号通
    

账号  

密码  

4063

查看

9

回复
主题:关于诸如:{$GetSearch} 搜索如何去掉搜索类型修改的解决方法 [收藏主题] 转到:  
esharp 当前离线

508

主题

14

广播

32

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

用户积分:1420 分
登录次数:531 次
注册时间:2011/6/24
最后登录:2024/9/4
esharp 发表于:2012/2/1 11:56:00   | 显示全部帖子 查看该作者主题 楼主 

  鉴于需要保留官方原本的标签解析.所以不要修改原本的东西.可以自己复制一个函数.修改后.进行标签解析.



其他解析函数标签同理.



测试版本:  V8.2



方法如下:



1:找到:Kesion.Label.SearchCls.asp



2:找到函数:



'取得总搜索

  

  '-----------------------------------------------

  '冉:找到全站搜索了.

  Function GetSearch()  



这个函数就是标签解析类中的函数. 把这个整个函数:    Function GetSearch()  ....End Function 全复制粘贴到后面.



改个名字:  我用的是 Function soso()  .....End Function.



3:把包含在 Function soso() ....End Function 里面的 变量:GetSearch全部改成soso.以便返回函数结果对应.不然会提示 错误的赋值.



形式如下:



'====================原函数===============

Function GetSearch()

      GetSearch = "<form id=""SearchForm"" name=""SearchForm"" method=""Get"" action=""" & KS.Setting(3) &"plus/search/"">" & vbCrLf

      GetSearch = GetSearch & "<div class=""searchsd"">" & vbCrLf

      GetSearch = GetSearch & " <input name=""key"" type=""text"" class=""textbox"" value=""请输入关键字""this.select();""/><span>" & vbCrLf

      GetSearch = GetSearch & "<select style=""width:80px;"" name=""m"">" & vbCrLf

      GetSearch = GetSearch & "<option value=""0"">全部</option>" & vbCrLf

      If not IsObject(Application(KS.SiteSN&"_ChannelConfig")) Then KS.LoadChannelConfig

    Dim ModelXML,Node

    Set ModelXML=Application(KS.SiteSN&"_ChannelConfig")

    For Each Node In ModelXML.DocumentElement.SelectNodes("channel")

        if Node.SelectSingleNode("@ks21").text="1" and Node.SelectSingleNode("@ks0").text<>"6" and Node.SelectSingleNode("@ks0").text<>"9" and Node.SelectSingleNode("@ks0").text<>"10" Then

     GetSearch = GetSearch & "<option value="" & """>" & Node.SelectSingleNode("@ks3").text & "</option>" & vbCrLf

     End If

    Next

      GetSearch = GetSearch & "</select>" & vbCrLf

      GetSearch = GetSearch & "<input type=""image"" class=""inputButton"" name=""Submit1"" src=""" & KS.GetDomain & "images/btn.gif"" align=""absmiddle"" />" & vbCrLf

      GetSearch = GetSearch & "</span>" & vbCrLf

      GetSearch = GetSearch & "</div>" & vbCrLf

      GetSearch = GetSearch & "</form>" & vbCrLf

  End Function



'===================原函数结束================



'===================自己增加的函数=============



Function soso()

      soso = "<form id=""SearchForm"" name=""SearchForm"" method=""Get"" action=""" & KS.Setting(3) &"plus/search/"">" & vbCrLf

      soso = soso & "<div class=""searchsd"">" & vbCrLf

      soso = soso & " <input name=""key"" type=""text"" class=""textbox"" value=""请输入关键字""this.select();""/><span>" & vbCrLf

      'GetSearch = GetSearch & "<select style=""width:80px;"" name=""m"">" & vbCrLf

'      GetSearch = GetSearch & "<option value=""0"">全部</option>" & vbCrLf

'      If not IsObject(Application(KS.SiteSN&"_ChannelConfig")) Then KS.LoadChannelConfig

'    Dim ModelXML,Node

'    Set ModelXML=Application(KS.SiteSN&"_ChannelConfig")

'    For Each Node In ModelXML.DocumentElement.SelectNodes("channel")

'        if Node.SelectSingleNode("@ks21").text="1" and Node.SelectSingleNode("@ks0").text<>"6" and Node.SelectSingleNode("@ks0").text<>"9" and Node.SelectSingleNode("@ks0").text<>"10" Then

'     GetSearch = GetSearch & "<option value="" & """>" & Node.SelectSingleNode("@ks3").text & "</option>" & vbCrLf

'     End If

'    Next

'

'      GetSearch = GetSearch & "</select>" & vbCrLf

      soso = soso & "<input type=""image"" class=""inputButton"" name=""Submit1"" src=""" & KS.GetDomain & "images/btn.gif"" align=""absmiddle"" />" & vbCrLf

      soso = soso & "</span>" & vbCrLf

      soso = soso & "</div>" & vbCrLf

      soso = soso & "</form>" & vbCrLf

  End Function



'====================结束===================



其中我注释掉了GetSearch 可以不用修改成 soso ,注释掉的部分就是 下拉框.其他的修改成soso就行了.



第二大步骤:



前面我们已经准备好了函数 :  Function soso() . 接下来我们判断解析替换.



找到:'替换网站的所有搜索

  Function Run(byVal tag)

   tag=Lcase(tag)

   if tag="getsearchbydate" then

     Run=GetSearchByDate()

   elseif tag="getsearch" then

     Run=GetSearch()

     

行号一般为:  line: 23行



然后修改为:



'替换网站的所有搜索

  Function Run(byVal tag)

   tag=Lcase(tag)

   if tag="getsearchbydate" then

     Run=GetSearchByDate()

   elseif tag="getsearch" then

     Run=GetSearch()

'注意:这里开始增加.

     '冉:增加soso的函数调用.

     elseif tag="soso" then

     Run=soso()

'注意:这里为结束,所有添加成功.

   else





最后.我们就可以在模板里 调用诸如:  {$soso}



就可以实现自己添加解析标签了.



如果不懂得.可以问我.  QQ:28729161。电话: 13628211114,15123450806。



小记:  科讯小林  林文仲, 不错饿.呵呵.高手. 写的类感觉太复杂啦.



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

508

主题

14

广播

32

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

用户积分:1420 分
登录次数:531 次
注册时间:2011/6/24
最后登录:2024/9/4
esharp 发表于:2012/2/1 11:58:00   | 显示全部帖子 查看该作者主题 沙发 

我就给个完整的 文件了:


'*******************************************

Dim ShCls:Set ShCls=New RefreshSearchCls
Class RefreshSearchCls
  Private KS  
  Private Sub Class_Initialize()
    Set KS=New PublicCls
  End Sub
        Private Sub Class_Terminate()
   Set KS=Nothing
   Set ShCls=Nothing
  End Sub
  
  '替换网站的所有搜索
  Function Run(byVal tag)
   tag=Lcase(tag)
   if tag="getsearchbydate" then
     Run=GetSearchByDate()
   elseif tag="getsearch" then
     Run=GetSearch()
     '冉:增加soso的函数调用.
     elseif tag="soso" then
     Run=soso()
   else
    If not IsObject(Application(KS.SiteSN&"_ChannelConfig")) Then KS.LoadChannelConfig
    Dim ModelXML,Node
    Set ModelXML=Application(KS.SiteSN&"_ChannelConfig")
    For Each Node In ModelXML.DocumentElement.SelectNodes("channel")
     if tag=lcase("get" & Node.SelectSingleNode("@ks10").text & "search") then
       run="<script src=""" & KS.Setting(3) & KS.Setting(93) & "S_" & Node.SelectSingleNode("@ks10").text & ".js""></script>"
     end if
    Next
   end if
  End Function
  
  '取得高级日历搜索
  Function GetSearchByDate()
   GetSearchByDate="<iframe id=gToday:normal:agenda.js style=""BORDER-RIGHT: 0px ridge; BORDER-TOP: 0px ridge; BORDER-LEFT: 0px ridge; BORDER-BOTTOM: 0px ridge"" name=gToday:normal:agenda.js src=""" & KS.Setting(3) & "KS_Inc/iflateng.htm?../plus/search/?m=1&stype=100"" frameBorder=0 width=160 scrolling=no height=170></iframe>"
  End Function
  '取得总搜索
  
  '-----------------------------------------------
  '冉:终于找到全站搜索的样式了.
  Function GetSearch()
      GetSearch = "<form id=""SearchForm"" name=""SearchForm"" method=""Get"" action=""" & KS.Setting(3) &"plus/search/"">" & vbCrLf
      GetSearch = GetSearch & "<div class=""searchsd"">" & vbCrLf
      GetSearch = GetSearch & " <input name=""key"" type=""text"" class=""textbox"" value=""请输入关键字""this.select();""/><span>" & vbCrLf
      GetSearch = GetSearch & "<select style=""width:80px;"" name=""m"">" & vbCrLf
      GetSearch = GetSearch & "<option value=""0"">全部</option>" & vbCrLf
      If not IsObject(Application(KS.SiteSN&"_ChannelConfig")) Then KS.LoadChannelConfig
    Dim ModelXML,Node
    Set ModelXML=Application(KS.SiteSN&"_ChannelConfig")
    For Each Node In ModelXML.DocumentElement.SelectNodes("channel")
        if Node.SelectSingleNode("@ks21").text="1" and Node.SelectSingleNode("@ks0").text<>"6" and Node.SelectSingleNode("@ks0").text<>"9" and Node.SelectSingleNode("@ks0").text<>"10" Then
     GetSearch = GetSearch & "<option value="" & """>" & Node.SelectSingleNode("@ks3").text & "</option>" & vbCrLf
     End If
    Next

      GetSearch = GetSearch & "</select>" & vbCrLf
      GetSearch = GetSearch & "<input type=""image"" class=""inputButton"" name=""Submit1"" src=""" & KS.GetDomain & "images/btn.gif"" align=""absmiddle"" />" & vbCrLf
      GetSearch = GetSearch & "</span>" & vbCrLf
      GetSearch = GetSearch & "</div>" & vbCrLf
      GetSearch = GetSearch & "</form>" & vbCrLf
  End Function
  
  
  Function soso()
      soso = "<form id=""SearchForm"" name=""SearchForm"" method=""Get"" action=""" & KS.Setting(3) &"plus/search/"">" & vbCrLf
      soso = soso & "<div class=""searchsd"">" & vbCrLf
      soso = soso & " <input name=""key"" type=""text"" class=""textbox"" value=""请输入关键字""this.select();""/><span>" & vbCrLf
      'GetSearch = GetSearch & "<select style=""width:80px;"" name=""m"">" & vbCrLf
'      GetSearch = GetSearch & "<option value=""0"">全部</option>" & vbCrLf
'      If not IsObject(Application(KS.SiteSN&"_ChannelConfig")) Then KS.LoadChannelConfig
'    Dim ModelXML,Node
'    Set ModelXML=Application(KS.SiteSN&"_ChannelConfig")
'    For Each Node In ModelXML.DocumentElement.SelectNodes("channel")
'        if Node.SelectSingleNode("@ks21").text="1" and Node.SelectSingleNode("@ks0").text<>"6" and Node.SelectSingleNode("@ks0").text<>"9" and Node.SelectSingleNode("@ks0").text<>"10" Then
'     GetSearch = GetSearch & "<option value="" & """>" & Node.SelectSingleNode("@ks3").text & "</option>" & vbCrLf
'     End If
'    Next
'
'      GetSearch = GetSearch & "</select>" & vbCrLf
      soso = soso & "<input type=""image"" class=""inputButton"" name=""Submit1"" src=""" & KS.GetDomain & "images/btn.gif"" align=""absmiddle"" />" & vbCrLf
      soso = soso & "</span>" & vbCrLf
      soso = soso & "</div>" & vbCrLf
      soso = soso & "</form>" & vbCrLf
  End Function
  '-----------------------------------------------

End Class


'===========注意看清了. 是v8

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

508

主题

14

广播

32

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

用户积分:1420 分
登录次数:531 次
注册时间:2011/6/24
最后登录:2024/9/4
esharp 发表于:2012/2/1 13:31:00   | 显示全部帖子 查看该作者主题 藤椅 

相互学习的个. 科讯才是高手. 有他们才有我们.


不是每个问题我都会解决. 是我碰到了. 或者有改进想法.或者我用到哪里来了. 我才会考虑做二次开发.

点评 1

xtpl 说的很好 威望+1 发表于 2012/8/19 12:51:00 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行7.53711秒 powered by KesionCMS 9.0