最小修改实现5UCMS 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语句前加“-”,同理两级嵌套加两个,以此类推,层次足够用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
5u网站管理系统,是一款国内最专业、使用人数最多、应用范围最广的小型 ASP网站建站系统,适用于中小型企业自主建站,它使用方便快捷 、操作简单 明了、安装部署灵活,并提供海量插件,及各各行业的模板免费下载,seo友 好性强,简约而不简单,可应用于图片站、企业站、文章资迅站、 下载站等等,是企业建站的最好选择。 5uCMS v3.2012.0625更新说明: 更新手机客户端页面参数没有判断导致sql注入漏洞 5uCMS v3.2012.0503更新说明: 新增栏目大类分页标签属性 升级说明:替换inc/class_template.asp 标签说明:新增$cid属性 使用说明: <!--page:{$size=5 $cid=1,2,3}--><!--page-->调用指定栏目ID编号为1、2、3的文章列表 <!--page:{$size=5 $cid={field:childid}}--><!--page-->调用上级栏目下面所有子栏目的文章列表 <!--page:{$size=5}--><!--page-->不加cid属性默认调用终极栏目列表 修复后台登录提示非法请求 升级说明:替换admin/ajax/login.asp 修正自定义模型在编辑以前的文章时不能保存自定义字段数据 升级说明:替换admin/admin_content.asp,admin/inc/class_content.asp,admin/ajax.asp 修正取消文章内容分页在关闭分页功能后以前的文章需要在内容里面取消分页符 升级说明:替换inc/class_content.asp,admin/inc/class_content.asp 增加发布内容每20秒自动保存一次,在发布失败的失败的时候可以恢复内容 升级说明:替换admin/ajax.asp,admin/js/common.js,admin/admin_content.asp和admin/images/ajax.js 修复批量上传时在编辑框里面显示的是图片地址 升级说明:替换admin/update.asp 修复插件不能安装和卸载 升级说明:替换admin/images/ajax.js,admin/admin_plus.asp

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值