·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

如何在帖子页调用用户组和拓展用户组名称 New

252 2
发表于 2024-3-14 19:24:32 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我想在discuz3.5 这个版本的帖子内容页(viewthread),会员个人信息显示区域显示【会员积分】【会员用户组】【会员扩展用户组】这三样,
目前添加了$post['extcredits1'] ,能够调用到会员积分, 【会员用户组】和【会员扩展用户组】不知道如何写调用代码,麻烦指教下,谢谢


  1. <div class="display pi<!--{if $post['first']}--> pione<!--{/if}-->" href="#replybtn_$post['pid']">                         <ul class="authi">               <div class="avatar"><img src="<!--{if !$post['authorid'] || $post['anonymous']}--><!--{avatar(0, 'small', true)}--><!--{else}--><!--{avatar($post['authorid'], 'small', true)}--><!--{/if}-->" /></div>                                 <li class="mtit">                                         <span class="y">                                                 总收入:<h>$post['extcredits1']</h><i>|</i>等级:<t>{$_G['group']['grouptitle']} / {$_G['group']['extgroupids']}</t>                                         </span>                                         <span class="z">                                         <!--{if $post['authorid'] && $post['username'] && !$post['anonymous']}-->                                                 <a href="home.php?mod=space&uid=$post['authorid']">$post['author']</a>                                         <!--{else}-->                                                 <!--{if !$post['authorid']}-->                                                 <a href="javascript:;">{lang guest} <em>$post['useip']{if $post['port']}:$post['port']{/if}</em></a>                                                 <!--{elseif $post['authorid'] && $post['username'] && $post['anonymous']}-->                                                 <!--{if $_G['forum']['ismoderator']}--><a href="home.php?mod=space&uid=$post['authorid']">{$_G['setting']['anonymoustext']}</a><!--{else}-->{$_G['setting']['anonymoustext']}<!--{/if}-->                                                 <!--{else}-->                                                 $post['author'] <em>{lang member_deleted}</em>                                                 <!--{/if}-->                                         <!--{/if}-->                                         </span>                                 </li>
复制代码

我知道答案 回答被采纳将会获得1 贡献 已有0人回答
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-14 07:01:29 | 查看全部
在Discuz! X3.5的帖子页调用用户组信息,可通过以下方案实现:

1. **模板层直接调用方案**(推荐)
在`viewthread.htm`模板中找到用户信息展示区域(通常在`<div class="authi">`附近),添加以下代码:

  1. <!-- 积分 -->
  2. <span class="xg1">积分:</span><span>$post['extcredits1']</span>

  3. <!-- 主用户组 -->
  4. <span class="xg1">用户组:</span>
  5. <span>{$_G['cache']['usergroup'][$post['groupid']]['grouptitle']}</span>

  6. <!-- 扩展用户组 -->
  7. <!--{if !empty($post['extgroupids'])}-->
  8. <span class="xg1">扩展组:</span>
  9. <!--{eval $extgroups = explode(',', $post['extgroupids'])}-->
  10. <!--{loop $extgroups $gid}-->
  11. <span style="color:{$_G['cache']['usergroup'][$gid]['color']}">
  12.     {$_G['cache']['usergroup'][$gid]['grouptitle']}
  13. </span>
  14. <!--{/loop}-->
  15. <!--{/if}-->
复制代码


2. **数据预处理方案**(字段不存在时)
若发现`$post`数组缺少必要字段,需在`source/module/forum/forum_viewthread.php`中找到:
  1. $postlist = C::t('forum_post')->fetch_all_by_tid(...);
复制代码

在其后添加字段处理:
  1. foreach($postlist as $k => $post) {
  2.     $member = getuserbyuid($post['authorid']);
  3.     $postlist[$k]['groupid'] = $member['groupid'];
  4.     $postlist[$k]['extgroupids'] = $member['extgroupids'];
  5. }
复制代码


3. **用户组样式增强**(可选)
在CSS文件中添加样式定义:
  1. .usergroup-tag {
  2.     padding: 2px 5px;
  3.     border-radius: 3px;
  4.     margin-right: 5px;
  5.     font-size: 12px;
  6. }
复制代码


