🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
调取栏目信息有多个函数,分别是 `sort_config` 和 `get_sort` 及fun函数 他们一般用在循环当中,比如调用当前频道的一级栏目 ~~~ {volist name=":sort_config('',0)" id="name"} <a href="{:urls('content/index',"fid=$key")}">{$name}</a><br> {/volist} ~~~ 上面`sort_config('',0)` 用到两个参数只能简单的获取栏目名称与栏目ID,加多一个参数可以获取到栏目的所有字段信息,比如`sort_config('',0,true)` ~~~ {volist name=":sort_config('',0,true)" id="rs"} <a href="{:urls('content/index',"fid=$key")}" class="{$rs.logo}">{$rs.name}</a><br> {/volist} ~~~ 上面的`{$rs.logo}`就是栏目的图标, 因为`sort_config('',0,true)` 加了第三个参数 第二个参数0代表获取所有一级栏目.也即他的父ID是0,如果要把二级栏目也列出来,参考下面的代码 ~~~ {volist name=":sort_config('',0,true)" id="rs"} <a href="{:urls('content/index',"fid=$key")}" class="{$rs.logo}">{$rs.name}</a><br> {volist name=":sort_config('',$rs.id,true)" id="vs"} <a href="{:urls('content/index',"fid=$key")}" class="{$vs.logo}">{$vs.name}</a><br> {/volist} {/volist} ~~~ 注意这次是循环里边再套一个循环 , `rs` 变成了 `vs` 使用函数,需要在函数名的前面加上冒号: 注意是英文半角冒号 `sort_config` 只有两个参数, * 第一项一般用''表示留空,即代表当前模块的栏目比如:`:sort_config('',0)`。 如果要调用其它模型的话,就要指定那个模型的目录名,比如`:sort_config('bbs',0)` * 第二项参数代表取某个栏目的子栏目,子栏目的子栏目不包括在内,只获取最近的那层子栏目 ,设置为0的话,就代表获取1级栏目. * 第三项参数代表只取栏目或者是取所有字段,默认是只取栏目名称,设置为`true`的话,可以获得所有字段,不设置的话,就只取栏目名称 上面的代码再改一下,就代表把一级与二级栏目调取出来 ~~~ {volist name=":sort_config('',0)" id="name"} <a href="{:urls('content/index',"fid=$key")}">{$name}</a><br> {volist name=":sort_config('',$key)" id="name"} |--<a href="{:urls('content/index',"fid=$key")}">{$name}</a><br> {/volist} {/volist} ~~~ 大家要注意对比` :sort_config('',0)` 及 `:sort_config('',$key)` 如果要调用其它频道的栏目就把第一项参数填入对应的目录名比如:` :sort_config('bbs,0)` 及 `:sort_config('bbs',$key)` * * * * * `sort_config`函数就只有两项,参数,所以使用比较简单 * * * * * `get_sort`函数就比较复杂,所以功能也比较丰富,这个函数有4个参数.一般只用到前面两个,第三个用得比较少,第4个就是代表指定频道 要获取某个栏目的图标,可以这样 使用 `{:get_sort($fid,'logo')}` 取栏目模型ID就是 `{:get_sort($fid,'mid')}` 总之对应数据库的栏目表,把对应的字段名放进来即可.还有比较最常用的栏目SEO相当的调用 `{:get_sort($fid,'seo_title')}` `{:get_sort($fid,'seo_keywords')}` 上面是取本频道栏目的信息,如果要取其它频道的栏目信息,就需要加上频道目录名. 放在第4项参数那里, 第3项留空 比如 `{:get_sort($fid,'logo','','bbs')}` 第1项是固定只能是栏目数字, 第2项除了可以调取栏目的字段外,还有以下几个比较特殊的功能, **第2项设置为** `father` 就代表取 所有父栏目,也包括自身,一般用在面包屑导航 比如: 国内新闻->广东新闻->东莞新闻 ~~~ {volist name=":get_sort($fid,'father')" id="name"} <a href="{:urls('content/index',"fid=$key")}">{$name}</a> -> {/volist} ~~~ `brother` 代表取同级栏目,不包括子栏目 * * * * * fun函数 跟上面的功能有点类似,重复的功能就不讲解了,只讲解上面没有的功能 `{:fun('sort@family',$fid)}` 代表获取 父级 同级 下一级 这三级的所有栏目 上面那个用得比较少, 下面这个也用得比较少 `{:fun('sort@father',$fid)['id']}` 代表获取父栏目的ID `{:fun('sort@father',$fid)['name']}` 代表获取父栏目的名称 **友情提醒: fun函数实际就是对 `get_sort` `sort_config`的补充,但用得不多,某些功能有可能是重复.** 列表页用得最多的,就是下面这段代码, 里边做了一个判断,如果有子栏目,就显示子栏目,如果没有子栏目的时候,避免页面空空的,太难看不协调,所以就把同级栏目调取出来. 这显得更好看. 如果子栏目只有一个的话,可能就不是那么好看了. ~~~ {volist name=":getArray(fun('Sort@son',intval($fid))?:fun('Sort@brother',$fid))" id="name"} <li {eq name="$key" value="$fid"}class='ck'{/eq}><a href="{:urls('content/index',"fid=$key")}">{$name}</a></li> {/volist} ~~~ 上面`:getArray(fun('Sort@son',intval($fid))?:fun('Sort@brother',$fid))`是用到fun函数,他也可以换成下面的 `:getArray(sort_config('',$fid)?:get_sort($fid,'brother'))` 如果是调用其它频道的栏目,加上目录参数即可.注意要对应是第几项. ~~~ {volist name=":getArray(sort_config('bbs',$fid)?:get_sort($fid,'brother','','bbs'))" id="name"} <li {eq name="$key" value="$fid"}class='ck'{/eq}><a href="{:urls('content/index',"fid=$key")}">{$name}</a></li> {/volist} ~~~ 如果栏目少的话.就可以把相关栏目都全列出来.页面就更丰富 ~~~ {volist name=":get_sort($fid,'other')" id="name"} <li {eq name="$key" value="$fid"}class='ck'{/eq}><a href="{:urls('content/index',"fid=$key")}">{$name}</a></li> {/volist} ~~~ 上面这些栏目,如果需要显示图标的话,就加上下面的代码 `<i class="{:get_sort($key,'logo')}"></i>` 比如 ~~~ {volist name=":getArray(sort_config('bbs',$fid)?:get_sort($fid,'brother','','bbs'))" id="name"} <li {eq name="$key" value="$fid"}class='ck'{/eq}><i class="{:get_sort($key,'logo')}"></i><a href="{:urls('content/index',"fid=$key")}">{$name}</a></li> {/volist} ~~~ * * * * * **最后还有一个非常要注意的事项,如果调用其它频道的栏目,那个地址函数也要加上目录名.比如默认是** `{:urls('content/index',"fid=$key")}` 对应其它频道就要加上目录名,比如` {:urls('bbs/content/index',"fid=$key")}` **最后,还有一个小提醒:** 循环输出的话,是nama+等于号+双引号再加冒号,比如 name=":函数名" 直接输出名称或其它参数的话是 括号+冒号+函数名 {:函数名 别搞混了,要区别清楚