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 相关文章推荐
聊天室php&amp;mysql(五)
Oct 09 PHP
PHP一些常用的正则表达式字符的一些转换
Jul 29 PHP
php结合飞信 免费天气预报短信
May 07 PHP
如何使用Strace调试工具
Jun 03 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
CI框架常用函数封装实例
Nov 21 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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显示MySQL数据的三种方法
2008/06/05 PHP
php discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP实现下载功能的代码
2012/09/29 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
PHP的自定义模板引擎
2017/03/24 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
Python中asyncore的用法实例
2014/09/29 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
最新远光软件笔试题面试题内容
2013/11/08 面试题
Python里面search()和match()的区别
2016/09/21 面试题
专科毕业生学习生活的自我评价
2013/10/26 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
七年级作文之环保作文
2019/10/17 职场文书
python中super()函数的理解与基本使用
2021/08/30 Python
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server