在Dedecms文章页中我们经常会显示相关文章之类的文章列表,就需要使用{dede:likearticle}标签,但是默认的
likearticle是不能显示自定义的附加字段的。解决办法:
修改include/taglib/likearticle.lib.php.
大概在178行
$row[‘templeturl’] = $GLOBALS[‘cfg_templeturl’];
这段代码后面添加以下代码即可实现。
//从$refObj变量中读取附加字段信息,处理附加字段调用的问题。
//2014-02-25修改BY:织梦58(www.dede58.com)
$addfile =
r
e
f
O
b
j
−
>
C
h
a
n
n
e
l
U
n
i
t
−
>
C
h
a
n
n
e
l
I
n
f
o
s
[
"
l
i
s
t
f
i
e
l
d
s
"
]
;
/
/
获
取
文
章
模
型
的
自
定
义
字
段
列
表
i
f
(
refObj->ChannelUnit->ChannelInfos["listfields"]; //获取文章模型的自定义字段列表 if(
refObj−>ChannelUnit−>ChannelInfos["listfields"];//获取文章模型的自定义字段列表if(addfile){
a
d
d
f
i
l
e
s
=
e
x
p
l
o
d
e
(
"
,
"
,
addfiles = explode(",",
addfiles=explode(",",addfile); //拆分成数组
l
e
n
=
c
o
u
n
t
(
len = count(
len=count(addfiles);
for(
j
=
0
;
j=0;
j=0;j<
l
e
n
;
len;
len;j++){ //循环处理每一个数组元素
$fname =
a
d
d
f
i
l
e
s
[
addfiles[
addfiles[j];
//获取每一个元素对应的值,并将元素名作为用于显示的$row数组的ID键,并赋值。
r
o
w
[
′
′
.
row[''.
row[′′.fname.’’] =
r
e
f
O
b
j
−
>
F
i
e
l
d
s
[
′
′
.
refObj->Fields[''.
refObj−>Fields[′′.fname.’’];
}
}