好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

/**

  * 动态地址转静态输出 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 aspkus_channeltype AS channel LEFT JOIN aspkus_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 ;

   }

}

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

?

1

2

3

4

#第一种:

[field:arcurl function = 'arcurlHtml(@me)' /]

#第二种:

[field:id runphp= 'yes' ] $id =@me;@me= '' ; $url =GetOneArchive( $id );@me= $url [ 'arcurl' ];@me=arcurlHtml(@me);[/field:id]

完整 调用 :

?

1

2

3

4

5

6

7

8

#第一种

{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}

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

查看更多关于DEDE实现转跳属性文档在模板上调用出转跳地址的详细内容...

  阅读:23次