Hkcms 栏目标签

栏目标签

用于调用栏目管理的数据

格式示例

// 获取顶级菜单栏目 {hkcms:channel type="top" where="ismenu=1"} 标题:{$item.title} {/hkcms:channel}

2.1.220504_202205201800版本起,新增ismenu属性,如下

// 获取顶级菜单栏目、显示导航栏目菜单 {hkcms:channel type="top" ismenu="1"} 标题:{$item.title} {/hkcms:channel}

参数

参数名称可选值默认值是否必填支持版本说明
name栏目ID或变量-type值为peer或son时必填-栏目ID,可以传入变量或指定ID,2.2.3.220920版本起支持多个id,详情见下面参数说明
typeson
peer
top
---指定获取的栏目层级
son-获取下级栏目
peer-表示同级栏目
top-表示顶级栏目
num例子:
10
或者
10,12
---限制结果数量
例如:
10 : 表示获取10条
10,12 : 表从第10开始的12条记录
model模型表ID---指定模型ID
where----数据库查询条件
order-weigh desc--排序方式, 格式为 order="字段名称 desc" 其中desc是倒序,asc是升序
id-$item--指定循环里的变量名,例如id='obj',模板调用如:{$item.title} 变成 {$obj.title}
empty----为空的时候输出提示,支持传入html
currentstyle-active--css class 类名,用于定义当前选中状态样式
cache-3600秒--缓存时间,默认3600秒
istotal1---统计文档数量
ismenu1-->=v2.1.220504显示导航栏目菜单
lang--->=v2.2.1.20220603多语言情况下获取指定语言的栏目
mod--->=v2.2.1.20220603调用:{$mod}
用于控制偶数输出、换行等,更多查看下面的示例
key--->=v2.2.1.20220603指定循环值变量名,默认为$i,从1开始计数每循环一次+1

参数说明

  • name 参数通常用于查单条特定的栏目数据。如果type值为peer或son时该值必填,支持变量或数字id
    获取栏目ID为3的记录

    {hkcms:channel name="3"} 标题:{$item.title} <br> {/hkcms:channel}

根据变量来获取栏目,假设在内容详情页有$Info变量,$Info.categroy.id 是当前文章所属ID,那么我们可以通过这个id来获取栏目同级的栏目代码如下:

// 同级 {hkcms:channel name="$Info.category.id" type="peer"} 标题:{$item.title} <br> {/hkcms:channel}

或者使用变量可以获取当前栏目的上级栏目信息

// $Cate 是当前 栏目的信息该变量在栏目首页、列表页、详情页、单页都存在 {hkcms:channel name="$Cate.parent_id"} 栏目标题:{$item.title} {/hkcms:channel}

2.2.3.220920版本起支持多个id获取栏目。如下,多个栏目ID逗号分隔开

{hkcms:channel name="1,3,7"} 标题:{$item.title} <br> {/hkcms:channel}
  • type属性用于获取的栏目层级,如下

1.son 获取下级栏目,需要结合name使用

// 获取栏目ID为1的所有下级菜单 {hkcms:channel name="1" type="son" } 标题:{$item.title} <br> {/hkcms:channel}

2.peer 表示同级栏目,需要结合name使用

// 获取栏目ID为1的所有同级菜单 {hkcms:channel name="1" type="peer" } 标题:{$item.title} <br> {/hkcms:channel}

3.top 表示顶级栏目

// 获取顶级菜单 {hkcms:channel type="top" ismenu="1" } 标题:{$item.title} <br> {/hkcms:channel}
  • num 限制结果数量。例如获取10条栏目那么num="10",当然也支持从第几条开始,例如num="4,2" 表示从第4条获取两条那就是第4条、第五条。

// 获取顶级栏目从第二条开始获取两条 {hkcms:channel type="top" ismenu="1" num="2,3"} 标题:{$item.title} <br> {/hkcms:channel}
  • model模型id,模型ID在模型管理里面可以看到

