DEDE实现转跳属性文档在模板上调用出转跳地址
首先在/include/extend.func.php增加以下方法:
/** *动态地址转静态输出byWindchaserQQ:939238564 *$arcurl动态网址 *@returnString */ functionarcurlHtml($arcurl){ preg_match('/view.php\?aid=(\d+)/',$arcurl,$arcid); if(!empty($arcid)&&is_array($arcid)){//匹配是否存在动态地址 global$dsql; $addtable=$dsql->GetOne("SELECTchannel.addtableFROM#@__channeltypeASchannelLEFTJOIN#@__archivesASarcONarc.channel=channel.id WHEREarc.id='{$arcid[1]}'");//获取模型类型表名 $redirecturl=$dsql->GetOne("SELECTredirecturlFROM{$addtable['addtable']}WHEREaid='{$arcid[1]}'");//动态获取表名,并查询redirecturl字段数据 if(!empty($redirecturl['redirecturl'])){ return$redirecturl['redirecturl'];//返回redirecturl字段数据 }else{ return$arcurl; } }else{//非动态地址直接返回原地址 return$arcurl; } }
在模板上的使用方式有两种形式:
#第一种: [field:arcurlfunction='arcurlHtml(@me)'/] #第二种: [field:idrunphp='yes']$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];@me=arcurlHtml(@me);[/field:id]
完整调用:
#第一种 {dede:arclisttitlelen='45'channelid='-1'limit='0,4'type='commend.'flag='c'} <liclass="RTLi"><ahref="[field:arcurlfunction='arcurlHtml(@me)'/]"title="[field:title/]"target="_blank"><imgwidth="236"height="136"src="[field:picname/]"/></a></li> {/dede:arclist} #第二种 {dede:sqlsql="SELECT*FROMxzzj_channeltypealeftjoinxzzj_archivesbona.id=b.channelwherea.id=-1ORDERBYb.pubdateDESCLIMIT0,2"} <ahref="[field:idrunphp='yes']$id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];@me=arcurlHtml(@me);[/field:id]"class="s_contentRTPIA"target="_blank"title="[field:title/]"><imgsrc="[field:litpic/]"alt="[field:title/]"width="218"height="124"class="mb5"/><spanclass="s_contentRTPIASpan">[field:title/]</span></a> {/dede:sql}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。