帝国CMS灵动标签调用文章时调用文章中的Tags标签

这么长时间以来,一直想着实现一个功能,就是在调用文章信息的同时,能够实现调用文章的Tags标签,不仅仅是列表页,首页也是如此,特别是对于博客类型的文章,调用文章的时候同时调用出文章的Tags标签,对于博客还是非常有帮助的。今天终于实现了在首页中调用文章+Tags的功能。

方法1、调用信息的全部tag

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[e:loop={"select id, title, titleurl, smalltext, newstime, titlepic from [!db.pre!]ecms_news order by id desc limit 30",0,24,0}]
<?php
$tags='';
$fr=$empire->fetch1("select infotags from {$dbtbpre}ecms_news_data_1 where id='$bqr[id]'");
$tag1=''.$fr[infotags].'';
$r_tag=explode(",",$tag1);
{
for($i=0;$i<count($r_tag);$i++)
if($r_tag[$i])
{
$tagslink=$public_r[newsurl]."e/tags/?tagname=".$r_tag[$i];//链接
$tags.="<a href='$tagslink' target='_blank'>".$r_tag[$i]."</a>&nbsp;&nbsp; ";
}
if(empty($fr[infotags]))
{
$tags="无";
}
}
?>
<?=esub($bqr[title],108)?> | <?=$tags?>
<br/><br/>
[/e:loop]

[e:loop={34,10,0,0}]格式,限制数量,把$i<count($r_tag)修改为$i<count($r_tag)&&$i<限制数量

方法2、调用信息的tag时,可控制输出个数

1
2
3
4
5
6
7
8
9
10
[e:loop={"select id, title, titleurl, smalltext, newstime, titlepic from [!db.pre!]ecms_news order by id desc limit 30",0,24,0}]
<?php
$fr=$empire->fetch1("select infotags from {$dbtbpre}ecms_news_data_1 where id='$bqr[id]'");
$tag1=''.$fr[infotags].'';
$r_tag=explode(",",$tag1);
for($p=0;$i<count($r_tag);$i++)
?>
<?=esub($bqr[title],108)?> | <a href="<?=$public_r['newsurl']?>e/tags/?tagname=<?=$r_tag[0]?>" target='_blank'><?=$r_tag[0]?></a> <a href="<?=$public_r['newsurl']?>e/tags/?tagname=<?=$r_tag[1]?>" target='_blank'><?=$r_tag[1]?></a> <a href="<?=$public_r['newsurl']?>e/tags/?tagname=<?=$r_tag[2]?>" target='_blank'><?=$r_tag[2]?></a> <a href="<?=$public_r['newsurl']?>e/tags/?tagname=<?=$r_tag[3]?>" target='_blank'><?=$r_tag[3]?></a>
<br/><br/>
[/e:loop]

[e:loop={34,10,0,0}]格式,限制数量,把$i<count($r_tag)修改为$i<count($r_tag)&&$i<限制数量

方法3、调用信息的tag时,可控制输出个数

1
2
3
4
5
6
7
8
9
10
[e:loop={34,10,0,0}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
<?
$tbname=$class_r[$bqr[classid]][tbname];
$fb=$bqr[stb];
$ftbname=$dbtbpre."ecms_".$tbname."_data_".$fb;
$navinfor['infotags'] = $empire->gettotal("select infotags as total from $ftbname where id='$bqr[id]'"); //结果赋值给$navinfor就是为了使用 showtags标签的selfinfo
?>
Tags:[showtags]'selfinfo',10,0,'',0,'','&nbsp;',0,'','tagname'[/showtags]<br>
[/e:loop]

注释:

1
[showtags]'selfinfo',10,0,'num desc',0,'s,r','&nbsp;',1,'tagname'[/showtags]
1
'selfinfo':当前信息ID
1
10:调用总数量
1
0:每行显示数量
1
num desc:显示排序
1
0:只显示推荐的(0为不显示,1为显示)
1
s,r:推荐TAGS属性(s为加粗,r为加红)
1
'':显示间隔符(一般为空格符:&nbsp;)
1
1:显示信息数量(0为不显示,1为显示)
1
'tagname':链接使用变量(一般为tagname和tagid)

我使用的代码是第三种,按照解释说明来看,应该是能够设置Tags的显示数量,可惜我修改了代码之中的数值,还是没有实现这个数量的控制。