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

 更新时间:2016年11月04日 16:40:07   作者:逐风  
这篇文章主要介绍了DEDE实现转跳属性文档在模板上调用出转跳地址,有需要的朋友可以参考一下。

首先在/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目录操作实例代码

    这篇文章主要介绍了php目录操作实例代码,需要的朋友可以参考下
    2014-02-02
  • php+ajax实现异步上传文件或图片功能

    php+ajax实现异步上传文件或图片功能

    这篇文章主要为大家详细介绍了php+ajax实现异步上传文件或图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • PHP中重启php-fpm的几种方法汇总

    PHP中重启php-fpm的几种方法汇总

    这篇文章主要介绍了PHP中重启php-fpm的几种方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • thinkPHP框架实现多表查询的方法

    thinkPHP框架实现多表查询的方法

    这篇文章主要介绍了thinkPHP框架实现多表查询的方法,结合实例形式简单分析了thinkPHP在多表查询情况下where的使用方法与注意事项,需要的朋友可以参考下
    2018-06-06
  • Yii 2.0实现联表查询加搜索分页的方法示例

    Yii 2.0实现联表查询加搜索分页的方法示例

    这篇文章主要给大家介绍了关于利用Yii 2.0实现联表查询加搜索分页的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来跟着小编一起学习学习吧。
    2017-08-08
  • php使用 readfile() 函数设置文件大小大小的方法

    php使用 readfile() 函数设置文件大小大小的方法

    本文通过实例代码给大家讲解了php使用 readfile() 函数设置文件大小大小的方法,需要的的朋友参考下吧
    2017-08-08
  • 彻底搞懂PHP 变量结构体

    彻底搞懂PHP 变量结构体

    这篇文章主要介绍了PHP 变量结构体的相关知识,文中提到了PHP5中的 zval和PHP 7 中的 zval,代码简单易懂,需要的朋友可以参考下
    2017-10-10
  • ThinkPHP实现更新数据实例详解(demo)

    ThinkPHP实现更新数据实例详解(demo)

    本文给大家介绍thinkphp实现更新数据的实例详解以及thinkphp更新数据库的五种方法,本文介绍的非常不错,具有参考借鉴价值,感兴趣的朋友可以参考下
    2016-06-06
  • PHP写的资源下载防盗链类分享

    PHP写的资源下载防盗链类分享

    这篇文章主要介绍了PHP写的资源下载防盗链类分享,需要的朋友可以参考下
    2014-05-05
  • 详解将数据从Laravel传送到vue的四种方式

    详解将数据从Laravel传送到vue的四种方式

    这篇文章主要介绍了详解将数据从Laravel传送到vue的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论