DEDE模板中使用php和if判斷語(yǔ)句實(shí)例

今天剛剛在給用戶用織夢(mèng)CMS二次開(kāi)發(fā)站點(diǎn)的時(shí)候,需要內(nèi)頁(yè)里實(shí)現(xiàn)這樣一個(gè)功能,判斷新增字段是否有數(shù)值,如果有數(shù)值,前臺(tái)模板顯示調(diào)用該標(biāo)簽,如果該字段無(wú)數(shù)值或數(shù)值為空則前臺(tái)不調(diào)用該標(biāo)簽或者調(diào)用標(biāo)簽隱藏。如何實(shí)現(xiàn)這樣的功能要求?例如:
{dede:field.jb51 php=yes} if(@me==""||empty(@me)) @me="<p>無(wú)</p>"; {/dede:field.jb51 }
注釋?zhuān)?/strong>
@me:就是當(dāng)前字段的值,你可以在if中給其賦值,然后判斷結(jié)束后它的值就變成你賦的值,打印出來(lái)
具體方法如下:
方法一:
用個(gè)if判斷語(yǔ)句,判斷一個(gè)字段是否有東西,有則輸出1,沒(méi)有則輸出2,
下面是的代碼加載內(nèi)容頁(yè)模板中
{dede:field.audio runphp='yes'} if(@me<>'')@me="如果audio字段里有東西就輸出這個(gè),支持html代碼,并且可以在代碼中使用@me來(lái)調(diào)用audio字段值,但是不要有雙引號(hào)。"; else @me="如果audio字段里沒(méi)有東西就輸出這個(gè),也是支持html代碼,并且也是可以在代碼中使用@me來(lái)調(diào)用audio字段值,也是不要有雙引號(hào)。"; {/dede:field.audio}
audio是自己添加的一個(gè)字段
方法二:
給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的條件,也沒(méi)指定elserun就返回空白
iif和elserun都是正常的php語(yǔ)法.
{dede:arclist orderby='click' titlelen='30' row='10' iif="$str_count>1" elserun="$str=暫時(shí)沒(méi)有內(nèi)容"} <li><span class="gptlink">[field:textlink/]</span></li> {/dede:arclist}
運(yùn)行結(jié)果 如果arclist沒(méi)返回結(jié)果就顯示 暫時(shí)沒(méi)內(nèi)容
<title>{dede:global name='cfg_webname' iif="strlen($str)>10" elserun="$str.='我的網(wǎng)站'"/} </title>
運(yùn)行結(jié)果 如果cfg_webname長(zhǎng)度大于10就正常顯示
否則就在標(biāo)題后面增加我的網(wǎng)站
顯示
更改方法 只更改一個(gè)文件就是/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=''; } } }
說(shuō)了這么多,估計(jì)還是有很多朋友雨里霧里,下面就來(lái)點(diǎn)實(shí)際的,弄幾個(gè)實(shí)例給大家參考參考,方便大家理解.
<div id="shipindiv" {dede:field name='shipinlianjie' runphp='yes'} if(@me == "") @me = "style='display:none'";else @me = ""; {/dede:field}>
上面這段代碼就是,判斷字段空值 不顯示。顯示的是:style='display:none'這一段影藏樣式代碼。
另外如何要直接控制輸出的內(nèi)容,用法如下:
例子:如何【樣品索取】這個(gè)字段是空的話,就顯示none,如果是非空就有值
樣品索取:
{dede:field.yanshi runphp='yes'} if(@me<>'' )@me = '<a href="'.@me.'" target="_blank">Sample Request</a>';else @me = 'none'; {/dede:field.yanshi}
(注意用什么開(kāi)頭,就用什么結(jié)束,例如上面例子的yanshi)
下面是一個(gè)列子:判斷欄目是否有欄目圖片,如果沒(méi)有的話就顯示欄目名字
{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 = '<div class="dynamic_wrap"><h1>'.$typename.'</h1></div>'; else @me = '<img src="'.$arcpic.'" width="100%" border="0" />'; {/dede:field.typeid}
好了,說(shuō)到這邊相信大部分童鞋都能明白和理解了,如果你還有什么不會(huì)的,或者不想自己處理的,可以聯(lián)系我們的在線客服幫你處理。
以上就是DEDE模板中使用php和if判斷語(yǔ)句實(shí)例的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)和解決疑問(wèn)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
- 這篇文章主要介紹了DEDE模板中如何使用if進(jìn)行多分支判斷的教程的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-26