如何在帖子页调用用户组和拓展用户组名称 New
我想在discuz3.5 这个版本的帖子内容页(viewthread),会员个人信息显示区域显示【会员积分】【会员用户组】【会员扩展用户组】这三样,目前添加了$post['extcredits1'] ,能够调用到会员积分, 【会员用户组】和【会员扩展用户组】不知道如何写调用代码,麻烦指教下,谢谢
<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人回答 在Discuz! X3.5的帖子页调用用户组信息,可通过以下方案实现:
1. **模板层直接调用方案**(推荐)
在`viewthread.htm`模板中找到用户信息展示区域(通常在`<div class="authi">`附近),添加以下代码:
<!-- 积分 -->
<span class="xg1">积分:</span><span>$post['extcredits1']</span>
<!-- 主用户组 -->
<span class="xg1">用户组:</span>
<span>{$_G['cache']['usergroup'][$post['groupid']]['grouptitle']}</span>
<!-- 扩展用户组 -->
<!--{if !empty($post['extgroupids'])}-->
<span class="xg1">扩展组:</span>
<!--{eval $extgroups = explode(',', $post['extgroupids'])}-->
<!--{loop $extgroups $gid}-->
<span style="color:{$_G['cache']['usergroup'][$gid]['color']}">
{$_G['cache']['usergroup'][$gid]['grouptitle']}
</span>
<!--{/loop}-->
<!--{/if}-->
2. **数据预处理方案**(字段不存在时)
若发现`$post`数组缺少必要字段,需在`source/module/forum/forum_viewthread.php`中找到:
$postlist = C::t('forum_post')->fetch_all_by_tid(...);
在其后添加字段处理:
foreach($postlist as $k => $post) {
$member = getuserbyuid($post['authorid']);
$postlist[$k]['groupid'] = $member['groupid'];
$postlist[$k]['extgroupids'] = $member['extgroupids'];
}
3. **用户组样式增强**(可选)
在CSS文件中添加样式定义:
.usergroup-tag {
padding: 2px 5px;
border-radius: 3px;
margin-right: 5px;
font-size: 12px;
}
4. **高阶显示方案**(带颜色标识)
<!--{eval $mainGroup = $_G['cache']['usergroup'][$post['groupid']]}-->
<span style="color:{$mainGroup['color']};" class="usergroup-tag">
{$mainGroup['grouptitle']}
</span>
<!--{if $post['extgroupids']}-->
<!--{eval $extGroups = explode(',', $post['extgroupids'])}-->
<!--{loop $extGroups $gid}-->
<!--{eval $extGroup = $_G['cache']['usergroup'][$gid]}-->
<span style="color:{$extGroup['color']};border:1px solid {$extGroup['color']};" class="usergroup-tag">
{$extGroup['grouptitle']}
</span>
<!--{/loop}-->
<!--{/if}-->
**注意事项:**
1. 用户组数据来自`$_G['cache']['usergroup']`全局缓存,修改用户组后需更新缓存
2. `extgroupids`字段存储格式为逗号分隔的字符串,如"11,15,23"
3. 扩展用户组显示顺序与ID排列顺序一致,可通过`asort()`对数组进行排序
4. 游客用户需做判断处理:`<!--{if $post['authorid'] > 0}-->...<!--{/if}-->`
若需要进一步优化显示效果,建议通过CSS定义用户组徽章样式,或参考DZ插件网相关样式方案进行深度定制。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 在Discuz! X3.5中,如果你想在帖子内容页(viewthread)的会员个人信息显示区域显示【会员积分】、【会员用户组】和【会员扩展用户组】,你可以通过修改模板文件和相关的PHP代码来实现。
### 1. 修改模板文件
首先,你需要找到并编辑帖子内容页的模板文件。通常,这个文件位于 `template/default/forum/viewthread.htm` 或你当前使用的模板目录下的 `viewthread.htm` 文件。
在 `viewthread.htm` 文件中,找到会员个人信息显示的区域。通常,这个区域会包含类似以下的代码:
<div class="authi">
<a href="home.php?mod=space&uid=$post" target="_blank">$post</a>
</div>
在这个区域附近,你可以添加以下代码来显示【会员积分】、【会员用户组】和【会员扩展用户组】:
<div class="userinfo">
<p>会员积分: $post</p>
<p>会员用户组: $post</p>
<p>会员扩展用户组: $post</p>
</div>
### 2. 修改PHP代码
接下来,你需要在 `source/module/forum/forum_viewthread.php` 文件中添加代码,以便在模板中能够调用到这些变量。
在 `forum_viewthread.php` 文件中,找到 `$postlist` 的循环部分,通常是在 `foreach($postlist as $k => $post)` 这个循环中。在这个循环中,你可以通过以下代码来获取用户的用户组和扩展用户组信息:
$post['groupname'] = $post['groupname']; // 会员用户组
$post['extgroupnames'] = $post['extgroupnames']; // 会员扩展用户组
确保这些变量在模板中可用。你可以通过 `$post['groupname']` 和 `$post['extgroupnames']` 来调用这些信息。
### 3. 保存并更新缓存
完成上述修改后,保存文件并更新Discuz!的缓存。你可以通过后台的“工具” -> “更新缓存”来更新缓存。
### 4. 测试
最后,打开一个帖子页面,查看会员个人信息显示区域是否正确地显示了【会员积分】、【会员用户组】和【会员扩展用户组】。
### 注意事项
- 在修改模板和PHP文件之前,建议先备份相关文件,以防止出现错误。
- 如果你使用的是自定义模板,确保在正确的模板目录下进行修改。
- 如果你对PHP和Discuz!的模板系统不熟悉,建议在修改前先学习相关知识,或者在有经验的开发者指导下进行。
通过以上步骤,你应该能够在帖子内容页的会员个人信息显示区域成功显示【会员积分】、【会员用户组】和【会员扩展用户组】。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]