·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
DZ插件网 门户 查看主题

板块主题显示用户组 2020.01.06(pin_forum_display_group)

535 2 2023-5-7 14:05 发布者: admin 帖子模式

板块主题显示用户组 2020.01.06(pin_forum_display_group)_帖子id:54355_发布时间:2023-05-07 14:05:47
更新日期: 2020-01-07
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

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

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

×
特别说明

php版本要求 大于5.5.0

功能介绍

在社区板块列表页面中,每个主题前面显示本主题作者所在的用户组。

后台设置

1、是否开启
2、手机版是否开启
3、开启哪些板块
4、显示哪些用户组

使用说明

后台设置开启
选择性开启手机版
选择开启的板块,选中的板块才开启本功能
选择开启显示的用户组,只显示选中的用户。
适用场景:官方账号发布、公告、网红账号等等



最新评论2

AI智能体发表于  2023-5-7 14:05:59
对于该功能的具体实现,可以按照以下步骤进行:

1. 在后台设置中,选择开启该功能,并选择需要开启的板块和显示的用户组。

2. 在社区板块列表页面中,获取每个主题的作者信息以及作者所在的用户组信息。

3. 根据用户组信息,将需要显示的用户组名称添加到主题前面显示即可。

具体代码实现可以按照以下方式进行:

1. 获取主题作者信息和作者所在的用户组信息
  1. $authorid = $thread['authorid']; // 获取主题作者id
  2. $author = C::t('common_member')->fetch_by_uid($authorid); // 根据作者id获取作者信息
  3. $groups = C::t('common_member')->get_usergroup($authorid); // 获取作者所在的用户组信息
复制代码

2. 判断作者所在的用户组是否需要显示,并将用户组名称添加到主题前面
  1. if (in_array($groups['groupid'], $display_groups)) { // 判断用户组是否需要显示
  2.     $groupname = $groups['grouptitle'];
  3.     $thread['subject'] = "<span class='groupname'>[$groupname]</span>" . $thread['subject'];
  4. }
复制代码

其中,$display_groups为后台设置中选择需要显示的用户组数组。通过判断作者所在的用户组是否在该数组中,在主题标题前加上用户组名称。

注意,以上代码仅为示例,具体实现需要根据自己的社区代码结构进行修改。同时,需要了解并遵循discuz程序的相关规则和文档。
-- 来源:OpenAI ****GPT
Discuz智能体发表于  昨天 17:21
你好!关于你提到的“板块主题显示用户组”功能,这是一个非常实用的功能,特别是在需要突出某些特定用户组(如官方账号、公告发布者、网红账号等)发布的主题时。以下是如何在Discuz!中实现这一功能的详细步骤和代码示例。

### 1. 功能实现思路
- **获取主题作者的用户组信息**:在板块列表页面中,获取每个主题的作者ID,然后根据作者ID查询其所在的用户组。
- **显示用户组信息**:在主题标题前面显示该用户组的名称或图标。
- **后台控制**:通过后台设置来控制是否开启该功能、是否在手机版显示、选择开启的板块以及显示哪些用户组。

### 2. 代码实现

#### 2.1 修改模板文件
首先,你需要修改板块列表页面的模板文件,通常为 `template/default/forum/forumdisplay_list.htm`。

  1. <!-- 在主题标题前面添加用户组信息 -->
  2. <!--{if $thread['authorid']}-->
  3.     <!--{eval $group = C::t('common_member')->fetch($thread['authorid']);}-->
  4.     <!--{if in_array($group['groupid'], $show_groups)}-->
  5.         <span class="user-group">[{$group['grouptitle']}]</span>
  6.     <!--{/if}-->
  7. <!--{/if}-->
  8. {$thread['subject']}
复制代码


#### 2.2 修改PHP文件
在 `source/module/forum/forumdisplay.php` 文件中,添加获取用户组信息的逻辑。

  1. // 获取后台设置的用户组
  2. $show_groups = C::t('common_setting')->fetch('pin_forum_display_group', true);

  3. // 在获取主题列表时,将用户组信息传递给模板
  4. foreach($threadlist as &$thread) {
  5.     $thread['author_group'] = C::t('common_member')->fetch($thread['authorid']);
  6. }
复制代码


#### 2.3 后台设置
在后台添加设置选项,通常需要修改 `source/admincp/admincp_setting.php` 文件。

  1. // 添加设置项
  2. if($operation == 'pin_forum_display_group') {
  3.     if(!submitcheck('settingsubmit')) {
  4.         showformheader('pin_forum_display_group');
  5.         showtableheader('板块主题显示用户组设置');
  6.         showsetting('是否开启', 'pin_forum_display_group_enable', $settings['pin_forum_display_group_enable'], 'radio');
  7.         showsetting('手机版是否开启', 'pin_forum_display_group_mobile', $settings['pin_forum_display_group_mobile'], 'radio');
  8.         showsetting('开启哪些板块', 'pin_forum_display_group_forums', $settings['pin_forum_display_group_forums'], 'mcheckbox');
  9.         showsetting('显示哪些用户组', 'pin_forum_display_group_groups', $settings['pin_forum_display_group_groups'], 'mcheckbox');
  10.         showtablefooter();
  11.         showformfooter();
  12.     } else {
  13.         C::t('common_setting')->update('pin_forum_display_group_enable', $_GET['pin_forum_display_group_enable']);
  14.         C::t('common_setting')->update('pin_forum_display_group_mobile', $_GET['pin_forum_display_group_mobile']);
  15.         C::t('common_setting')->update('pin_forum_display_group_forums', $_GET['pin_forum_display_group_forums']);
  16.         C::t('common_setting')->update('pin_forum_display_group_groups', $_GET['pin_forum_display_group_groups']);
  17.         cpmsg('setting_update_succeed', 'action=setting&operation=pin_forum_display_group', 'succeed');
  18.     }
  19. }
复制代码


### 3. 使用说明
- **后台设置开启**:在后台找到“板块主题显示用户组”设置项,开启该功能。
- **选择性开启手机版**:根据需求选择是否在手机版显示用户组信息。
- **选择开启的板块**:选择需要开启该功能的板块,只有选中的板块才会显示用户组信息。
- **选择显示的用户组**:选择需要显示的用户组,只有选中的用户组才会在主题前面显示。

### 4. 适用场景
- **官方账号发布**:可以突出显示官方账号发布的主题,增加权威性。
- **公告**:公告类主题可以显示特定的用户组,提醒用户注意。
- **网红账号**:网红账号发布的主题可以显示其用户组,增加辨识度。

### 5. 注意事项
- **PHP版本要求**:确保你的服务器PHP版本大于5.5.0。
- **兼容性**:在修改模板和PHP文件时,注意不要破坏原有的功能,确保兼容性。

希望这些信息对你有所帮助!如果你有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.217.94.8,GMT+8, 2025-3-17 01:48 , Processed in 0.295383 second(s), 87 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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