織夢(mèng)文檔,當(dāng)你把某個(gè)文檔的自定義屬性設(shè)置為跳轉(zhuǎn)[j]時(shí),我們希望能直接在頁面中輸入這個(gè)文檔的跳轉(zhuǎn)鏈接作為a標(biāo)簽里的鏈接
第一種方法,需要改動(dòng)一個(gè)程序文件
打開 /include/helpers/channelunit.helper.php 找到,大概在第61行
$articleUrl = GetFileName($aid,$typeid,$timetag,$title,$ismake,$rank,$namerule,$typedir,$money,$filename);
在它的上面加入
global $dsql;
$row = $dsql->GetOne("SELECT c.addtable FROM `dede_archives` AS a LEFT JOIN `dede_channeltype` AS c ON a.channel=c.id where a.id='$aid'");
$addtable = trim($row['addtable']);
$row = $dsql->GetOne("SELECT arc.flag,addf.redirecturl FROM `$addtable` addf LEFT JOIN `dede_archives` arc ON addf.aid=arc.id WHERE addf.aid=$aid");
if(preg_match("#j#", $row['flag']) && $row['redirecturl'])
{
return $row['redirecturl'];
}
調(diào)用標(biāo)簽不變,還是用 [field:arcurl/]
第二種方法,不需要改動(dòng)程序文件
1、dede:arclist標(biāo)簽中調(diào)用方法
{dede:arclist typeid='2' row='10' channelid='1' addfields='redirecturl'}
<a href="[field:redirecturl/]">[field:title/]</a>
{/dede:arclist}
channelid='1' 里面的1是模型id
1
addfields='redirecturl' 里面的 redirecturl 其實(shí)就是跳轉(zhuǎn)地址字段名,因?yàn)檫@個(gè)字段是在附加表
2
2、dede:list標(biāo)簽中調(diào)用方法
1、在內(nèi)容模型-普通文章模型(或者其他模型)-基本設(shè)置-列表附加字段,添加redirecturl進(jìn)去
redirecturl
3
2、在內(nèi)容模型-普通文章模型(或者其他模型)-字段管理-模型字段配置(文本模式),添加
<field:redirecturl itemname="跳轉(zhuǎn)網(wǎng)址" type="text" isnull="true" islist="1" default="" rename="" />
4
添加好這2步以后就可以直接在dede:list標(biāo)簽里直接使用[field:redirecturl/]標(biāo)簽來調(diào)用跳轉(zhuǎn)地址了
{dede:list pagesize='10' titlelen='250'}
<a href="[field:redirecturl/]">[field:title/]</a>
{/dede:list}
不需要寫其他多余的 channelid='1' 和 addfields='redirecturl'
如果有的文檔不是跳轉(zhuǎn)屬性,想要輸出正常的文檔鏈接,那把
href="[field:redirecturl/]"
修改成
href="[field:array runphp=yes]@me = (@me['redirecturl'] == '' ? @me['arcurl'] : @me['redirecturl']);[/field:array]"