dedecms中的{dede:php}{/dede:php}的详细用法

dedecms里面有两个标签还是比较灵活的,一个是{dede:php}{/dede:php}另外一个是{dede:sql}标签,{dede:php}标签注释要用来在模板中写php代码的,{dede:sql}主要是用来调用sql用的,下面就来介绍下这两个标签到底该如何使用。该文章是转自百度空间的一篇文章。

{dede:sql}标签的用法

sql标签可以称得上是个万能标签了,查询数据库将其输出,这里介绍一些关于这个标签的用法:

1.用来输出统计内容,这个是不错的,举个例子,我们来统计下总共发了多少的文章,思路就是输出dede_addonarticle这个文章附加表内容总数就可以了。

{dede:sql sql="SELECT COUNT(*) AS nums FROM dede_addonarticle"}

[field:name = "nums"/]

{/dede:sql}

2.使用~field~来进行特殊的查询,比如之前论坛上面很多会员需要做一个输出当前发布文章会员的相关内容,之前用sql或者arclist标签是没办法实现的,因为每篇内容是不同的,这里我们来用5.5的sql语句来做个示范。

我们首先在文章模板中相应的位置加上下面的标签

{dede:sql sql="SELECT * FROM dede_archives WHERE writer=~writer~"}

[field:id/],

{/dede:sql}

这个放到article_article.htm页面,将会检索出当前会员发布的相关文章,这里的~ writer~会根据当前内容的环境变量进行替换后再执行查询。

这里出现在SQL语句中条件查询的~ writer~,也就是$refObj->Fields[$value]这个里面的相关内容

模板中使用PHP

许多人希望织梦的模板标签能够更加灵活,加入可以运行PHP的功能,这里在DedeCMS V5.5中就加入了一个可以执行php的特殊标签{dede:php}{/dede:php},这个标签可以执行PHP语句了。

我这里举几个常用的例子:

1.最简单的输出内容:

{dede:php}

$numA = 1;

$numB = 2;

echo $numA + $numB;

{/dede:php}

在 {dede:php}里想要输出信息 可以直接使用print , echo 之类的打印出来 赋值给@me 无效

这个输出的内容是计算结果:

3

2.结合SQL查询输出单条内容

{dede:php}

$row = $dsql->GetOne(‘select id,typename from dede_arctype where id=2‘);

print_r($row);

{/dede:php}

这个输出的内容是

Array

(

[id] => 2

[typename] => 问答

)

3.获取当前页面的变量

比如我们这里进入系统后台的[模板]-[全局标记测试],我们在代码中填入下面的内容:

{dede:php}

print_r($refObj->Fields);

{/dede:php}

在PHP中想要获取dede某个字段值 可以使用 $refObj->Fields 对象来获取 列入获取 title => $refObj->Fields[‘title‘]

如果环境变量保持默认,即"不使用环境ID",我们会看到以下的结果:

Array

(

[typeid] => 0

[phpurl] => /plus

[indexurl] => /

[templeturl] => /templets

[memberurl] => /member

[specurl] => /special

[indexname] => 主页

[templetdef] => /templets/default

)

那我们再换个环境变量测试看看,这里以我本地的栏目为测试了:

Array

(

[id] => 3

[reid] => 0

[topid] => 0

[sortrank] => 1

[typename] => 产品

[typedir] => {cmspath}/product

… …

[indexname] => 主页

[templetdef] => /templets/default

[position] => 主页 > 产品 >

[title] => 产品

)

这样一来就检索出当前页面的局部变量了,接下来我们可以来结合前面的SQL语句来实现根据不同环境ID调用内容不同栏目内容。

例如:

{dede:php}

$thisid = $refObj->Fields[‘id‘];

$row = $dsql->GetOne(‘select id,typename from dede_arctype where id=‘.$thisid);

print_r($row);

{/dede:php}

这样是来调用当前栏目的标题,这个标签功能类似于{dede:field.typename/}

时间: 2024-10-12 09:22:22

dedecms中的{dede:php}{/dede:php}的详细用法的相关文章

Android开发中Context类的作用以及Context的详细用法

