欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

关于DEDECMS的IF标签和PHP标签

shiping1 的头像

关于DEDECMS的IF标签和PHP标签

阅读:462011-08-04 17:34
DEDECMS是国内应用最广泛的CMS之一,算得上是最常见也是最简单实用的一款CMS系统,同时DEDE也是深受站长朋友们的喜爱。 特别是DEDE的标签,调用简单易用,即使你不懂程序,也能很快的学会如何做出一个网站。
不过DEDE的标签功能也确实有着很多不方便的地方,比如标签嵌套,比如在模板里进行IF判断。
事情的起因是这样的,为了方便网站SEO的优化,需要用到dede后台的seotitle功能,对于个别的栏目需要指定标题,然后我就想在模板页进行调用,最后转了一圈发现,貌似dede并不支持在某个标签里嵌套另外的标签,比如{dede:field.seotitle runphp='yes'} if... {/dede:field.seotitle}虽然这种也可以有if判断,不过却无法在判断中间加上另外的标签、变量,只能是固定的值。
这样就不好办了,然后我就修改了list.php这个文件,不过当时我忽略了一件事情,动态跟静态是不同的,,从动态看到的已经可以了,但是从生成的静态并不是这样。。。再一次被打破。
今天下午再次弄到这个问题,然后一个同学告诉我,dede有一个{dede:if}{/dede:if}的这样一个标签,我到他们官方的资料看了看,介绍如下:
(7) if 条件
仅支持 if ,else ,else 直接用{else}表示,但不支持{else if}这样的语法 ,一般建议模板中不要使用太复杂的条件语法,如果确实有需要,可以直接使用 php 语法。
{dede:if 条件} a-block {else} b-block {/dede:if}
条件中允许使用 var.name 、 global.name 、 field.name、cfg.name 表示相应的变量。
但是,,我还是没明白具体应该如何使用这个if语句,而且自己测试了一下,也没反应。。很囧,写了几个条件都无法成立,我无奈了。。
不过这时候我看到了另外一个标签,
(6) php 代码块
{dede:php
php 代码
/}

{dede:php}
php代码
{/dede:php}
dede的这个标签显得非常的实用,对于会PHP的朋友来说,也是非常的简单,按照PHP来写就可以了。
{dede:php}if($lv->TypeLink->TypeInfos['seotitle']){echo $lv->TypeLink->TypeInfos['seotitle'];}else{echo $lv->Fields['title'].'_'.$cfg_webname;}{/dede:php}
而且,dede那些field,global变量,也不知道应该如何去调用,,只能这样写了。。有知道的高手可以指点一下。
本文来源自:http://hi.baidu.com/a53abc/blog/item/1205ac1caa6fae79f624e4a3.html

来自  http://blog.sina.cn/dpool/blog/s/blog_766c4d2b0100ts53.html?vt=4
普通分类: