• 售前

  • 售后

热门帖子
入门百科

DEDE模板中利用php和if判断语句实例

[复制链接]
慧眼识英雄1 显示全部楼层 发表于 2021-8-18 01:52:37 |阅读模式 打印 上一主题 下一主题
本日刚刚在给用户用织梦CMS二次开辟站点的时候,需要内页里实现如许一个功能,判定新增字段是否有数值,如果有数值,前台模板体现调用该标签,如果该字段无数值或数值为空则前台不调用该标签大概调用标签隐蔽。如何实现如许的功能要求?例如:
  1. {dede:field.jb51 php=yes}
  2. if(@me==""||empty(@me))
  3. @me="<p>无</p>";
  4. {/dede:field.jb51 }
复制代码
解释:
@me:就是当前字段的值,你可以在if中给其赋值,然后判定结束后它的值就变成你赋的值,打印出来
详细方法如下:
方法一:
用个if判定语句,判定一个字段是否有东西,有则输出1,没有则输出2,
下面是的代码加载内容页模板中
  1. {dede:field.audio runphp='yes'}
  2. if(@me<>'')@me="如果audio字段里有东西就输出这个,支持html代码,并且可以在代码中使用@me来调用audio字段值,但是不要有双引号。";
  3. else
  4. @me="如果audio字段里没有东西就输出这个,也是支持html代码,并且也是可以在代码中使用@me来调用audio字段值,也是不要有双引号。";
  5. {/dede:field.audio}
复制代码
audio是本身添加的一个字段
方法二:
给DEDE模板加了新功能 if判定功能 标签iif和elserun
增长了变量$str和$str_count $str是最终体现的内容 $str_count是循环体现内容的条数。
增长了标签iif 和 elserun 满意iif的条件就正常运行 如果不满iif的条件就运行elserun
如果不满意iif的条件,也没指定elserun就返回空白
iif和elserun都是正常的php语法.
  1. {dede:arclist orderby='click' titlelen='30' row='10' iif="$str_count>1" elserun="$str=暂时没有内容"}
  2. <li><span class="gptlink">[field:textlink/]</span></li>
  3. {/dede:arclist}
复制代码
运行效果 如果arclist没返回效果就体现 临时没内容
  1. <title>{dede:global name='cfg_webname' iif="strlen($str)>10" elserun="$str.='我的网站'"/} </title>
复制代码
运行效果 如果cfg_webname长度大于10就正常体现
否则就在标题反面增长我的网站
体现
更改方法 只更改一个文件就是/dede/include/pub_dedetag.php
(1)
搜刮
  1. foreach($GLOBALS[$arr] as $k=>$v){
复制代码
更改成
  1. $GLOBALS['autoindex']=0;foreach($GLOBALS[$arr] as $k=>$v){$GLOBALS['autoindex']++;
复制代码
(2)
搜刮
  1. $this->CTags[$i]->TagValue = $DedeMeValue;
  2. }
复制代码
在反面加上
  1. $str = $this->CTags[$i]->TagValue;
  2. $str_count = $GLOBALS['autoindex'];
  3. if( $this->CTags[$i]->GetAtt("iif")!="" ){
  4. if(! eval("return {$this->CTags[$i]->GetAtt('iif')} ;" )){
  5. if($this->CTags[$i]->GetAtt("elserun")) {
  6. $this->CTags[$i]->TagValue=eval("return {$this->CTags[$i]->GetAtt('elserun')} ;" );
  7. }else{
  8. $this->CTags[$i]->TagValue='';
  9. }
  10. }
  11. }
复制代码
说了这么多,估计照旧有许多朋侪雨里雾里,下面就来点实际的,弄几个实例给各人参考参考,方便各人明白.
  1. <div id="shipindiv"  {dede:field name='shipinlianjie' runphp='yes'}
  2. if(@me == "") @me = "style='display:none'";else @me = ""; {/dede:field}>
复制代码
上面这段代码就是,判定字段空值 不体现。体现的是:style='display:none'这一段影藏样式代码。
别的如何要直接控制输出的内容,用法如下:
例子:如何【样品索取】这个字段是空的话,就体现none,如果好坏空就有值
樣品索取:
  1. {dede:field.yanshi runphp='yes'}
  2. if(@me<>'' )@me = '<a href="'.@me.'" target="_blank">Sample Request</a>';else @me = 'none';
  3. {/dede:field.yanshi}
复制代码
(留意用什么开头,就用什么结束,例如上面例子的yanshi)
下面是一个列子:判定栏目是否有栏目图片,如果没有的话就体现栏目名字
  1. {dede:field.typeid runphp='yes'}  
  2. $ID = @me;  
  3. $sql = "SELECT * FROM `dede_arctype` WHERE id=$ID";  
  4. $query = mysql_query($sql);  
  5. $row=mysql_fetch_array($query);  
  6. $arcpic = "$row[arcpic]";  
  7. $typename = "$row[typename]";  
  8. if($arcpic == null)  
  9. @me = '<div class="dynamic_wrap"><h1>'.$typename.'</h1></div>';  
  10. else @me = '<img src="'.$arcpic.'" width="100%" border="0" />';   
  11. {/dede:field.typeid}
复制代码
好了,说到这边信赖大部门童鞋都能明白和明白了,如果你另有什么不会的,大概不想本身处置惩罚的,可以接洽我们的在线客服帮你处置惩罚。
以上就是DEDE模板中利用php和if判定语句实例的全部内容,希望对各人的学习息争决疑问有所资助,也希望各人多多支持草根技术分享。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作