明凯博客

关注网站技术,一个特立独行的程序员

如何在织梦的arclist和list标签中调用跳转网址

我们在使用织梦dedecms制作网站的时候,有时会遇到利用arclist和list标签调用redirecturl属性。

但是,dedecms的arclist和list标签不支持redirecturl。

很多网站采用的是直接跳转的地址虽然也可以使用[field:arcurl/] 但是那样会产生一个中转的跳转过程,几天前明凯做网站就跟大家分享一下如何在织梦的arclist和list标签中调用跳转网址。

第一:如何让织梦的arclist标签支持redirecturl属性,实现文章直接调用跳转网址

思路是:由于跳转网址的字段redirecturl是存放在附加表dede_addonarticle中的,所以只需要调用附加表中的该字段即可。

但根据织梦官方的说法,在模板中用arclist调用附加表字段只需指定channelid属性和要获得的字段即可。

示例代码如下:

1
2
3
4
5
{dede:arclist typeid=1’ row=1’ flag=’j’ addfields=’redirecturl’ channelid=1’ orderby=’pubdate’}
 
<a href="[field:redirecturl/]" target="_blank">[field:title/]</a>
 
{/dede:arclist}

也可以根据redirecturl是否为空,实现直接跳转还是跳转到站内, 示例代码如下:

1
2
3
4
5
6
7
{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}

addfields这个属性是什么?有哪些值,起什么作用呢?

答:添加附加字段查询。

具体使用方法:

自定义字段也就是添加了一个附加的表,要获取附加表的内容,必须符合两个条件:

1、指定channelid属性;

2、指定要获得的字段addfields=’字段1,字段2’

第二:如何让织梦的list标签支持redirecturl属性,实现文章直接调用跳转网址

现在dedecms的LIST标签不支持redirecturl 网站很多采用的是直接跳转的地址,那么如何如何让织梦的list标签支持redirecturl属性,实现文章直接调用跳转网址呢?

修改方法

很简单只要在 $addField后加上我们要查询的附加表字段的名称就好

打开 include/arc.listview.class.php 找到

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        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 `#@__archives` arc
 
           LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id
 
           $addJoin
 
           WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";
 
        }

在这个的上面添加一行

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

示例代码如下:

1
2
3
4
5
{dede:list row=1’  addfields=’redirecturl’ orderby=’pubdate’}
 
<a href="[field:redirecturl/]" target="_blank">[field:title/]</a>
 
{/dede:list}

也可以根据redirecturl是否为空,实现直接跳转还是跳转到站内, 示例代码如下:

1
2
3
4
5
6
7
{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}

, ,

相关文章

1 条评论 “如何在织梦的arclist和list标签中调用跳转网址

发表评论

电子邮件地址不会被公开。 必填项已用*标注