雨哲插件

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
雨哲插件 资料库 超强嵌入点扩展组件 列表页(版块页)获取帖子标签(tag)的方法
  • 全部资料
  • 查看资料

列表页(版块页)获取帖子标签(tag)的方法

2018-4-23 17:43|分类: 超强嵌入点扩展组件 |发布用户: 雨哲

帖子列表页面中获取帖子对应的标签(tags)的方法。

思路分析:

一般情况直接循环帖子数组即可根据posttableid直接从forum_post中查询tags字段的值即可,不过这样是在循环中进行查询,也就是说列表中有多少帖子就要进行多少次查询。

另外,tag数据存储在common_tag和common_tagitem两个表中,可以可根据帖子id直接查询,这样我们先得到当前列表中所有的帖子id数组,再一次查询即可。

后来才想明白,其实获取到帖子ID数组后,就可以直接从forum_post表中直接查询tags字段的内容即可,因为该字段内容已经存储了tagid和tagname的值,只需要再稍作处理即可。

组件名称:版块 帖子标签(tags)

组件变量:forumdisplay_code_all_output@yz_tags

手机嵌入:否

组件类型:代码(code)

模板内容:

// 首先提取当前列表中所有的帖子id(tid)到数组$arrtids
foreach($_G['forum_threadlist'] as $tnum => $thread) {
    $arrtids[] = $thread['tid'];
    $arrtnum[$thread['tid']] = $tnum; //获取帖子在$_G['forum_threadlist']中所对应的键名,用于后面赋值
}
// 根据$arrtids查询所需tag信息 以下方法是从tagitem和tag表联合查询的方法,下面还有更简洁的,所以这里暂留作为记录
//$arrtags = DB::fetch_all("SELECT t.tagname,i.* FROM %t i INNER JOIN %t t ON t.tagid=i.tagid WHERE i.idtype=%s and i.itemid IN (%n)", array('common_tagitem', 'common_tag', 'tid', $arrtids));
//foreach($arrtags as $tag) {
//    if ($tag['itemid'] && $tag['tagname']){
//        // 赋值给对应的帖子数据
//        $_G['forum_threadlist'][$arrtnum[$tag['itemid']]]['tags'][] = $tag;
//    }
//}
// 直接从forum_post表中获取tags并进行处理后赋值到帖子列表数组
$arrtags = DB::fetch_all("SELECT tid,tags FROM %t WHERE tid IN (%n) and tags != ''", array('forum_post', $arrtids));
foreach($arrtags as $tag) {
    $tagarray_all = explode("\t", $tag['tags']);
    foreach($tagarray_all as $var) {
        $tag = explode(',', $var);
        $posttag_array[] = $tag;
        $_G['forum_threadlist'][$arrtnum[$tag['tid']]]['tags'][$tag[0]] = $tag[1];
    }
}
// print_r($_G['forum_threadlist']);  这里的值将是已赋予了tags信息的新数组,至于如何调用,就看你的了。

插件介绍:雨哲超强嵌入点 插件是一款平台插件,通过后台添加在前台显示(基于模板的hook位置)指定内容的功能。

下载地址:http://addon.discuz.com/?@yuzhe_hook.plugin

分享到: 手机访问 分享给QQ好友 分享到QQ 分享到QQ空间 QQ空间 分享到新浪微博 新浪微博 分享到人人 人人网
企业微信 : 雨哲手机扫描添加到联系人手机扫描直接访问

QQ|关于我们|Archiver|手机版|小黑屋|雨哲插件

GMT+8, 2024-5-20 18:52 , Processed in 0.095132 second(s), 10 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部