织梦DedeCMS详解模板标签runphp='yes'

织梦DedeCMS详解模板标签runphp='yes'

在研究dedecms模板的时候,runphp='yes'这个标签的作用非常重要,要知道我们研究dedecms标签的时候,必须考虑到dedecms标签里面,如果方便的进行逻辑判断以及php运行。
dedecms模板标签中,逻辑判断和运算的支持,本身是不集成在dedecms模板中的。不象ecshop模板标签,dedecms模板标签更多的只进行数据显示和循环调用。他对数据的操作是很缺乏的。所以引入了runphp='yes'。
在dedecms的runphp='yes'里面,我们可以做逻辑判断,我们也可以进行php的运行。甚至对dedecms的数据库进行操作。接下来我们就来谈谈dedecmsrunphp='yes'的一些基本操作。

1:runphp='yes'在循环中的应用。

    {dede:arclist row=14 titlelen=32 noflag='h'}
    <li><a href="[field:arcurl/]">[field:title/]</a>
    [field:id runphp='yes']
    if(@me==5){
    @me='选中';
    }else{
    @me='没选中';
    }
    [/field:id]
    </li>
    {/dede:arclist}

这个思路很简单,filed:id的值给了@me。然后用@me这个方式来进行判断,可以进行逻辑运算,也可以进行逻辑判断。@me其实是代表当前这个变量的值,如果你想随意的修改@me的值,其实就相当于修改了这个变量的值。


2:runphp='yes'和数据库相互结合使用

    global $dsql;
    $a="SELECT game.assprice,game.msg,game.bigpic,game.model,game.sptype,gameetime,game.brand
    FROM dede_addongame_tg as game where game.aid=@me";
    $dsql->Execute()

织梦如何使用if判断某个字段是否为空呢?我们以文章页调用文章摘要为例:

使用if语句判断摘要是否为空,如果有摘要就显示摘要模块,如果没有就不显示

复制代码

{dede:field.description runphp='yes'} 
if (@me <> '') {
  @me = '<div>'.@me.'</div>'; 
} else {
  @me = '';
}
{/dede:field.audio}

复制代码

再比如调用某一栏目文章列表时,使用if判断是文章是否有简略标题,如果有就调用简略标题

复制代码

{dede:arclist row='10'}
    [field:array runphp='yes']
        if (@me['shorttitle'] == '') {
            @me = @me['title'];
        } else {
            @me = @me['shorttitle'];
        }
    [/field:array]
{/dede:arclist}

复制代码

猜你喜欢

转载自blog.csdn.net/wkj001/article/details/84948514