DEDE实现转跳属性文档在模板上调用出转跳地址


Posted in PHP onNovember 04, 2016

首先在/include/extend.func.php增加以下方法:   

/**
 * 动态地址转静态输出 by Windchaser QQ:939238564
 * $arcurl 动态网址
 * @return String
 */
function arcurlHtml($arcurl){
  preg_match('/view.php\?aid=(\d+)/',$arcurl,$arcid);
  if(!empty($arcid) && is_array($arcid)){//匹配是否存在动态地址
    global $dsql;
    $addtable = $dsql->GetOne("SELECT channel.addtable FROM #@__channeltype AS channel LEFT JOIN #@__archives AS arc ON arc.channel=channel.id
WHERE arc.id='{$arcid[1]}'");//获取模型类型表名
    $redirecturl = $dsql->GetOne("SELECT redirecturl FROM {$addtable['addtable']} WHERE aid = '{$arcid[1]}'");//动态获取表名,并查询redirecturl字段数据
    if(!empty($redirecturl['redirecturl'])){
      return $redirecturl['redirecturl'];//返回redirecturl字段数据
    }else{
      return $arcurl;
    }
  }else{//非动态地址直接返回原地址
    return $arcurl;
  }
}

在模板上的使用方式有两种形式:

#第一种:
[field:arcurl function='arcurlHtml(@me)'/]
#第二种:
[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];@me=arcurlHtml(@me);[/field:id]

完整调用:

#第一种
{dede:arclist titlelen='45' channelid='-1' limit='0,4' type='commend.' flag='c'}
       <li class="RTLi"><a href="[field:arcurl function='arcurlHtml(@me)'/]" title="[field:title/]" target="_blank"><img width="236" height="136" src="[field:picname/]" /></a></li>
     {/dede:arclist}
#第二种
{dede:sql sql="SELECT * FROM xzzj_channeltype a left join xzzj_archives b on a.id = b.channel where a.id=-1 ORDER BY b.pubdate DESC LIMIT 0,2"}
        <a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];@me=arcurlHtml(@me);[/field:id]" class="s_contentRTPIA" target="_blank" title="[field:title/]" ><img src="[field:litpic/]" alt="[field:title/]" width="218" height="124" class="mb5"/><span class="s_contentRTPIASpan">[field:title/]</span></a>
    {/dede:sql}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
jQuery 源码分析笔记
May 25 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php的4种常见运行方式
Mar 20 PHP
php结合安卓客户端实现查询交互实例
May 05 PHP
深入浅出php socket编程
May 13 PHP
ubuntu下配置nginx+php+mysql详解
Sep 10 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
利用php-cli和任务计划实现刷新token功能的方法
May 03 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
如何判断微信付款码和支付宝付款码
Apr 01 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 #PHP
支付宝支付开发――当面付条码支付和扫码支付实例
Nov 04 #PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 #PHP
php array_slice 取出数组中的一段序列实例
Nov 04 #PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 #PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 #PHP
PHP读取文件的常见几种方法
Nov 03 #PHP
You might like
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python中二维阵列的变换实例
2014/10/09 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
讲解Python中的标识运算符
2015/05/14 Python
详解Python3中字符串中的数字提取方法
2017/01/14 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
python两种注释用法的示例
2020/10/09 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
煤矿安全生产月活动总结
2014/07/05 职场文书
采购内勤岗位职责
2015/04/13 职场文书
多表查询、事务、DCL
2021/04/05 MySQL
golang 实现并发求和
2021/05/08 Golang