首先在/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} |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。