在网站开发中,Dedecms(织梦)CMS模板支持嵌入PHP代码,尽管它无法完全像编写独立的PHP页面那样自由,但基本的功能需求还是可以满足的。以下将详细介绍如何在Dedecms模板中使用PHP代码。
一、模板页面内嵌入PHP
在Dedecms模板中可以直接嵌入PHP代码,例如:
{dede:name runphp='yes'}
$str = "hello";
@me = $str;
@me .= "world"
{/dede:name}
最终输出结果为:hello world。
在上述代码中,“name”是任意定义的名字,“@me=”后面的值是最终用于输出的值。这里我们用“@me”来代替echo功能(如果直接使用echo,模板生成时可能会报错,这是Dedecms的一些限制)。
二、引用外部PHP文件
如果你希望在include的文件中使用PHP代码,可以在标签中添加 source='value' 参数。
{dede:include runphp='yes' source='value' file=''}
PHP编写的规范如下:
- 一、PHP编码中不需要再加<?php ?>符号;
- 二、如果想处理当前标记的值(如第一种情况),使用 @me 表示当前的值;
- 三、如果直接引入PHP并要获得运行后的值,必须用 $DedeMeValue 表示运行这个PHP后最终返回的值(因此不能用HTML混合的写法)。
例如:
{dede:field runphp='yes'}
$aaa=200;
$DedeMeValue=100;
$DedeMeValue += $aaa;
{/dede:field}
等同于:
{dede:field runphp='yes'}
$aaa = 200;
@me=100;
@me += $aaa;;
{/dede:field}
最终返回结果是:300。
另一个例子:
{dede:list perpage='10'}
[field:id runphp="yes"]
$dsql = new DedeSql(false);
$a="select a.address FROM xudaoshan_addonarticle as a where a.aid=@me";
$arcRow = $dsql->GetOne($a);
@me='' . $arcRow[address] . '';
[/field:id]
{/dede:list}
通过这种方式,我们可以灵活地在Dedecms模板中嵌入和调用PHP代码,以满足更复杂的功能需求。