• 河南网站建设-郑州网站设计-郑州网站建设-手机建站-郑州建站-上海建站

  • 专注网站建设 服务热线: 13061801310

当前位置:东东网 > 近期动态 > 建站常见问题 > 正文

织梦文档自定义属性j调用输出文章跳转网址的方法

发布时间:2021-04-30 | 发布者: 东东工作室 | 浏览次数:

织梦文档,当你把某个文档的自定义属性设置为跳转[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]"

最终效果

转载请标注:东东工作室——织梦文档自定义属性j调用输出文章跳转网址的方法