首先在/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} |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。