码库记事本

码库记事本

DEDE模板中php和if判断语句的使用技巧

小诸哥 0

{dede:field.zufang_telphp=yes}  

if(@me==""||empty(@me))  

@me="<p>无</p>";  

{/dede:field.zufang_tel}  

注释:  

@me:就是当前字段的值,你可以在if中给其赋值,然后判断结束后它的值就变成你赋的值,打印出来  

具体方法如下:  

方法一:  

用个if判断语句,判断一个字段是否有东西,有责输出1,没有则输出2,  

下面是的代码加载内容页模板中  

{dede:field.audiorunphp='yes'}  

if(@me<>'')@me="如果audio字段里有东西就输出这个,支持html代码,[email protected],但是不要有双引号。";  

else  

@me="如果audio字段里没有东西就输出这个,也是支持html代码,[email protected],也是不要有双引号。";  

{/dede:field.audio}  

audio是自己添加的一个字段  

方法二:  

给DEDE模板加了新功能if判断功能标签iif和elserun  

增加了变量$str和$str_count$str是最终显示的内容$str_count是循环显示内容的条数。  

增加了标签iif和elserun满足iif的条件就正常运行如果不满iif的条件就运行elserun  

如果不满足iif的条件,也没指定elserun就返回空白  

iif和elserun都是正常的php语法.  

{dede:arclistorderby='click'titlelen='30'row='10'iif="$str_count>1"elserun="$str=暂时没有内容"}  

<li><spanclass="gptlink">[field:textlink/]</span></li>  

{/dede:arclist}  

运行结果如果arclist没返回结果就显示暂时没内容  

<title>{dede:globalname='cfg_webname'iif="strlen($str)>10"elserun="$str.='我的网站'"/}</title>  

运行结果如果cfg_webname长度大于10就正常显示  

否则就在标题后面增加我的网站  

显示  

更改方法只更改一个文件就是/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='';  

}  

}  

}

标签: dede if判断