灵动标签e:loop里面如何循环输出TAGS(infotags)或者关键字(keyboard)

内容纲要

灵动标签e:loop循环输出TAGS名称和地址的效果

使用灵动标签制作栏目列表,在调用的文章同时展示其TAGS及其链接,见下图:

灵动标签中循环调用TAGS标题和地址

 

TAGS和关键字存放位置

TAGS,也就是infotags字段,存在于信息副中;

关键字,也就是keyboard字段,存在主表中。

 

TAGS和关键字在灵动标签中循环输出的实现代码

1、关键字keyboard因为字段在主表中,因此实现代码如下:

<?php
$keyr=explode(',',$bqr[keyboard]);
for($i=0;$i<count($keyr);$i++)
{
echo'<a href="/e/search/?searchget=1&keyboard='.$keyr[$i].'&show=title" target=_blank>'.$keyr[$i].'</a>';
}
?>

2、TAGS即infotags,因为字段在副表中,因此实现代码如下:

<?php
$fr=$empire->fetch1("select infotags from {$dbtbpre}ecms_news_data_{$bqr[stb]} where id='$bqr[id]'");
$keyr=explode(',',$fr[infotags]);
for($i=0;$i<count($keyr);$i++)
{
echo'<a href="/e/tags/?tagname='.$keyr[$i].'" target=_blank>'.$keyr[$i].'</a>&nbsp;&nbsp;';
}
?>

另外网上找了另外一段PHP代码,这两段代码devin都没测试过,但看了看,应该可以实现

<?
$a="$bqr[infotags]";
$str=str_replace(',', ',', $a);
$tag='';
$t= explode(",", $str);
            
   for($i=0;$i<count($t);$i++)
   {
       if($t[$i])
       {
          $tagslink="[!--news.url--]e/tags/?tagname=".urlencode($t[$i])."";
          $tag.="<a href='$tagslink' target='_blank'>".$t[$i]."</a> ";
       }
   }
echo $tag;
?>

3、推荐e:loop中TAGS调用的另外一个方法,这种方法应该更好一些(亲测)

<?php         
$tbname="这里修改为你的数据表名,新闻表是news"; 
$ftbname=$dbtbpre."ecms_".$tbname."_data_".$bqr['stb'];
$hlt = $empire->fetch1("select infotags from {$ftbname} where id='$bqr[id]'");   
$keyr=explode(',',$hlt[infotags]);
for($i=0;$i<count($keyr);$i++)
{
echo '<a href="/e/tags/?tagname='.$keyr[$i].'" target=_blank>'.$keyr[$i].'</a>&nbsp;&nbsp;';
}
?>

测试时候发现,若没有标签,以上代码还是会输出以下点内容

<a href="/e/tags/?tagname='.$keyr[$i].'" target=_blank></a>

所以devin最以上点优化了下,加了个非空判断,如下

<?php         
$tbname="这里修改为你的数据表名,新闻表是news"; 
$ftbname=$dbtbpre."ecms_".$tbname."_data_".$bqr['stb'];
$hlt = $empire->fetch1("select infotags from {$ftbname} where id='$bqr[id]'");   
$keyr=explode(',',$hlt[infotags]);
for($i=0;$i<count($keyr);$i++)
{
if($keyr[$i]!=null) {
echo '<a href="/e/tags/?tagname='.$keyr[$i].'" target=_blank>'.$keyr[$i].'</a>&nbsp;&nbsp;';
}
}
?>

 

题外话:

1、showtags内置标签应该循环输出tags实现相同功能,但是作为帝国新手的我,不喜欢!!哈哈哈!

[showtags]分类ID,显示数量,每行显示数量,显示排序,只显示推荐,推荐TAGS属性,显示间隔符,是否显示信息数,链接附加参数,链接变量名[/showtags]

2、tagsinfo应该能实现类似按照tags的相关文章列表,当然我也不喜欢

[tagsinfo]TAGS的ID,显示条数,标题截取数,标签模板ID,栏目ID,系统模型ID[/tagsinfo]