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}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
本文由主机测评网发布,不代表主机测评网立场,转载联系作者并注明出处:https://zhuji.jb51.net/dedecms/3159.html