DEDE模板中如何使用if进行多分支判断

我们在用dede做模板的时候,经常会遇到需要根据某个条件判断来分别显示不同的内容的情况,也就是dede模板中的多分支判断。比如典型的,我们需要根据风险管理数据库表中的风险等级字段risklevel的取值的不同分别显示不同的风险提示图标。如图1 所示。

红色框中的投资项目名称前面的图标表示了不同的风险等级,一共有AA,D,E,HR 4个风险等级。在数据库表中保存的分别是这4个等级取值中的一个,如图2 所示。

我们的风险等级字段risklevel 是可以在列表模板中获取到其取值的,因为我们在内容模型中已经设置了该字段允许被在列表模板中取值。

如图 3 所示。

这样,我们在列表模板中就很容易通过

 {dede:listpagesize='10'}
    [field:risklevel/]
 {/dede:list}

来得到风险等级的取值。

但是我们不同风险等级对应的提示图标却位于图片目录下,而且这些提示图片文件的名称没有任何规律,那么我们就需要通过if判断来根据风险等级的不同取值来设置不同的提示图片路径。

那么应该如何来判断呢?

需要使用到[field:array]标签,那么我们该如何来判断呢?我们首先要向大家介绍一个非常有用的dede标签:[field:array] 标签,该标签是标签 {dede:field name=‘array‘ /}的简写形式,该标签用在列表标签内部,例如:{dede:list}标签, {dede: arclist}等标签内部。 我们知道,在列表标签内部我们可以通过[field:字段名/]的形式得到某个数据库表字段的取值,那么当我们想要进行分支判断的时候,例如:根据风险等级取值的不同得到不同的图标路径,这个时候我们就必须借助[field:array]
标签了,[field:array] 标签标签代表查询得到的数据库表中的一条记录,具体的判断代码如下:

				[field:array runphp='yes']
					if(@me['risklevel']=="HR")@me="HR.png";
						else if(@me['risklevel']=="D")@me="D.png";
				                  else if(@me['risklevel']=="AA")@me="AA.png";
					[/field:array]
					{/dede:list}

其意思就是说如果查询得到的风险等级字段的取值是HR,那么将输出HR.png, 如果查询得到的风险等级字段的取值是D,那么将输出D.png,如果查询得到的风险等级字段的取值是AA,那么将输出AA.png, 这里的HR.png,只是一个字符串,代表图片文件所在的位置,你可以设置成任意的图片路径,上面的代码是一种分支条件输出语句,@me代表的就是输出变量,刚进入标签field:array时,@me代表数据库的一条记录,其数据类型是数组,我们根据其中risklevle的取值来判断,从而将@me设置成不同的值,当退出标签field:array时,@me的值就会被显示在原位置。

这个标签的功能非常强大,它适合于我们最常见的场景,当我们在模板页面中需要根据特定的条件来进行if分支判断来显示不同的内容时,采用field:array标签将给我们带来极大的方便。

时间: 2024-10-08 01:34:24

DEDE模板中如何使用if进行多分支判断的相关文章

织梦dede模板中广告的去除方法?

织梦)dede模板中广告的去除方法1.我们先删除头部的广告,找到templetsdefault下的head.htm文件,打开后找到<div>{dede:myad name=’innerTopBanner1′/}</div><div>{dede:myad name=’innerTopBanner2′/}</div>删除保存,在返回找到index.htm文件下同样的代码删除保存即可,这样在主页和内容也头部的广告都被删除了dede模板中广告的去除方法 2.下面再删

dede模板中直接写sql语句,关联sql调用

<div>{dede:php}$row = $GLOBALS['dsql']->GetOne("select id from dede_archives where typeid=4 order by rand() LIMIT 1"); $row2 = $GLOBALS['dsql']->GetOne("select body from dede_addonarticle where aid=".$row['id']); $pattern='

dede模板中plus文件路径使用方法

1 例:{dede:field name='phpurl'}/count.php

DEDECMS模板中dede标签使用php和if判断语句的方法

先来看看下面这个标签{dede:field.tong_gg php=yes}if(@me==""||empty(@me))@me="<p>无</p>";{/dede:field.tong_gg}注释:@me:就是当前字段的值,你可以在if中给其赋值,然后判断结束后它的值就变成你赋的值,打印出来下面来说说具体的方法:方法一:用个if判断语句,判断一个字段是否有东西,有就输出1,没有则就出2,下面是的代码加载内容页模板中{dede:field.a

织梦dedecms网站给自定义表单加dede模板自带验证码的方法。

有时候,我们因为需要给dede网站的自定义表单添加验证码,防止恶意填写表单提交. 我们可以用以下的方法来实现: 首先,我们要找到 /plus/diy.php 这个文件 在头部引入文件: require_once(DEDEINC.'/membermodel.cls.php'); 然后找到 elseif($do == 2) {  在这个地方加入代码块 //验证码验证 $svali = GetCkVdValue(); if(preg_match("/1/",$safe_gdopen)){ i

关于搭建使用dede模板网站的笔记

2016.9.8 公司数据库文件导入 步骤: 从网站上导出sql文件, 利用xshell拉入linux中, 进入数据库 先创建一个数据库并且进入, set names utf8:支持中文 source 文件路径 导入数据库内 describe 查看表的格式 flush privileges;刷新数据库 2016.9.9 昨天下午搭建httpd网站,支持php运行, 先部署php环境, 最后网站可以运行, 网站管理界面进不去 但是数据库死活连不上, 通过查找一些关于dede网站开发的资料 最后找到

dede模板标签以及dedetag.class.php模板类

dedecms里面有两个标签还是比较灵活的,一个是{dede:PHP} {/dede:PHP}另外一个是{dede:sql}标签,{dede:PHP}标签注释要用来在模板中写PHP代码的,{dede:sql}主要是用 来调用sql用的,下面就来介绍下这两个标签到底该如何使用.该文章是转自百度空间的一篇文章.{dede:sql}标签的用法sql标签可以称得上是个万能标签了,查询数据库将其输出,这里介绍一些关于这个标签的用法:1.用来输出统计内容,这个是不错的,举个例子,我们来统计下总共发了多少的文

dede模板制作

解析引擎概述 模板设计规范 代码参考 标记参考: arclist(artlist,likeart,hotart,imglist,imginfolist,coolart,specart) field channel mytag vote friendlink mynews loop channelartlist page list pagelist pagebreak fieldlist 一.织梦模板解析引擎概述 在了解DedeCms的模板代码之前,了解一下织梦模板引擎的知识是非常有意义的.符号,

Thinkphp模板中函数的使用

1.在模板中使用php函数 在thinkphp的html中,我们经常会遇到一些变量难以直接从php控制端直接处理,这些变量只有在模板中循环输出的时候处理比较合适,这个时候,我们就要在模板中使用函数 1.1对输出模板使用php函数 {$data.name|md5} //把模板中的name变量进行md5加密 把这句话翻译成php语言: <?php echo (md5($data['name'])); ?>   1.2函数中多个参数需要调用 1.2.1将前面输出的变量当后面函数的第二个参数使用 {$