DedeCMS模板里會(huì)遇到同時(shí)參與判斷的兩個(gè)字段,如果用[field:xxx runphp='yes']明顯是不夠的,該標(biāo)簽只對(duì)全局和本身字段有效,稍微研究了一下,總結(jié)幾種方法,適用首頁(yè)、列表頁(yè)以及內(nèi)容頁(yè)。
首頁(yè)、列表頁(yè)增加多字段判斷
用[field:array runphp='yes']標(biāo)簽,這個(gè)標(biāo)簽可以獲取任意字段的值。
比如,有兩個(gè)字段分別為:tishi,leibie,先判斷 tishi 這個(gè)字段是否為空,同時(shí)判斷 leibie 是否是指定字符,如果條件都滿足,就只調(diào)用tishi字段內(nèi)容,就可以這樣寫(和平時(shí)用的@me不同,這里的字段按照 @me['tishi'] 如下面橙色部分)。
{dede:arclist row='5'} [field:array runphp='yes'] if(@me['tishi'] !='' && @me['leibie'] == '類別1') @me='提示信息不為空,類別1的信息如下:' . @me['tishi']; if(@me['tishi'] !='' && @me['leibie'] == '類別2') @me='提示信息不為空,類別2的信息如下:' . @me['tishi']; if(@me['tishi'] !='' && @me['leibie'] == '類別3') @me='提示信息不為空,類別3的信息如下:' . @me['tishi']; [/field:array] {/dede:arclist}
&&是邏輯且的意思,有不明白的可以網(wǎng)上找找相應(yīng)的資料,就不重復(fù)了。
內(nèi)容頁(yè)增加多字段判斷
方法稍微復(fù)雜點(diǎn),主要有兩種方法,都介紹一下吧,
使用{dede:field.xx}寫php調(diào)用
{dede:php}$GLOBALS['tishi']=$arc->Fields['tishi']{/dede:php} <!--把tishi字段放到數(shù)組--> {dede:field.leibie runphp="yes"} if(@me=='類別1' && $GLOBALS['tishi']!='') @me = "提示信息不為空,類別1的信息如下:".$GLOBALS['tishi']; elseif(@me=='類別2' && $GLOBALS['tishi']!='') @me = "提示信息不為空,類別2的信息如下:".$GLOBALS['tishi']; elseif(@me=='類別3' && $GLOBALS['tishi']!='') @me = "提示信息不為空,類別3的信息如下:".$GLOBALS['tishi']; else @me='無(wú)'; {/dede:field.leibie}
使用{dede:field name='array'}寫php調(diào)用
這個(gè)方法和首頁(yè)、列表的相似。寫一個(gè)兩個(gè)字段都能調(diào)用的參考下
{dede:field name='array' runphp='yes'} if(@me['tishi'] !='' && @me['leibie'] == '類別1') @me='提示信息不為空,' . @me['leibie'] . '的信息如下:' . @me['tishi']; if(@me['tishi'] !='' && @me['leibie'] == '類別2') @me='提示信息不為空,' . @me['leibie'] . '的信息如下:' . @me['tishi']; if(@me['tishi'] !='' && @me['leibie'] == '類別3') @me='提示信息不為空,' . @me['leibie'] . '的信息如下:' . @me['tishi']; {/dede:field}
總的來(lái)說array功能還是很強(qiáng)大的,推薦用這個(gè)功能,特別是對(duì)多種判斷條件的情況下,可以減少不必要的開發(fā)時(shí)間。