• 域名认证
  • 模板:390
  • 文库:144|
  • 网赚:0|
  • 资源:21|
织梦CMS常用的几种字段判断输出实例

织梦CMS常用的几种字段判断输出实例

浏览次数:
作者: 小工
信息来源: 未知
更新日期: 2017-10-08 23:59
文章简介

我们在使用织梦CMS制作网站时,对于某个字段,无论是默认字段还是自定义字段,偶尔会使用一些判断语句来实现我们的需求。下边列出了几种常见的需求。以及字段的判断输出实例。 第一种:

打赏此文

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

  • 正文开始
  • 相关阅读
  • 推荐作品

我们在使用织梦CMS制作网站时,对于某个字段,无论是默认字段还是自定义字段,偶尔会使用一些判断语句来实现我们的需求。下边列出了几种常见的需求。以及字段的判断输出实例。 

第一种:织梦自定义字段,如果没有值的时候要显示指定的默认内容,


{dede:field name='ziduan' runphp='yes'}
 if(@me=='') { @me = '' ;}
 else { @me = "<div class='red'><a href='/.@me'>此处是自定义的内容</a></div>"; } 
{/dede:field}


第二种:DedeCMS判断简略标题为空时则显示完整标题

方法1,适用于内容页


{dede:field name='array' runphp='yes'}
 if (@me['shorttitle']=='') 
@me=@me['title']; 

else
 @me=@me['shorttitle'];
 {/dede:field}


方法2,适用于列表页 


[field:array runphp='yes']
 if (@me['shorttitle']=='') @me=@me['title']; 
else @me=@me['shorttitle']; 
[/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]


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

以上分享结束,如有疑问可以在下边留言跟进,织梦园会第一时间回复。 


第四种:判断过程中需要调用别的字段。

需要在模板里做一个小判断,如果文章的价格为0时直接输出其下载地址,否则直接输出购买链接,那么这个时候肯定是需要运行runphp='yes'这个功能了,下面我们来看下代码:
经过搜索发现两个方法基本上可以实现

1、首先把需要调用其它字段的值放在公共变量里,然后再直接调用公共变量的值,看代码


{dede:php}$GLOBALS['title']=$arc->Fields['title']{/dede:php} 
{dede:php}$GLOBALS['baidupan']=$arc->Fields['baidupan']{/dede:php} 
{dede:field.price runphp="yes"}
if(@me="0")
@me = "下载地址:".$GLOBALS['baidupan'];
else
@me = "商品(".$GLOBALS['title'].")购买链接为:XXX";
{/dede:field.xxxx}  


2、直接使用name='array'将其它字段的值赋值到数组里,然后使用,看代码


{dede:field name='array' runphp='yes'}
if(@me['price']=='0' )
@me = '
<li><a class="demo" href="'.@me['baidupan'].'" target="_blank">下载:'.@me['baidupwd'].'</a></li>
';
else
@me = '
<div id="pdBuy" class="PDB2C_moban_warp" dataP="'.@me['title'].'" dataR="'.@me['price'].'"><img src="/uploads/allimg/170702/155R26021-0.gif"></div>
';
{/dede:field}


上述多处需要注意符号,单引号,双引号。


第五种 案例-标题列表判断是否为当日新发布以及是否为头条推荐等原创代码


看到图片就应该很熟悉了,日常做Dedecms模版的时候,首页肯定会有这样或那样的文章标题列表,用{dede:arclist}调用列表出来是件很easy的事情这里就不过多叙述了,不太熟悉的童鞋可以去参考Dedecms官方文档。这里我主要想说的是有点时候我们想在这个文章标题列表上做点小文章,比如取出的标题是当天发布的内容,则在标题后面加上new图标;又比如头条推荐的文章标题后面加上上图里的top图标等等,而单纯透过{dede:arclist}里面的'flag'属性是无法单独判断的,这就需要我们单独做点什么了。既然需要判断,自然而然的会令我们想到用'if',在Dedecms里面如果使用'if'判断的内容还跟文章有关,那不得不提的就是[field:array]这个东西很强大啊,基本上你想要的东西都在这里面,下面来看代码,先来两个热热身:

1、循环判断{dede:arclist}取出的标题是否为头条

{dede:arclist row=4 orderby=pubdate typeid=2}
    [field:flag runphp='yes']
        if(@me == 'h'){
		    @me='这篇文章是头条推荐';
		}else{
		    @me='这篇文章不是头条推荐';
		}
	[/field:flag]
{/dede:arclist}

