在使用dede模板的时候,经常会需要直接对dede数据库的底层字段进行处理,如果dede中没有相应的函数的时候,往往就需要我们想办法来处理了。

举例:我想取出数据表addonimages中的某一条记录的typeid这个字段,然后在浏览器中输出typeid乘以2的结果。(注:这里的typeid值为6)

起初我是这么写的:

<body class="index">
{dede:loop table='dede_addonimages' if='aid=94'}
[field:typeid runphp='yes']
echo @me*2;
[/field:typeid]
{/dede:loop}
</body>

浏览器输出结果是:12   6

这里多出一个6,我认为是原因是[field:typeid]会先执行内部的php语句,当运行到[/field:typeid]这一行时,它会调用内部的函数,直接返回[field:typeid]底层模板的内容,如果想要直接输出12的话,只能在/include/extend.fuc.php 这个文件中添加自定义的函数。

function abc($val){
return $val*2;
}

然后模板改写为:

<body class="index">
{dede:loop table='dede_addonimages' if='aid=94'}
[field:typeid function="abc(@me)" /]
{/dede:loop}
</body>

输出结果为:12



另外要注意的是,同一模板中的两段php代码里面的变量不通用,也就是说一段php代码中的某一变量,它的作用域只限于该短代码。

例:

<body class="index">
{dede:loop table='dede_addonimages' if='aid=94'}
[field:typeid runphp='yes']
echo $a=@me*2;
[/field:typeid]
{/dede:loop}
{dede:php}var_dump($a);{/dede:php}
</body>

输出结果为:12  6  NULL

如果想在后面的php脚本中使用上面php脚本中的变量,我想出一个临时性的解决方法,即用全局变量来解决这个问题。

<body class="index">
{dede:loop table='dede_addonimages' if='aid=94'}
[field:typeid runphp='yes']
$GLOBALS['a']=@me*2;
[/field:typeid]
{/dede:loop}
{dede:php}echo $GLOBALS['a'];{/dede:php}
</body>

输出结果为:6  12 (因为[field:typeid]中没有echo,所以直接输出6)

DEDE模板中如何运行php脚本和php变量的使用的更多相关文章

  1. 通过使用Web Workers,Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作。这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线程(通常是UI线程)不会因此被阻塞/放慢。

    Web Workers API - Web API 接口参考 | MDNhttps://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API ...

  2. 织梦dede模板中广告的去除方法?

    织梦)dede模板中广告的去除方法1.我们先删除头部的广告,找到templetsdefault下的head.htm文件,打开后找到<div>{dede:myad name=’innerTo ...

  3. smarty模板中如何嵌入javascript脚本

    [官方网站](http://www.php100.com/manual/smarty/) 在smarty文件里直接写javascript代码时候,造成500错误. javascript代码有很多的{} ...

  4. 织梦dede模板中调用会员信息标签的方法

    织梦CMS v5.7调用文章所属会员信息标签 打开官方默认模板article_artcile.htm,我们可以提取出如下代码: {dede:memberinfos} 会员头像:<a href=& ...

  5. 在Xcode中编辑运行 Python 脚本

    http://www.zhihu.com/question/19872198 打开Xcode,File->New->Project选中OS X下的Other点击External Build ...

  6. jenkins中如何实现执行脚本时的变量共享

    1.主要是利用EnvInject Plugin插件,所以要首先安装插件,安装好后如下图: 2.然后在“增加构建步骤”中,插入一个“Execute Python script” 代码我用的python3 ...

  7. SMARTY模板中如何使用get,post,request,cookies,session,server变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间戳.直接访问PHP中 ...

  8. 让powershell同时只能运行一个脚本(进程互斥例子)

    powershell,mutex,互斥,进程互斥,脚本互斥 powershell脚本互斥例子,在powershell类别文章中,声明原创唯一. powershell 传教士 原创文章 2016-07- ...

  9. [SublimeText] Sublime Text 2 运行 Python 脚本中文路径解决方法

    在 SublimeText 中直接运行 Python 脚本,出现以下报错提示: Running python -u C:\Documents and Settings\Administrator\桌面 ...

随机推荐

  1. Django之视图与模板以及在模板中使用bootstrap

    从url中也可以传递参数给后台进行处理.比如http://127.0.0.1:8001/add/?a=4&b=5. 这个链接传入a=4,b=5.后台将进行a+b的处理 新增处理函数 def a ...

  2. iOS开发提问题

    1.打造最受企业欢迎的iOS开发者: 一直都存在的问题,什么样的员工最受企业欢迎? 一直也有人在努力提升自己,成为受企业欢迎的员工 然而,我们应该往方向去提升自己呢? 88家知名企业今年来iOS面试题 ...

  3. 【转】 PHP 两个日期(时间段) 之间的日期数组

    在开发过程中会遇到这样一个需求:获取2018-11-02到2018-11-15之间的日期数组 希望得到如下数组: Array ( [] => -- [] => -- [] => -- ...

  4. OAuth实现腾讯微博第三方登录

    前言 还是得弱弱的写下这个技术的背后,大概是这个样子的,看到OAuth这个单词,我就想到了权限这个词,不知道为什么,又想起了第三方登录这个技术,于是自己脑补了一下,应该这两个东西是有关系的.再就是去动 ...

  5. Django / Python 链接MySQL数据库

    https://www.cnblogs.com/wupeiqi/articles/5237704.html python (Django)中使用MySQL 首先python3中没有 MySQLdb 需 ...

  6. 下载GitHub仓库的某个子文件夹

    http://downgit.zhoudaxiaa.com/#/home

  7. Qt 学习之路 2(18):事件

    Home / Qt 学习之路 2 / Qt 学习之路 2(18):事件 Qt 学习之路 2(18):事件  豆子  2012年9月27日  Qt 学习之路 2  60条评论 事件(event)是由系统 ...

  8. ubuntu下中文乱码解决

    这个方法只对该用户有效. 方法二:修改/etc/environment,增加以下内容: LANGUAGE=”zh_CN:zh:en_US:en” LANG=zh_CN.GBK

  9. 类关系/self/特殊成员

    1.依赖关系 在方法中引入另一个类的对象 2.关联关系.聚合关系.组合关系 #废话少说 直接上代码===>选课系统 # coding:utf-8 class Student(object): d ...

  10. 关闭 chrome 自动填充

    <input name="uname" type="text" required autocomplete="off" class=& ...