DEDE模板中使用php和if判断语句实例
php  /  管理员 发布于 7年前   229
今天刚刚在给用户用织梦CMS二次开发站点的时候,需要内页里实现这样一个功能,判断新增字段是否有数值,如果有数值,前台模板显示调用该标签,如果该字段无数值或数值为空则前台不调用该标签或者调用标签隐藏。如何实现这样的功能要求?例如:
{dede:field.jb51 php=yes}if(@me==""||empty(@me))@me="<p>无</p>";{/dede:field.jb51 }
注释:
@me:就是当前字段的值,你可以在if中给其赋值,然后判断结束后它的值就变成你赋的值,打印出来
具体方法如下:
方法一:
用个if判断语句,判断一个字段是否有东西,有则输出1,没有则输出2,
下面是的代码加载内容页模板中
{dede:field.audio runphp='yes'}if(@me<>'')@me="如果audio字段里有东西就输出这个,支持html代码,并且可以在代码中使用@me来调用audio字段值,但是不要有双引号。";else@me="如果audio字段里没有东西就输出这个,也是支持html代码,并且也是可以在代码中使用@me来调用audio字段值,也是不要有双引号。";{/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:arclist orderby='click' titlelen='30' row='10' iif="$str_count>1" elserun="$str=暂时没有内容"}<li><span class="gptlink">[field:textlink/]</span></li>{/dede:arclist}
运行结果 如果arclist没返回结果就显示 暂时没内容
<title>{dede:global name='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='';}}}
说了这么多,估计还是有很多朋友雨里雾里,下面就来点实际的,弄几个实例给大家参考参考,方便大家理解.
<div id="shipindiv" {dede:field name='shipinlianjie' runphp='yes'}if(@me == "") @me = "style='display:none'";else @me = ""; {/dede:field}>
上面这段代码就是,判断字段空值 不显示。显示的是:style='display:none'这一段影藏样式代码。
另外如何要直接控制输出的内容,用法如下:
例子:如何【样品索取】这个字段是空的话,就显示none,如果是非空就有值
悠匪魅。
{dede:field.yanshi runphp='yes'}if(@me<>'' )@me = '<a href="'.@me.'" target="_blank">Sample Request</a>';else @me = 'none';{/dede:field.yanshi}
(注意用什么开头,就用什么结束,例如上面例子的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 = '<div class="dynamic_wrap"><h1>'.$typename.'</h1></div>'; else @me = '<img src="'.$arcpic.'" width="100%" border="0" />'; {/dede:field.typeid}
好了,说到这边相信大部分童鞋都能明白和理解了,如果你还有什么不会的,或者不想自己处理的,可以联系我们的在线客服帮你处理。
以上就是DEDE模板中使用php和if判断语句实例的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号