今天剛剛在給用戶用織夢CMS二次開發(fā)站點的時候,需要內(nèi)頁里實現(xiàn)這樣一個功能,判斷新增字段是否有數(shù)值,如果有數(shù)值,前臺模板顯示調(diào)用該標(biāo)簽,如果該字段無數(shù)值或數(shù)值為空則前臺不調(diào)用該標(biāo)簽或者調(diào)用標(biāo)簽隱藏。如何實現(xiàn)這樣的功能要求?例如:
{dede:field.jb51 php=yes} if(@me==""||empty(@me)) @me="<p>無</p>"; {/dede:field.jb51 }
注釋:
@me:就是當(dāng)前字段的值,你可以在if中給其賦值,然后判斷結(jié)束后它的值就變成你賦的值,打印出來
具體方法如下:
方法一:
用個if判斷語句,判斷一個字段是否有東西,有則輸出1,沒有則輸出2,
下面是的代碼加載內(nèi)容頁模板中
{dede:field.audio runphp='yes'} if(@me<>'')@me="如果audio字段里有東西就輸出這個,支持html代碼,并且可以在代碼中使用@me來調(diào)用audio字段值,但是不要有雙引號。"; else @me="如果audio字段里沒有東西就輸出這個,也是支持html代碼,并且也是可以在代碼中使用@me來調(diào)用audio字段值,也是不要有雙引號。"; {/dede:field.audio}
audio是自己添加的一個字段
方法二:
給DEDE模板加了新功能 if判斷功能 標(biāo)簽iif和elserun
增加了變量$str和$str_count $str是最終顯示的內(nèi)容 $str_count是循環(huán)顯示內(nèi)容的條數(shù)。
增加了標(biāo)簽iif 和 elserun 滿足iif的條件就正常運(yùn)行 如果不滿iif的條件就運(yùn)行elserun
如果不滿足iif的條件,也沒指定elserun就返回空白
iif和elserun都是正常的php語法.
{dede:arclist orderby='click' titlelen='30' row='10' iif="$str_count>1" elserun="$str=暫時沒有內(nèi)容"} <li><span class="gptlink">[field:textlink/]</span></li> {/dede:arclist}
運(yùn)行結(jié)果 如果arclist沒返回結(jié)果就顯示 暫時沒內(nèi)容
<title>{dede:global name='cfg_webname' iif="strlen($str)>10" elserun="$str.='我的網(wǎng)站'"/} </title>
運(yùn)行結(jié)果 如果cfg_webname長度大于10就正常顯示
否則就在標(biāo)題后面增加我的網(wǎng)站
顯示
更改方法 只更改一個文件就是/dede/include/pub_dedetag.php
(1)
搜索
foreach($GLOBALS[$arr] as $k=>$v){
更改成
$GLOBALS['autoindex']=0; foreach($GLOBALS[$arr] as $k=>$v){ $GLOBALS['autoindex']++;
(2)
搜索
$this->CTags[$i]->TagValue = $DedeMeValue; }
在后面加上
$str = $this->CTags[$i]->TagValue; $str_count = $GLOBALS['autoindex']; if( $this->CTags[$i]->GetAtt("iif")!="" ){ if(! eval("return {$this->CTags[$i]->GetAtt('iif')} ;" )){ if($this->CTags[$i]->GetAtt("elserun")) { $this->CTags[$i]->TagValue=eval("return {$this->CTags[$i]->GetAtt('elserun')} ;" ); }else{ $this->CTags[$i]->TagValue=''; } } }
說了這么多,估計還是有很多朋友雨里霧里,下面就來點實際的,弄幾個實例給大家參考參考,方便大家理解.
<p id="shipinp" {dede:field name='shipinlianjie' runphp='yes'} if(@me == "") @me = "style='display:none'";else @me = ""; {/dede:field}>
上面這段代碼就是,判斷字段空值 不顯示。顯示的是:style='display:none'這一段影藏樣式代碼。
另外如何要直接控制輸出的內(nèi)容,用法如下:
例子:如何【樣品索取】這個字段是空的話,就顯示none,如果是非空就有值
樣品索取:
{dede:field.yanshi runphp='yes'} if(@me<>'' )@me = '<a href="'.@me.'" target="_blank">Sample Request</a>';else @me = 'none'; {/dede:field.yanshi}
(注意用什么開頭,就用什么結(jié)束,例如上面例子的yanshi)
下面是一個列子:判斷欄目是否有欄目圖片,如果沒有的話就顯示欄目名字
{dede:field.typeid runphp='yes'} $ID = @me; $sql = "SELECT * FROM `dede_arctype` WHERE id=$ID"; $query = mysql_query($sql); $row=mysql_fetch_array($query); $arcpic = "$row[arcpic]"; $typename = "$row[typename]"; if($arcpic == null) @me = '<p class="dynamic_wrap"><h1>'.$typename.'</h1></p>'; else @me = '<img src="'.$arcpic.'" width="100%" border="0" />'; {/dede:field.typeid}
好了,說到這邊相信大部分童鞋都能明白和理解了,如果你還有什么不會的,或者不想自己處理的,可以聯(lián)系我們的在線客服幫你處理。
以上就是DEDE模板中使用php和if判斷語句實例的全部內(nèi)容,希望對大家的學(xué)習(xí)和解決疑問有所幫助,也希望大家多多支持素材無憂。
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: DEDE模板中使用php和if判斷語句實例