订阅/程序下载
首页 > 5ucms改进 > 正文
最小修改实现5UCMS IF语句的嵌套
作者:jodos 来源:JODOS.CN 日期:2010/4/3 9:47:31 浏览量:412(滞后) 人气:LOADING...(实时) 【

原创文章,若转载请注明来源 [转载自JODOS.CN]

5uCMS模板设计优秀,简练灵活,但IF标签不支持嵌套,有些场合不方便。本站给出一个简单的解决方案,以最小的改动实现IF的嵌套。

将 inc\class_template.asp 458行的 Parser_IF 函数整体注释掉,改成下面两个函数

 Public Function Parser_IF()
  Dim PreLB
  PreLB = ""
  Parser_IF2(PreLB)
 End Function
 
 ' 判断标签
 Public Function Parser_IF2(ByVal PreLB)
  On Error Resume Next
  Dim Matches, Match,TestIF,TestVal,TestTrue,TestFalse
  Dim NewPreLB
  Reg.Pattern = "{" & PreLB & "If:(.+?)}([\s\S]*?){" & PreLB & "End If}"
  Set Matches = Reg.Execute(Content)
  For Each Match In Matches
   TestVal=Match.SubMatches(1)
   If Instr(LCase(TestVal), "{" & PreLB & "else}")>0 Then
    TestVal=Replace(TestVal, "{" & PreLB & "else}", "{" & PreLB & "else}",1,-1,1):TestTrue=Split(TestVal, "{" & PreLB & "else}")(0):TestFalse=Split(TestVal, "{" & PreLB & "else}")(1)
   Else
    TestTrue=TestVal:TestFalse=""
   End If
   Execute ("If " & replace(Match.SubMatches(0),"'","""") & " Then TestIf = True Else TestIf = False")
   If TestIF Then Content = Replace(Content, Match.Value, TestTrue) Else Content = Replace(Content, Match.Value, TestFalse)
   If Err Then Response.Write "<font color=red>" & Lang_Parser_IF_Error & "[" & Match.SubMatches(0) & "]" & Err.Description & "</font>": Err.Clear: Response.End
  Next
  NewPreLB = PreLB & "-"
  If RegExists("{" & NewPreLB & "If:(.+?)}([\s\S]*?){ & NewPreLB & "End If}", Content) Then Call Parser_IF2(NewPreLB)  ' 多次调用
 End Function 

前台模板用法

{if: XXXX}
  {-if: XXXX}
  {-else}
    .....
  {-End if}
{else}
  .....
{end if}

即在嵌套的IF语句前加“-”,同理两级嵌套加两个,以此类推,层次足够你用哦,期待老大推出更好的写法
若有疑问可联系 QQ:13634935  support@jodos.cn
 

本站推荐:5ucms模板 5ucms插件 微信/QQ:3876307        [复制给好友] [打印] [关闭] [返回] [顶部]
上一篇:实现5UCMS IF语句的嵌套 最小修改方法
下一篇:为评论插件增加批量删除
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。
常见问题: 什么是路径码? 如有问题,请在下方评论提问或加入5ucmsQQ群
最小修改实现5UCMS IF语句的嵌套的关键词:IF语句的嵌套
评论信息
相关分类
本周热门
本月热门
关于我们 - 版权/免责 申明 - 建站服务 - 网站地图 - 稿件投递 - 联系我们 - 5ucms
Copyright © 2008-2015 www.5ucms.org 微信/QQ:3876307