这个教程怎me回事,经常打不开,而且特别慢,能不能改善一下
调取栏目信息有多个函数,分别是 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
只有两个参数,
第一项一般用''表示留空,即代表当前模块的栏目比如::sort_config('',0)
。 如果要调用其它模型的话,就要指定那个模型的目录名,比如:sort_config('bbs',0)
第二项参数代表取某个栏目的子栏目,子栏目的子栏目不包括在内,只获取最近的那层子栏目 ,设置为0的话,就代表获取1级栏目.
上面的代码再改一下,就代表把一级与二级栏目调取出来
{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=":函数名"
直接输出名称或其它参数的话是 括号+冒号+函数名 {:函数名
别搞混了,要区别清楚