如何在DedeCms 标记中运行PHP

softyun3年前cms教程46

教大家如何在织梦DedeCms 标记中运行PHP :

打开 
pub_dedetag.php 
找到 
function AssignSysTag() 
在 
for函数结束的地方,即是在 
CODE:  
这个地方 

// 
//把分析模板输出到一个字符串中,并返回 
// 
function GetResult() 
[Copy to clipboard]  
—————————–
改为如下代码
———————————

CODE:  
//运行PHP接口 
if( $CTag->GetAtt("runphp") == "yes" ) 

$DedeMeValue = ""; 
if($CTag->GetAtt("source")==’value’) 
{ $runphp = $this->CTags[$i]->TagValue; } 
else{ 
$DedeMeValue = $this->CTags[$i]->TagValue; 
$runphp = $CTag->GetInnerText(); 

$runphp = str_replace(‘@me’,’$DedeMeValue’,$runphp); 
eval($runphp); 
$this->CTags[$i]->IsReplace = TRUE; 
$this->CTags[$i]->TagValue = $DedeMeValue; 


// 
//把分析模板输出到一个字符串中,并返回 
// 
function GetResult() 
[Copy to clipboard]  
////////////////////////////////////////////
这样只要在dedecms的标记中加上 runphp=’yes’ 就可以运行PHP语句了
用@me表示当前标记的值,$DedeMeValue表示最终返回值,里面为纯PHP代码,不能用<? ?>与THML混合
PHP代码放置方式一:
{dede:name runphp=’yes’}
这里写PHP代码
{/dede:name}
方式二:
假如你想在include的文件中使用PHP,则加上 source=’value’
{dede:include runphp=’yes’ source=’value’ file=”/}
PHP编写的规范为:
一、PHP编码中不需要再加<??>符号;
二、假如想处理当前标记的值 上面第一种情况,使用 @me 表示当前的值;
三、假如直接引入PHP并要获得运行后的值,必须用 $DedeMeValue 表示运行这个PHP后最终返回的值 因此不能用HTML混合的写法。
例如:

{dede:field runphp=’yes’} 
$aaa=200; 
$DedeMeValue=100; 
$DedeMeValue = $aaa; 

仅供大家学习参考,希望对你有所帮助。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

DedeCms教程:留言簿模块

一、留言薄的安装 留言薄的安装过程和其他插件一样,首先我们进入后台模块管理列表,点击其对于的“安装”: 图1 图2 安装以上步骤,我们完成了留言薄插件的安装。 二、留言薄的卸载...

DedeCms去掉栏目页当前位置导航最后的分隔符“&gt;”

DedeCms去掉栏目页当前位置导航最后的分隔符“>”织梦DedeCms的当前位置导航调用标签{dede:field name=’position’ /},在栏目页里调用的当前位置导航,最后会出...

DEDECMS5.3去掉导航链接里的index.html

为什么要去掉导航链接里的index?虽然说这两个链接的意思一样,链接到的网址也一样,但是从优化角度来说去掉链接里的index要比后者权重高一点。DEDECMS去掉导航链接里的index有两种方法:1....

DEDECMS 删除指定IP的评论

今天发现网站上垃圾评论一大堆  一个垃圾 竟然发了40000多条垃圾评论。说一下我的清理方法后台或者PHPMYADMIN运行下面的SQL语句DELETE FROM `dede_feedback` WH...

dedecms自定义表单后台显示时间格式错误的解决方法

今天教给大家一些织梦dedecms自定义表单后台显示时间格式错误的解决办法,比较简单,希望可以帮助到你。在制作dedecms企业模板的时候 很多客户都需要制作一个在线订购功能!仔细的朋友就会发现使用的...

admin5复制文章自动加上版权的功能

模板中加入以下代码<script type="text/javascript">document.body.oncopy = function () { setTimeout( funct...