欢迎来到元素模板www.ys720.com,本站提供专业的织梦模板网站模板ASPCMS模板网站修改/网站仿站
当前位置:主页 > 程序教程 > DEDECMS教程 >
DEDECMS教程

织梦dedecms在arclist和list标签下调用redirecturl字段

(元素模板) / 2020-10-17 20:48
字段redirecturl使用场景:网站有一专题栏目,绝大专题都是由设计前端单独切图制作完成,属于纯手工制作非页面模板生成,因此只能在调用的时候使用跳转调用。
前端优化考虑:该专题栏目的页面几乎绝大部分都是跳转地址,不利于页面优化,因此需要直接在页面写出专题的真实静态URL。redirecturl保存的就是专题的真实静态URL,因此只要调用出redirecturl即可。
1.如果不是列表栏目页面:  
让arclist标签支持跳转字段redirecturl:
redirecturl是存放在附加表中,和自定义的字段一样,需要使用只需要指定channelid:

{dede:arclist typeid='1’ row=’1’ addfields=’redirecturl’ channelid=’1’ orderby=’pubdate’}

<a href="[field:redirecturl/]" target="_blank">[field:title/]</a>

{/dede:arclist}

2.如果是列表栏目页: 
让list标签支持跳转字段redirecturl:
list不支持像自定义字段那样调用redirecturl,需要修改文件include/arc.listview.class.php

//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)

if(preg_match(’/hot|click|lastpost/’, $orderby))

        {

           $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,

           tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath

           $addField

           FROM `chj_archives` arc

           LEFT JOIN `chj_arctype` tp ON arc.typeid=tp.id

           $addJoin

           WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";

        }在这段代码前面增加:

$addField .= ’,’.$addtable.’.redirecturl’;

然后调用的时候将字段加上:
 

{dede:list row=’1’  addfields=’redirecturl’ orderby=’pubdate’}

<a href="[field:redirecturl/]" target="_blank">[field:title/]</a>

{/dede:list}

需求更深一层,当前专题栏目有些是单独制作的专题,有些是模板生成的,如果全部使用redirecturl必然有些URL是无法输出的。所以需要判断,当redirecturl为空的时候还是默认输出文档URL arcurl:
 
1.非列表页
{dede:arclist typeid=’1’ row=’1’ flag=’j’ addfields=’redirecturl’ channelid=’1’ orderby=’pubdate’}
<a href="[field:array runphp=’yes’] if(@me[’redirecturl’]==’’) @me=@me[’arcurl’];
else @me=@me[’redirecturl’];[/field:array]" target="_blank"> [field:title/]</a>
{/dede:arclist}
 
2.列表页
{dede:list row=’1’ addfields=’redirecturl’ orderby=’pubdate’}
<a href="[field:array runphp=’yes’] if(@me[’redirecturl’]==’’) @me=@me[’arcurl’];
else @me=@me[’redirecturl’];[/field:array]" target="_blank"> [field:title/]</a>
{/dede:list}
Copyright @ 2013-2019 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com