织梦文档,当你把某个文档的自定义属性设置为跳转[j]时,我们希望能直接在页面中输入这个文档的跳转链接作为a标签里的链接
第一种方法,需要改动一个程序文件
打开 /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'];}
调用标签不变,还是用 [field:arcurl/]
第二种方法,不需要改动程序文件
1、dede:arclist标签中调用方法
{dede:arclist typeid='2' row='10' channelid='1' addfields='redirecturl'}<a href="[field:redirecturl/]">[field:title/]</a>{/dede:arclist}
channelid='1' 里面的1是模型id
addfields='redirecturl' 里面的 redirecturl 其实就是跳转地址字段名,因为这个字段是在附加表
2、dede:list标签中调用方法
1、在内容模型-普通文章模型(或者其他模型)-基本设置-列表附加字段,添加redirecturl进去
redirecturl
2、在内容模型-普通文章模型(或者其他模型)-字段管理-模型字段配置(文本模式),添加
<field:redirecturl itemname="跳转网址" type="text" isnull="true" islist="1" default="" rename="" />
添加好这2步以后就可以直接在dede:list标签里直接使用[field:redirecturl/]标签来调用跳转地址了
{dede:list pagesize='10' titlelen='250'}<a href="[field:redirecturl/]">[field:title/]</a>{/dede:list}
不需要写其他多余的 channelid='1' 和 addfields='redirecturl'
如果有的文档不是跳转属性,想要输出正常的文档链接,那把
href="[field:redirecturl/]"
修改成
href="[field:array runphp=yes]@me = (@me['redirecturl'] == '' ? @me['arcurl'] : @me['redirecturl']);[/field:array]"