Android中Context的作用以及Context的详细用法 本文我们一起来探讨一下关于Android中Context的作用以及Context的详细用法,这对我们学习Android的资源访问有很大的帮助,文章中也贴出了一些关于Android Context使用的示例代码,非常不错,以下是原文: Context基本概念 Context是什么? 1) Context是一个抽象类,其通用实现在ContextImpl类中. 2) Context:是一个访问application环境全局信息的接口,通

dedecms织梦dede:sql标签,在dedecms中嵌套php语法等一些方法

很NB很强大的语句,用了他你可以在模板页面写任何php语句了 {dede:php} $thisid = $refObj->Fields['id']; $row = $dsql->GetOne('select v_type,video from `#@__addonarticle` where aid='.$thisid); if($row["v_type"]=="swf"){ echo "结果一";}else{ echo "

织梦dedecms中html和xml格式的网站地图sitemap制作方法

sitemap是网站上各网页的列表.创建并提交sitemap有助于百度(Google)发现并了解您网站上的所有网页,包括百度通过传统抓取方式可能找不到的网页.还可以使用sitemap提供有关你网站的其他信息,如上次更新日期.sitemap文件的更新频率等,供百度 (Google)spider参考. 百度(Google)对已提交的数据,不保证一定会抓取及索引所有网址.但是,百度(Google)会使用sitemap中的数据来了解网站的结构等信息,这样可以帮助百度改进抓取策略,并在日后能更好地对网站进

dedeCMS中单独调用子栏目模板和子栏目的文章时修改源代码给channel和chanenartllist加上limit

在网站文件中找到include-taglib-chanel.lib.php,和chaneartllist.lib.php 下载用php的IDE打开, chanel.php加入limit属性修改如下 <?php /** * 获取栏目列表标签 * * @version $Id: channel.lib.php 1 9:29 2010年7月6日Z tianya $ * @package DedeCMS.Taglib * @copyright Copyright (c) 2007 - 2010, Des

织梦 dedecms 中LOOP 万能标签循环 调用 arcurl标签(获取链接)

在DEDECMSV5.3中,提供了loop万能循环标签,但是此循环标签只能循环出该表中的字段,而“[field:arcurl/]”链接标签并不能被解析出来,而DEDECMS官方论坛上也没有找到相关的解决办法,所以只有自己动手写代码了! 这是官方提供的代码:{dede:loop table='dede_archives' sort='' row='4' if=''}<a href='[field:arcurl/]'>[field:title/]</a>{/dede:loop}以下是我

(转) dedecms中自定义数据模型

刚学习完dedecms的标签语法,我有很多困惑,觉得标签的意义比较抽象,不知道如何用标签来写一些具体的内容.如果有一些数据库的编程经验,就知道一个很常用的编程范例—增删改查.比如说,我要建立的是书本的模型,有索书号,书名,类型……,之后要写一个网页来完成书本信息的增删改查,这篇文章主要解决这种问题. 一频道(内容模型) 我很长时间弄不清频道和栏目的区别.从网上找了一些解释如下: 栏目就是网站中导航划分出的模块,如百度中的新闻.网页.贴吧等就是栏目. 频道是栏目的类型.官方的定义是:频道指内容模型

dedecms中调用文章,标题超过限制字数时,在标题后面加上省略号...

在dedecms中调用文章,当标题超过限制字数时,怎么在标题后面加上……呢.其实不论是在首页还是列表页还是内容页调用文章,不管是arclist还是list标签调用文章,只需要把[field:title]这个标签适当修改. 一般是类似于这样: {dede:arclist row='10'} <li><a href="[field:arcurl /]" title="[field:fulltitle/]">[field:title/]</a

DEDECMS中,友情链接

友情链接:dede:flink {dede:flink row='24' type='image' titlelen="24" typeid="0"} [field:link /] {/dede:flink} type:链接类型,值: a. textall 全部用文字显示: b. textimage 文字和图得混合排列: c. text 文字链接,仅显示不带Logo的链接: d. image 图片链接,仅显示带Logo的链接. row:链接调用数量. linktyp

DEDECMS中,arclist标签

文档列表  dede:arclist {dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'} <a href='[field:arcurl/]'>[field:title/]</a> {/dede:arclist} row='10' 返回文档列表总数 typ