代码不长,比较好理解,因为这里我们只是要对文章里的'flag'属性做判断,所以如果使用[field:array]虽然也能达到效果,但是会取出很多多余的内容难免影响效率,而直接使用[field:flag]既简洁又方便,其中"@me = 'h'"是判断文章是否属于头条,聪明的童鞋看到这里一定会衍生出很多种判断了,因为flag的值除了'h'外还可以是"头条[h]推荐[c]幻灯[f]特荐[a]滚动[s]加粗[b]图片[p]跳转[j]"。
另外说一下'@me',刚接触Dedecms模版的童鞋可能对这个@me使用起来比较晕,不要紧。Dedecms里面虽然可以执行php语句,但是不支持用'echo'进行输出,所以'@me'最简单的一个功能就是代替'echo'进行输出。比如本段代码中的"@me='这篇文章是头条推荐';",如果用php写法就应该是"echo '这篇文章是头条推荐';"这样看是否直观明白了呢。但是'@me'更高级的是它是配合在[field:xxx]等标签中使用的,'@me'不仅负责输出,其本身也会保存着上层标签查询数据库后所得的内容,比如本段代码'@me'保存的就是取出的文章信息里'flag'的值,因此"@me = 'h'"这个判断才成立。

2、循环判断{dede:arclist}取出的标题是否为当天发布
{dede:arclist row=4 orderby=pubdate typeid=2}
    [field:senddate runphp='yes']
	$now = time();
        $oneday = 3600 * 24;
        if(($now - @me) < $oneday){
	    @me='这篇文章是今天新发布的';
	}else{
	    @me='这篇文章不是今天新发布的';
	}
	[/field:senddate]
{/dede:arclist}
有了上一个代码的基础,理解这个就不难了,这里不再赘述了。发这两个热身主要是为了来个有点点难度的,那就是本文最开始贴图里显示的,对{dede:arclist}取出的文章标题做判断,如果是头条推荐则在标题后面显示top图标,如果是当天新发布的则在标题后面显示new图标,二者都不属于的则只显示文章标题,见代码:
{dede:arclist row=4 orderby=pubdate typeid=2 titlelen='54'}
    [field:array runphp='yes']
        if(@me['flag'] == 'h'){
	    @me="<li class='list '><a href='".@me['arcurl']."' title=' ".@me['title']."' target='_self'> ".@me['title']."</a><img class='listtop' src='".@me['templeturl']."/demo/images/top.gif' /></li>";
	}else{
            $now = time();
            $oneday = 3600 * 24;
            if(($now - @me['senddate']) < $oneday ){
                @me="<li class='list '><a href='".@me['arcurl']."' title=' ".@me['title']."' target='_self'> ".@me['title']."</a><img class='listtop' src='".@me['templeturl']."/demo/images/news.gif' /></li>";
            }else{
                @me="<li class='list '><a href='".@me['arcurl']."' title=' ".@me['title']."' target='_self'> ".@me['title']."</a></li>";
            }
        }
    [/field:array]
{/dede:arclist}
代码虽然长点,但是有前两段代码的基础看懂这个还是没什么难度的,代码中包涵的html内容不影响整个功能,仅是用来是布局相对美观使用,阅读程序代码时可以忽略掉。这里就可以体现出[field:array]的好处了,之前我们用[field:flag]也好,用[field:senddate]也好,都只是单一的判断,如果想做多条件判断,那就非[field:array]莫属了,这里取出之后的'@me'不仅包涵了'flag'和'senddate'信息,还包含有其他底层字段很多信息,下面所列出的都有:
ID(同id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,
writer,source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,
badpost,notpost,description(同infos)filename, image, imglink, fulltitle, 
textlink, typelink,plusurl, memberurl, templeturl
stime(pubdate 的"0000-00-00"格式)

转载请注明: 织梦阁 » 织梦CMS常用的几种字段判断输出实例

标签: 织梦标签
说说织梦CMS建立视频栏目的方法和思路
« 上一篇2017-01-25
对于织梦CMS各目录内文件的说明
下一篇 »2017-02-14
  • 如何在DEDECMS模板中使用
    458阅读
    在DEDECMS模板中要使用PHP的话,可以按照下面的格式进行: {dede:php runphp=yes} global $dsql; $query = select * from client ; $dsql-Execute(a, $query); $row = $dsql-GetArray(a); @me=$row -group1;//显示出group1的值 {/dede:php} 要作何种判断根据...
  • 织梦5.7提示(标题不能
    996阅读
    问题症状:V5.7登录后台后,发布英文标题没问题,发布中文会提示“标题不能为空”。 问题根源:htmlspecialchars在php5.4默认为utf8编码,gbk编码字符串经 htmlspecialchars 转义后的中文字符串为空,也就是标题为空。 解决办法:给htmlspecialchars添加ENT_...
  • 最新织梦后台dedecms标签
    318阅读
    [ 本帖最后由 小工 于 2012-10-14 02:10 编辑 ]\n\n 织梦后台dedecms标签调用说明 TAG:织梦后台dedecms标签调用说明织梦后台dedecms常用标签调用 关键描述调用标签: meta name=keywords content={dede:field name=keywords/} meta name=description content...
  • 织梦dede自带采集插件视
    2594阅读 织梦技术
    看到很多网友都为织梦(DEDE CMS)的采集教程头疼,的确,官方出的教程太笼统了,什么都没说,换个网站你什么都做不了,这个教程是最详尽的教程,让你一看即会 首先我们打开织梦后台点击 采集——采集节点管理——增加新节点 这里我们以采集普通文章为例,我...
  • 织梦调用网站建站天数
    1465阅读 建站天数调用
    今天有个需求是要在织梦CMS搭建的网站上调用网站的建站天数,织梦本身没有这个标签,只能是动手来实现了。 首先在需要调用的页面加以下代码: scriptvar s1 = '2008-05-24';//设置为你的建站时间s1 = new Date(s1.replace(/-/g, "/"));s2 = new Date()var da...
  • 织梦标签 [field:global.
    1241阅读
    在织梦的{dede:arclist/}的标签中,有一个非常有用的, [field:global.autoindex/] ,这个标签是一个自增长标签,他的值是从1开始,跟着你的列表自动自增,在我们给网站加入一些效果时候会非常有用。 这里再介绍一下,如果想让他从0开始自增的方法 [field:au...
  • dedecms获取上下文章链接
    576阅读
    我们知道,在文章页调用前后文章的链接和标题,dedecms默认上一篇和下一篇的标签分别为{dede:prenext get=pre/} {dede:prenext get=next/}。有时出于需要,我们只需要链接而不用标题,要怎么操作呢?大家应该能想到要用正则吧?没错!下面给出最终实现代码。...
  • Dedecms时间标签样式大全
    461阅读
    很多做模板的朋友,发现很多地方dedecms显示出来的时间都不一样,我这里指的织梦模板默认下的时间标签。那今天就和各位站长朋友一起分享下织梦时间的全解析。 先说下内容页样式 日期:{field:pubdate function=strftime(m-d,@me)/} 01-19 日期:{field:pubda...
  • 文章内容页调用所属栏
    389阅读
    问:内容页如何调用该栏目的地址? 解答: {dede:type typeid=~typeid~} a href=[field:typeurl/][field:typename/]/a {/dede:type}...
  • DEDE友情链接标签 flin
    441阅读
    DEDEcms的友情链接标签flink用于获取友情链接,其对应后台文件为\include\taglib\flink.lib.php, 图片 {dede:flink row=24 type=image titlelen=24 typeid=0} 底层标签 [field:link /] {/dede:flink} 文字 {dede:flink row=24 type=text titlelen=24typeid=0}...
  • 织梦CMS常用的几种字段
    4858阅读 织梦标签
    我们在使用织梦CMS制作网站时,对于某个字段,无论是默认字段还是自定义字段,偶尔会使用一些判断语句来实现我们的需求。下边列出了几种常见的需求。以及字段的判断输出实例。 第一种:...
  • 织梦Dedecms5.7默认数据库
    4558阅读 织梦数据库 织梦介绍
    1、dede_addonarticle:附加文章表 表名:dede_addonarticle (ENGINE=MyISAM/CHARSET=utf8) 说明:附加文章表 字段名 说明描述 具体参数 aid 文章ID mediumint(8) unsigned NOT NULL default '0' typeid 栏目ID smallint(5) unsigned NOT NULL default '0' b...
  • 关于织梦缩略图 有则显
    2724阅读 织梦缩略图
    今天的项目是一个织梦CMS模板搭建的博客站对其进行改版,该网站有大约一万多条文章,大部分文章当初添加时没有图片,改版后的文章列表页面调用了缩略图,织梦默认的话是没有缩略图就显示自定义的那张 defaultpic.gif ,这样的话列表页的缩略图就是同一张了,...
  • 织梦DEDECMS调用导航栏的
    2678阅读
    织梦调用导航菜单栏目,随着javascript的运用,导航栏的子栏目越来越多,在dedecms如何实现这些栏目的调用呢? 1. 一般导航栏目的调用,该类栏目只有主栏目,没有子栏目,这类栏目一般适用于企业网站和个人网站。其样式图如下: 该类栏目的dedecms调用方法比...
  • 织梦dede自带采集插件视
    2594阅读 织梦技术
    看到很多网友都为织梦(DEDE CMS)的采集教程头疼,的确,官方出的教程太笼统了,什么都没说,换个网站你什么都做不了,这个教程是最详尽的教程,让你一看即会 首先我们打开织梦后台点击 采集——采集节点管理——增加新节点 这里我们以采集普通文章为例,我...
  • DEDECMS文章模型整合下载
    2565阅读 织梦二次开发
    本教程为站长似水星辰原创,转载注明出处。 注:本教程中的金币和会员组设置只针对下载连接有效。不对文章内容生效,和文章本身的阅读权限和消费金币并不冲突,是分开设置的。文章中...
  • 织梦dede5.7中各函数所在
    2326阅读 织梦函数
    /include/taglib/tag.lib.php 2 //function GetTags() /include/payment/yeepay.php 415 function log_result() /dede/stepselect_main.php 204 function __addenum_save() /dede/stepselect_main.php 147 function __addnew_save() /dede/sys_data_replace....
  • 织梦DedeCms 5.7如何做淘
    2269阅读 织梦基础 织梦二次开发
    关于百度不收录淘宝客链接是如此的坑爹,所以我们现在要找办法解决这个问题。 首先,给模型添加一个新字段用来保存淘宝客链接 然后 模板 内容页中用 1 a href = {dede:field name=phpurl/}/url.php?id={dede:field name=id/} target = _blank 淘宝客链接/ a...
  • 织梦自定义表单添加提
    2269阅读 织梦二次开发 自定义表单
    在网上找了很久,织梦论坛也找个遍结果很失望,不解释,大家都懂得! 首先自定义表单,然后添加字段,比如联系人(单行文本),联系方式(单行文本),地址(单行文本),留言内容(单行文本), 留言时间(单行文本 ) 等字段 注意:留言时间这里不要选择时...
  • 如何实现在列表页中间
    2202阅读
    dede文档列表每隔5条插入一条广告: DEDECMS织梦列表页每隔N行文章添加一条广告(也可以自定义改为虚线、实线等),代码如下: {dede:arclist row=30 titlelen=50 orderby=pubdate} lispan[field:stime/]/spana href=[field:arcurl/] target=_blank[field:titl...
  • 织梦CMS建站前期必须要
    2096阅读 织梦安全
    Dedecms安全步骤,安装之后的操作 1将后台文件夹dede改名为其他,比如 /baidu/,这个随自己意愿改即可,防止别人找到你的后台地址。 2搜索ad.dedecms.com,文件dede\templets\login_ad.htm删除如下这一段: !--scripttype="text/JavaScript"src="?PHPecho$upd...
  • 如何在DEDE列表页中调用
    2060阅读
    下面方法可以实现 青岛网站建设 DEDE列表页中调用下载地址,实现点击列表标题直接下载对应附件,如下图: 实现方法如下:首先在文章模型增加一个自定义字段,数据类型为附件类型,选择… 下面方法可以实现DEDE列表页中调用下载地址,实现点击列表标题直接下...
  • 关于织梦生成html速度很
    1754阅读
    用织梦CMS搭建的网站,当文章量稍微大一点的话,生成一次静态html文件,将是非常痛苦的一件事情。 今天不考虑服务器性能,只是在织梦程序本身找到一些思路,给生成静态文件提点速度。...
  • 关于制作织梦的网站地
    1626阅读 织梦SEO 网站地图
    关于网站地图对于网站SEO的重要性,在这里就不多说了,这里主要和大家分享的是织梦 sitemap.xml格式的网站地图制作实例。 此次主要借用了织梦的自由列表。 第一步:用编辑器制作一个 xml格式的模板文件,名称为 sitemap.xml ,制作好后放到你的模板目录中,...
  • 说说织梦CMS网站程序视
    1489阅读
    1.项目要求: 织梦5.7搭建的网站,需要建立视频栏目,主要发布网站建设类视频教程,每个主题教程有多集视频,每个主题教程需要有封面 ,单个视频页面需要有同主题内的其它视频连接。...