7、列表页调用TAG标签的两种方法 dedecms默认在列表是无法调用tag标签的。做网站吧给大家再提供以下不同版本的tag标签调用方法: (1)、dedecms5.7版本的调用方法 首先,找到include\helpers\archive.helper.php文件(注:有朋友会疑问,主页和频道、列表应该加的是不同的调用,不过本人开始用列表页测试,成功;加入主页后测试也是成功显示的,所以我就没再继续深究下去了,另外,这个文件的内容更改,在后台文件是更改不了的,提示是注入sql,所以要在ftp中找到这个文件进行更改才行0。) 在底部增加: function GetTags_list($aid) { global $dsql; $tags = ''; $query = "SELECT tag FROM `ma_taglist` WHERE aid='$aid' "; $dsql->Execute('tag',$query); while($row = $dsql->GetArray('tag')) { $tags .= ($tags=='' ? "<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>" : ','."<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>"); } return $tags; } 然后,在列表需要调用tag标签的位置添加: [field:id function=GetTags_list(@me)/] 即可完成。
(2)、dedecms5.6版本的调用方法 方法一: 直接在模板需要的位置加入以下代码即可: [field:id runphp=yes] $tsql = new DedeSql(false); $tags = ”; $tsql->SetQuery(“Select i.tag From 58pic_taglist t left join 58pic_tagindex i on i.id=t.tid where t.aid=’@me’”); $tsql->Execute(‘t’); while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){ $tags .= “<a href=’/tag.php?/”.urlencode($row['tag']).”‘>”.$row['tag'].”</a>”; } @me=$tags; [/field:id] 注:这一步dede5.7版本里面实现不了。
方法二: 打开dedecms根目录include/common.func.php,在最底部的“?>”之前加入以下代码: //做网站吧www.doweb8.com:列表页调用tag的方法 function listtag($aid) { $tsql = new DedeSql(false); $tags = ”; $tsql->SetQuery(“Select i.tag From 58pic_taglist t left join 58pic_tagindex i on i.id=t.tid where t.aid=’$aid’”); $tsql->Execute(‘t’); while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){ $tags .= “<a href=’/tags.php?/”.urlencode($row['tag']).”/’>”.$row['tag'].”</a> “; } return $tags; } {dede:field.id runphp=yes} $tsql = new DedeSql(false); $tags = ”; $tsql->SetQuery(“Select i.tag From 58pic_taglist t left join 58pic_tagindex i on i.id=t.tid where t.aid=’@me’”); $tsql->Execute(‘t’); while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){ $tags .= “<a href=’/tag.php?/”.urlencode($row['tag']).”‘>”.$row['tag'].”</a>”; } @me=$tags; {/dede:field.id} 添加代码后,在列表页可以使用: {dede:field.id function=”listtag(@me)”/} 来调用tag标签。
方法三: 在include/inc_functions.php文件里加入: function listtag($aid){ $tsql = new DedeSql(false); $tags = ''; $tsql->SetQuery("Select i.tagname From xkzzz_tag_list t left join xkzzz_tag_index i on i.id=t.tid where t.aid='$aid'"); $tsql->Execute('t'); while($row = $tsql->GetArray('t',MYSQL_ASSOC)){ $tags .= "<a href='/tag.php?/".urlencode($row['tagname'])."'>".$row['tagname']."</a>"; } return $tags; } 然后在列表页相应位置加入: [field:ID function="listtag(@me)"/] 就可以调用出来了,只不过这个方法也需要改动程序文件,看不懂代码的朋友,慎用!