齊博x1:欄目名稱調(diào)用詳解
調(diào)取欄目信息有多個(gè)函數(shù),分別是?sort_config
?和?get_sort
?及fun函數(shù)
他們一般用在循環(huán)當(dāng)中,比如調(diào)用當(dāng)前頻道的一級欄目
{volist name=":sort_config('',0)" id="name"}
<a href="{:urls('content/index',"fid=$key")}">{$name}</a><br>{/volist}
上面sort_config('',0)
?用到兩個(gè)參數(shù)只能簡單的獲取欄目名稱與欄目ID,加多一個(gè)參數(shù)可以獲取到欄目的所有字段信息,比如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}
就是欄目的圖標(biāo), 因?yàn)?code>sort_config('',0,true)?加了第三個(gè)參數(shù)
第二個(gè)參數(shù)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}
注意這次是循環(huán)里邊再套一個(gè)循環(huán) ,?rs
?變成了?vs
使用函數(shù),需要在函數(shù)名的前面加上冒號: 注意是英文半角冒號
sort_config
?只有兩個(gè)參數(shù),
第一項(xiàng)一般用''表示留空,即代表當(dāng)前模塊的欄目比如:
:sort_config('',0)
。 如果要調(diào)用其它模型的話,就要指定那個(gè)模型的目錄名,比如:sort_config('bbs',0)
第二項(xiàng)參數(shù)代表取某個(gè)欄目的子欄目,子欄目的子欄目不包括在內(nèi),只獲取最近的那層子欄目 ,設(shè)置為0的話,就代表獲取1級欄目.
第三項(xiàng)參數(shù)代表只取欄目或者是取所有字段,默認(rèn)是只取欄目名稱,設(shè)置為
true
的話,可以獲得所有字段,不設(shè)置的話,就只取欄目名稱
上面的代碼再改一下,就代表把一級與二級欄目調(diào)取出來
{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)
如果要調(diào)用其它頻道的欄目就把第一項(xiàng)參數(shù)填入對應(yīng)的目錄名比如::sort_config('bbs,0)
?及?:sort_config('bbs',$key)
sort_config
函數(shù)就只有兩項(xiàng),參數(shù),所以使用比較簡單
get_sort
函數(shù)就比較復(fù)雜,所以功能也比較豐富,這個(gè)函數(shù)有4個(gè)參數(shù).一般只用到前面兩個(gè),第三個(gè)用得比較少,第4個(gè)就是代表指定頻道
要獲取某個(gè)欄目的圖標(biāo),可以這樣 使用?{:get_sort($fid,'logo')}
?取欄目模型ID就是?{:get_sort($fid,'mid')}
?總之對應(yīng)數(shù)據(jù)庫的欄目表,把對應(yīng)的字段名放進(jìn)來即可.還有比較最常用的欄目SEO相當(dāng)?shù)恼{(diào)用?{:get_sort($fid,'seo_title')}
{:get_sort($fid,'seo_keywords')}
上面是取本頻道欄目的信息,如果要取其它頻道的欄目信息,就需要加上頻道目錄名. 放在第4項(xiàng)參數(shù)那里, 第3項(xiàng)留空 比如?{:get_sort($fid,'logo','','bbs')}
第1項(xiàng)是固定只能是欄目數(shù)字, 第2項(xiàng)除了可以調(diào)取欄目的字段外,還有以下幾個(gè)比較特殊的功能,
第2項(xiàng)設(shè)置為father
?就代表取 所有父欄目,也包括自身,一般用在面包屑導(dǎo)航 比如: 國內(nèi)新聞->廣東新聞->東莞新聞
{volist name=":get_sort($fid,'father')" id="name"}
<a href="{:urls('content/index',"fid=$key")}">{$name}</a> ->
{/volist}
brother
?代表取同級欄目,不包括子欄目
fun函數(shù) 跟上面的功能有點(diǎn)類似,重復(fù)的功能就不講解了,只講解上面沒有的功能
{:fun('sort@family',$fid)}
?代表獲取 父級 同級 下一級 這三級的所有欄目
上面那個(gè)用得比較少, 下面這個(gè)也用得比較少{:fun('sort@father',$fid)['id']}
?代表獲取父欄目的ID{:fun('sort@father',$fid)['name']}
?代表獲取父欄目的名稱
友情提醒: fun函數(shù)實(shí)際就是對?get_sort
sort_config
的補(bǔ)充,但用得不多,某些功能有可能是重復(fù).
列表頁用得最多的,就是下面這段代碼,
里邊做了一個(gè)判斷,如果有子欄目,就顯示子欄目,如果沒有子欄目的時(shí)候,避免頁面空空的,太難看不協(xié)調(diào),所以就把同級欄目調(diào)取出來. 這顯得更好看. 如果子欄目只有一個(gè)的話,可能就不是那么好看了.
{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函數(shù),他也可以換成下面的:getArray(sort_config('',$fid)?:get_sort($fid,'brother'))
如果是調(diào)用其它頻道的欄目,加上目錄參數(shù)即可.注意要對應(yīng)是第幾項(xiàng).
{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}
如果欄目少的話.就可以把相關(guān)欄目都全列出來.頁面就更豐富
{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}
上面這些欄目,如果需要顯示圖標(biāo)的話,就加上下面的代碼<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}
最后還有一個(gè)非常要注意的事項(xiàng),如果調(diào)用其它頻道的欄目,那個(gè)地址函數(shù)也要加上目錄名.比如默認(rèn)是{:urls('content/index',"fid=$key")}
?對應(yīng)其它頻道就要加上目錄名,比如{:urls('bbs/content/index',"fid=$key")}
最后,還有一個(gè)小提醒:
循環(huán)輸出的話,是nama+等于號+雙引號再加冒號,比如 name=":函數(shù)名"
直接輸出名稱或其它參數(shù)的話是 括號+冒號+函數(shù)名 {:函數(shù)名
別搞混了,要區(qū)別清楚
詳情:https://www.kancloud.cn/axdmin/blansj_x1/727128