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 "结果二"
;
</script>‘;
}
{/dede:php}

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


1

2

3

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

[field:name = "nums"/]

{/dede:sql}

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


1

2

3

{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.最简单的输出内容:


1

2

3

4

5

6

{dede:php}

$numA = 1;

$numB = 2;

echo $numA + $numB;

  

{/dede:php}

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

这个输出的内容是计算结果:
3
2.结合SQL查询输出单条内容


1

2

3

4

{dede:php}

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

print_r($row);

{/dede:php}

这个输出的内容是
Array
(
[id] => 2
[typename] => 问答
)
3.获取当前页面的变量
比如我们这里进入系统后台的[模板]-[全局标记测试],我们在代码中填入下面的内容:


1

2

3

4

{dede:php}

print_r($refObj->Fields);

  

{/dede:php}

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

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


1

2

3

4

5

6

7

8

9

10

11

Array

(

[typeid] => 0

[phpurl] => /plus

[indexurl] => /

[templeturl] => /templets

[memberurl] => /member

[specurl] => /special

[indexname] => 主页

[templetdef] => /templets/default

)

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


1

2

3

4

5

6

7

8

9

10

11

12

13

14

Array

(

[id] => 3

[reid] => 0

[topid] => 0

[sortrank] => 1

[typename] => 产品

[typedir] => {cmspath}/product

… …

[indexname] => 主页

[templetdef] => /templets/default

[position] => 主页 > 产品 >

[title] => 产品

)

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


1

2

3

4

5

{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-18 06:11:11

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

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法

Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法,亲测可用! Dedecms(织梦)首页的图片调用,相信大家已经非常的清楚,但是今天我在进行内容页的编写的时候,发现了内容页图片的调用问题! 这种问题,一般出现在产品站内页,因为会有产品缩略图的图片展示,所以今天我专门搜集了这方便的帖子! 为大家来解决这个问题,我想一定能帮助到大家! 好了话不多说,写内容先! 文章内容页和图片集内容页,缩略图的调用.适合内页中调用. <img src="{dede:field.picname 

织梦dede:channelartlist 标签在列表页没法调用软件下载地址softlinks

dede:channelartlist 虽然比较好用,但只可嵌套dede:arclist 标签,如果dede:arclist 标签中还有{dede:link islocal='1' text='本地下载'} ,则没法解析.需要在列表页单独用dede:arclist 标签,而不可再嵌套在dede:channelartlist 标签之内.

dedecms织梦网站时间标签strftime和MyDate解析

织梦DedeCMS网站时间标签strftime和MyDate解析: 很多做织梦模板的朋友,发现DedeCMS网站很多地方显示出来的时间都不一样,我这里指的织梦模板默认下的时间标签.那今天就和各位站长朋友一起分享下织梦DedeCMS时间标签的全解析. copyright www.dedecmsmuban.com 先说下内容页样式: 日 期:{field:pubdate function=strftime('m-d',@me)/} 01-01 日期:{field:pubdate function=s

织梦dede:list标签在列表页同一文章显示两次的解决方法

在列表页用{dede:list}标签调用文章的时候出现了同一篇文章显示两次的问题,经过一天的奋战最后终于解决了,下面CMS集中营站长简单说下我的解决过程来供各位学友参考:1.怀疑是不是每次添加都会自动生成2篇文章,可是查看了栏目下的文章后发现只有一篇.2.怀疑是dedecms 模板调用标签或模板中JS冲突引起的问题,于是将所有代码删除,只留有{dede:list pagesize ='10'}<a href="[field:arcurl/]">[field:title/]&

织梦dede groupthread标签调用说明

标签名称:groupthread功能说明:圈子主题调用标签适用范围:全局使用基本语法:{dede:groupthread gid='0' orderby='dateline' orderway='desc' row='12' titlelen='30'}<li><a href='[field:groupurl/]' target="_blank">[[field:groupname function="cn_substr(@me,10)"/]

dedecms 织梦利用arcpagelist标签实现首页arclist分页

DedeCMS首页arclist分页可以利用arcpagelist标签来实现,这里说一下调用方法:首先必须在首页的<head></head>标签里面引入如下js代码: <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> &

dedecms织梦去掉tag标签字数限制

默认的dedecms标签只能长度只能在12个字符以内,要去掉限制: ALTER TABLE `dede_tagindex` CHANGE `tag` `tag` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''; ALTER TABLE `dede_taglist` CHANGE `tag` `tag` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE ut

dedecms织梦让channelartlist标签支持currentstyle属性

打开include\taglib\channelartlist.lib.php  大约93行 找到: $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); 在此下方增加: if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id'] || $typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['topid'] ){

如何使用mysql(lamp)分离环境搭建dedecms织梦网站及apache服务器常见的403http状态码及其解决方法

一.实验环境 centos6.5+mysql5.5.32+php5.3.27 软件:DedeCMS-V5.7-GBK-SP1 本实验是使用lamp环境搭建,但mysql数据库与之分离,本实验成功的关键在于防火墙及其selinux关闭的前提下实现. 二.实验步骤 1)下载产品,并解压至www目录内 wget -O /home/chen/tools/  http://updatenew.dedecms.com/base-v57/package/DedeCMS-V5.7-GBK-SP1.tar.gz