4. **高阶显示方案**(带颜色标识)
  1. <!--{eval $mainGroup = $_G['cache']['usergroup'][$post['groupid']]}-->
  2. <span style="color:{$mainGroup['color']};" class="usergroup-tag">
  3.     {$mainGroup['grouptitle']}
  4. </span>

  5. <!--{if $post['extgroupids']}-->
  6. <!--{eval $extGroups = explode(',', $post['extgroupids'])}-->
  7. <!--{loop $extGroups $gid}-->
  8. <!--{eval $extGroup = $_G['cache']['usergroup'][$gid]}-->
  9. <span style="color:{$extGroup['color']};border:1px solid {$extGroup['color']};" class="usergroup-tag">
  10.     {$extGroup['grouptitle']}
  11. </span>
  12. <!--{/loop}-->
  13. <!--{/if}-->
复制代码


**注意事项:**
1. 用户组数据来自`$_G['cache']['usergroup']`全局缓存,修改用户组后需更新缓存
2. `extgroupids`字段存储格式为逗号分隔的字符串,如"11,15,23"
3. 扩展用户组显示顺序与ID排列顺序一致,可通过`asort()`对数组进行排序
4. 游客用户需做判断处理:`<!--{if $post['authorid'] > 0}-->...<!--{/if}-->`

若需要进一步优化显示效果,建议通过CSS定义用户组徽章样式,或参考DZ插件网相关样式方案进行深度定制。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-20 05:34:52 | 查看全部
在Discuz! X3.5中,如果你想在帖子内容页(viewthread)的会员个人信息显示区域显示【会员积分】、【会员用户组】和【会员扩展用户组】,你可以通过修改模板文件和相关的PHP代码来实现。

### 1. 修改模板文件
首先,你需要找到并编辑帖子内容页的模板文件。通常,这个文件位于 `template/default/forum/viewthread.htm` 或你当前使用的模板目录下的 `viewthread.htm` 文件。

在 `viewthread.htm` 文件中,找到会员个人信息显示的区域。通常,这个区域会包含类似以下的代码:

  1. <div class="authi">
  2.     <a href="home.php?mod=space&uid=$post[authorid]" target="_blank">$post[author]</a>
  3. </div>
复制代码


在这个区域附近,你可以添加以下代码来显示【会员积分】、【会员用户组】和【会员扩展用户组】:

  1. <div class="userinfo">
  2.     <p>会员积分: $post[credits]</p>
  3.     <p>会员用户组: $post[groupname]</p>
  4.     <p>会员扩展用户组: $post[extgroupnames]</p>
  5. </div>
复制代码


### 2. 修改PHP代码
接下来,你需要在 `source/module/forum/forum_viewthread.php` 文件中添加代码,以便在模板中能够调用到这些变量。

在 `forum_viewthread.php` 文件中,找到 `$postlist` 的循环部分,通常是在 `foreach($postlist as $k => $post)` 这个循环中。在这个循环中,你可以通过以下代码来获取用户的用户组和扩展用户组信息:

  1. $post['groupname'] = $post['groupname']; // 会员用户组
  2. $post['extgroupnames'] = $post['extgroupnames']; // 会员扩展用户组
复制代码


确保这些变量在模板中可用。你可以通过 `$post['groupname']` 和 `$post['extgroupnames']` 来调用这些信息。

### 3. 保存并更新缓存
完成上述修改后,保存文件并更新Discuz!的缓存。你可以通过后台的“工具” -> “更新缓存”来更新缓存。

### 4. 测试
最后,打开一个帖子页面,查看会员个人信息显示区域是否正确地显示了【会员积分】、【会员用户组】和【会员扩展用户组】。

### 注意事项
- 在修改模板和PHP文件之前,建议先备份相关文件,以防止出现错误。
- 如果你使用的是自定义模板,确保在正确的模板目录下进行修改。
- 如果你对PHP和Discuz!的模板系统不熟悉,建议在修改前先学习相关知识,或者在有经验的开发者指导下进行。

通过以上步骤,你应该能够在帖子内容页的会员个人信息显示区域成功显示【会员积分】、【会员用户组】和【会员扩展用户组】。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.178,GMT+8, 2025-6-1 12:53 , Processed in 0.599305 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表