加截中...

PbootCMS 常用if条件判断语句

一、导航相关判断

1. 非首页导航高亮

用于标识当前所在栏目,在非首页页面中使对应导航项高亮显示。

{pboot:nav}
  <a href="[nav:link]" {pboot:if('[nav:scode]'=='{sort:tcode}')}class="active"{/pboot:if}>
    [nav:name]
  </a>
{/pboot:nav}


  • 原理:通过比较导航项的scode(栏目编码)与当前页面的sort:tcode(父栏目编码),匹配时添加active样式

  • 适用场景:栏目页、内容页的主导航栏

2. 子菜单存在性判断

根据是否有子菜单动态生成导航结构,常用于下拉菜单或移动端折叠菜单。

例 1:显示二级菜单

{pboot:nav} 
  <li>
    <a href="[nav:link]">[nav:name]</a>
    {pboot:if([nav:soncount]>0)}  <!-- 判断是否有子菜单 -->
      <div class="submenu">
        {pboot:2nav parent=[nav:scode]}  <!-- 循环二级菜单 -->
          <a href="[2nav:link]">[2nav:name]</a>
        {/pboot:2nav}
      </div>
    {/pboot:if}
  </li>
{/pboot:nav}

例 2:移动端菜单链接处理

{pboot:nav} 
  <li>
    <a 
      {pboot:if([nav:soncount]>0)} 
        href="javascript:;"  <!-- 有子菜单时使用空链接(点击展开子菜单) -->
      {else} 
        href="[nav:link]"  <!-- 无子菜单时使用正常链接 -->
      {/pboot:if}
    >[nav:name]</a>
  </li>
{/pboot:nav}

3. 内页子菜单高亮

在内容页或子栏目页中,高亮当前栏目对应的子导航项。

{pboot:nav parent={sort:tcode}}  <!-- 调用当前栏目的同级子菜单 -->
  <li {pboot:if('[nav:scode]'=='{sort:scode}')}class="active"{/pboot:if}>
    <a href="[nav:link]">[nav:name]</a>
  </li>
{/pboot:nav}
  • 适用场景:左侧边栏子导航、面包屑导航的当前项标识

4. 导航起始位置控制

从指定序号开始显示导航项,常用于过滤前几个固定菜单。

{pboot:nav} 
  {pboot:if('[nav:i]'>'2')}  <!-- 只显示第3个及以后的导航项 -->
    <li><a href="[nav:link]">[nav:name]</a></li>
  {/pboot:if}
{/pboot:nav}
  • [nav:i]:导航循环中的序号(从 1 开始)

  • 可根据需求修改数值(如>'3'表示从第 4 个开始)

5. 隐藏指定栏目

通过栏目编码(scode)隐藏不需要显示的导航项。

{pboot:nav}           
  <li {pboot:if([nav:scode]==2||[nav:scode]==4||[nav:scode]==6)}style="display: none;"{/pboot:if}>
    <a href="[nav:link]">[nav:name]</a>
  </li>
{/pboot:nav}
  • 多个栏目用||分隔,支持任意数量的 scode

  • 隐藏逻辑:匹配指定 scode 时添加display: none样式

6. 导航栏 Logo 居中

在导航循环的指定位置插入 Logo,实现居中效果。

{pboot:nav}
  <a href="[nav:link]">[nav:name]</a>
  {pboot:if([nav:i]==3)}  <!-- 在第3个导航项后插入Logo -->
    <img src="{pboot:sitelogo}" class="logo">
  {/pboot:if}
{/pboot:nav}
  • 需配合 CSS 调整 Logo 样式,确保居中显示

  • 可修改[nav:i]==3中的数值调整 Logo 位置

二、内容与列表判断

4. 空值判断(标签内容控制)

当标签值为空时不显示该内容,避免页面出现空标签或无效信息。

{pboot:if('{pboot:companyqq}'!='')}  <!-- 仅当企业QQ有值时显示 -->
  <div class="contact">QQ:{pboot:companyqq}</div>
{/pboot:if}
  • 适用场景:联系信息、自定义字段等可能为空的内容

  • 扩展用法:可替换为其他标签(如{pboot:phone}{content:author}等)

5. 列表内容存在性判断

根据列表是否有内容,显示分页或提示信息。

{pboot:if({page:rows}>0)}  <!-- 判断列表有内容 -->
  <div class="page">         
    <a href="{page:index}">首页</a>
    <a href="{page:pre}">上一页</a>
    {page:numbar}
    <a href="{page:next}">下一页</a>
    <a href="{page:last}">尾页</a>
  </div>
{else}  <!-- 列表无内容时显示提示 -->
  <div class="page">暂无内容</div>
{/pboot:if}

6. 分页按钮状态控制

优化分页体验,在第一页隐藏 "首页"" 上一页 ",在最后一页隐藏" 下一页 ""尾页"。

