飞流管家 发表于 2025-9-7 00:31:03

discuz获取用户已加入圈子和群主信息

discuz的群组功能是一个强大的扩展功能,用户可以创建自己的圈子,建立兴趣小组,扩展人脉的同时聚合人气,开展自己的业务。
为此我在个人空间页加入了圈子信息的相关功能。
一是获取已加入的圈子数据
<!--{if $groupcount}-->
<div class="box box10 f_c" >
    <img src="$_G['style']['tpldir']/pic/maimai/q12.png" class="list" alt="">
    <div>
    <span class="kmall" >
                <!--{if $usergrouplist}-->
    <!--{loop $usergrouplist $key $value}-->
      <a href="forum.php?mod=group&fid={$value['fid']}" target="_blank">{$value['name']}</a>&nbsp;
    <!--{/loop}-->
<!--{else}-->
    <span>暂未加入圈子</span>
<!--{/if}-->
               
                </span>

      <p><a href="group.php?hot=yes">热门圈子</a></p>
    </div>
    <img src="$_G['style']['tpldir']/pic/maimai/q3.png" class="right" alt="">
</div>
<!--{/if}-->
以上代码为模板自带的函数变量调用,这个很简单。
第二查询判断当前受访空间的用户是否为某个圈子的群主
<!--{if $groupcount}-->
    <!--{eval $owner_icon_displayed = false;}--><!-- 初始化标志变量 -->
   
    <!--{loop $usergrouplist $key $value}-->
      
      
      <!-- 判断是否为群主/管理员 -->
      {eval
            // 查询forum_forumfield表,检查founderuid是否等于当前用户UID
            $is_owner = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_forumfield')." WHERE fid='$value' AND founderuid='$space'");
            
            // 查询forum_moderator表,检查用户是否为管理员
            $is_moderator = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_moderator')." WHERE fid='$value' AND uid='$space'");
      }
      
      <!--{if ($is_owner || $is_moderator) && !$owner_icon_displayed}-->
            <!--{eval $owner_icon_displayed = true;}--><!-- 设置标志变量,防止重复显示 -->
          <img src="https://www.fllt.cn/maimai/img/qq/qunz.png" style="height: 12px; vertical-align:middle;" alt="管理员" title="我是管理员" />
       <!--{/if}-->
    <!--{/loop}-->
<!--{/if}-->
通过历遍数据表查询该用户是否存在标定为群主的字段,如果有则返回圈主标识图片。

凯旋呐 发表于 2025-9-7 07:32:10

我今天会很忙,忙着夸夸你!
页: [1]
查看完整版本: discuz获取用户已加入圈子和群主信息