// 获取模型id=1的所有栏目 {hkcms:channel model="1"} 标题:{$item.title} <br> {/hkcms:channel}
// 使用变量的形式获取顶级栏目 {hkcms:channel model="$Info.model_id" type="top"} 标题:{$item.title} <br> {/hkcms:channel}
  • where 数据库查询条件,语法跟SQL where基本相同。格式:where="字段名 = 1" ,支持传入变量

{// 获取模型id为1的记录,where条件意思是只显示阅读量大于1的记录} {hkcms:content model="1" where="views > 1"} 标题:{$item.title} 描述:{$item.description} {/hkcms:content}

sql语法可参考:https://www.w3school.com.cn/sql/sql_where.asp
更多查询表达式参考:https://www.kancloud.cn/manual/thinkphp6_0/1037537

  • order 用于字段排序例如上面的代码,格式为order="字段名 asc,字段名2 desc",其中asc 表示正序 desc 表示倒序,多个排序字段使用逗号分隔开

// 多个字段排序使用逗号分隔开 {hkcms:channel name="21" type="son" order="weigh asc" } 标题:{$item.title} <br> {/hkcms:channel}
  • id 用于改变循环变量默认是$item,例如改成$vo则写成id="vo"无需加$。常用于多个标签嵌套时使用循环变量而不受影响

{hkcms:channel name="21" type="son" id="vo" } 标题:{$vo.title} <br> {/hkcms:channel}
  • empty为空提示标签,不支持传入HTML,但可以传入变量

{hkcms:channel name="111" type="son"  empty="没有更多数据了" } 标题:{$item.title} <br> {/hkcms:channel}

传入变量的形式使用html

{php}$empty = '<p>- 没有更多数据了 -</p>';{/php} {hkcms:channel name="111" type="son"  empty="$empty"} {php}dump($item){/php} {/hkcms:channel}
  • currentstyle 当前选中栏目的class样式用于字体高亮等自定义样式、值默认是active

// currentstyle 默认是active,你可以在这指定其他的class {hkcms:channel type="top" ismenu="1" currentstyle="active"}   // 例如:如果当前是新闻中心栏目那么只有新闻中心栏目这条记录有 active 类     <li class="nav-item dropdown {$item.currentstyle}">         <a class="nav-link dropdown-toggle" href="{$item.url}" target="{$item.target}">{$item.title} <i class="fa fa-angle-down"></i></a>     </li> {/hkcms:channel}
  • cache 设置缓存时间单位是秒,系统默认缓存是3600秒,设置成一天:cache="86400"

  • istotal 开启文档数量统计,istotal="1"开启

{hkcms:channel name="9" type="son"  istotal="1" } 标题:{$item.title} <br> 数量:{$item.total} <br> {/hkcms:channel}
  • ismenu 显示导航菜单,值为ismenu="1"。在后台栏目管理页面可以控制导航菜单的显示。

// 获取顶级菜单栏目 {hkcms:channel type="top" ismenu="1"} 标题:{$item.title} {/hkcms:channel}
  • lang 指定获取特定语言的栏目,需要开启内容多语言才有效

// 只获取英文不管语言怎么切换都是英文 {hkcms:channel name="9" lang="en" } 标题:{$item.title} <br> {/hkcms:channel}
  • mod属性用于控制一定记录的换行、或增加hr或奇数偶数等标签处理,例如下面的例子每输出5个栏目增加个hr标签

{hkcms:channel type="top" mod="5"} <p>标题:{$item.title} <br></p> // $mod的值是从1开始的 {if $mod==5} <hr> {/if} {/hkcms:channel}

mod输出奇数偶数记录,设mod="2",标签内会有$mod变量,里面的值每次计算到2的时候重新计数例如(1,2,1,2,1,2)

{hkcms:channel type="top" mod="2"} {if $mod==2} 偶数:{$item.title} <br> {else /} 奇数:{$item.title} <br> {/if} {/hkcms:channel}
    本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com