{pboot:if({page:rows}>0)}
  <div class="page">
    <!-- 第一页隐藏首页和上一页 -->
    <a href="{page:index}" {pboot:2if('{page:current}'==1)}class="hide"{/pboot:2if}>首页</a>
    <a href="{page:pre}" {pboot:2if('{page:current}'==1)}class="hide"{/pboot:2if}>上一页</a>
    
    {page:numbar}
    
    <!-- 最后一页隐藏下一页和尾页 -->
    <a href="{page:next}" {pboot:2if('{page:current}'=='{page:count}')}class="hide"{/pboot:2if}>下一页</a>
    <a href="{page:last}" {pboot:2if('{page:current}'=='{page:count}')}class="hide"{/pboot:2if}>尾页</a>
  </div>
{else}
  <div class="page">暂无内容</div>
{/pboot:if}
  • 需添加 CSS:.hide { display: none; }

  • {page:current}:当前页码;{page:count}:总页数

7. 第一个循环项样式控制

为循环中的第一个元素添加特殊样式(如轮播图默认显示项、Tab 选项卡默认选中项)。

导航第一个项高亮

{pboot:nav}
  <a href="[nav:link]" {pboot:if('[nav:i]'=='1')}class="active"{/a>
{/pboot:nav}

列表第一篇文章高亮

{pboot:list}
  <a href="[list:link]" {pboot:if('[list:i]'=='1')}class="active"{/pboot:if}>[list:title]</a>
{/pboot:list}

轮播图第一张图激活

{pboot:slide gid=* num=*}
  <img src="[slide:src]" {pboot:if('[slide:i]'=='1')}class="active"{/pboot:if}>
{/pboot:slide}
  • 通用规则:[xx:i]表示循环中的序号(xx 为循环标签名,如 nav、list、slide)

8. 内容页图片显示判断

根据内容是否有多图,自动切换显示多图列表或单张缩略图。

{pboot:if({content:ispics}==1)}  <!-- 有多个图片时 -->
  <ul class="pics-list">
    {pboot:pics id={content:id} num=5}  <!-- 循环多图 -->
      <li><img src="[pics:src]" alt="图片描述"></li>
    {/pboot:pics}
  </ul>
{else}  <!-- 只有单张缩略图时 -->
  <img src="{content:ico}" class="single-pic" alt="{content:title}">
{/pboot:if}
  • {content:ispics}:多图标识(1 = 多图,0 = 单图)

  • num=5:限制显示的多图数量,可按需修改

9. 当前文章高亮(推荐列表)

在右侧推荐文章列表中,高亮显示当前正在浏览的文章。

<ul class="recommend-list">
  {pboot:list scode={sort:tcode} num=10 order='visits'}  <!-- 调用同栏目推荐文章 -->
    <li {pboot:if('[list:link]'=='{content:link}')}class="active"{/pboot:if}>
      <a href="[list:link]">[list:title]</a>
    </li>
  {/pboot:list}
</ul>
  • 原理:比较列表项链接与当前内容页链接,匹配时添加高亮样式

  • 适用场景:相关文章、热门推荐等侧边栏列表

10. 奇偶数判断(隔行变色)

通过判断列表项序号的奇偶性,实现隔行变色效果,提升列表可读性。

<ul class="article-list">
  {pboot:list num=10}
    <li {pboot:if([list:i]%2==0)}class="bg-gray"{/pboot:if}>  <!-- 偶数行添加灰色背景 -->
      <a href="[list:link]">[list:title]</a>
    </li>
  {/pboot:list}
</ul>
  • 实现逻辑:[list:i]%2==0表示偶数行,==1表示奇数行

  • 需添加 CSS:.bg-gray { background-color: #f5f5f5; }

三、使用说明与注意事项

  1. 语法规则

    • 条件判断格式:{pboot:if(条件表达式)}...{/pboot:if}

    • 嵌套判断:支持{pboot:2if(...)}实现二级嵌套(如分页按钮控制)

    • 比较符号:==(等于)、!=(不等于)、>(大于)、<(小于)等

  2. 变量说明

    • 循环序号:[nav:i][list:i]等,均从 1 开始计数

    • 栏目编码:[nav:scode](导航项)、{sort:scode}(当前栏目)

    • 链接地址:[list:link](列表项)、{content:link}(当前内容页)

  3. 样式配合
    所有高亮、隐藏等效果需配合 CSS 实现,例如:

.active { color: #f00; font-weight: bold; }  /* 高亮样式 */
.hide { display: none; }  /* 隐藏样式 */
.bg-gray { background: #f5f5f5; }  /* 隔行变色样式 */

 4.扩展技巧

    • 复杂逻辑可结合 JavaScript 进一步处理

    • 多个条件判断可使用||(或)、&&(且)连接

    • 不确定标签用法时,可参考 PbootCMS 官方手册的变量说明


通过灵活运用上述 if 条件判断语句,可大幅提升 PbootCMS 模板的动态性和用户体验,满足不同场景下的页面展示需求。实际开发中,可根据具体业务逻辑调整判断条件和样式效果。


在线客服
服务热线

服务热线

13648088499

微信咨询
二维码
返回顶部