求大神帮忙写个判断
在弄一个勋章展示,目前的问题是把楼主与回帖人的勋章全部一起调用出来了,所以需要做个判断,只调用楼主的勋章。我知道答案 回答被采纳将会获得5 金币 已有0人回答 要实现只调用楼主勋章的功能,你可以通过判断当前用户的身份来实现。具体来说,你可以通过判断当前用户是否是楼主(即发帖人)来决定是否显示勋章。假设你正在使用Discuz的插件开发,以下是一个简单的代码示例,展示如何判断当前用户是否是楼主,并只显示楼主的勋章:
// 假设你已经获取到了当前帖子的信息 $thread 和当前用户的信息 $user
global $_G;
// 获取当前帖子的楼主UID
$author_uid = $thread['authorid'];
// 获取当前用户的UID
$current_uid = $_G['uid'];
// 判断当前用户是否是楼主
if ($current_uid == $author_uid) {
// 调用楼主的勋章
$medals = C::t('common_member_medal')->fetch_all_by_uid($author_uid);
// 输出勋章
foreach ($medals as $medal) {
echo '<img src="' . $medal['image'] . '" alt="' . $medal['name'] . '" />';
}
}
### 代码解释:
1. **获取楼主UID**:通过 `$thread['authorid']` 获取当前帖子的楼主UID。
2. **获取当前用户UID**:通过 `$_G['uid']` 获取当前登录用户的UID。
3. **判断是否是楼主**:通过比较当前用户的UID和楼主的UID,判断当前用户是否是楼主。
4. **调用勋章**:如果当前用户是楼主,则调用楼主的勋章并显示。
### 注意事项:
- 你需要确保 `$thread` 和 `$_G` 变量已经正确获取到当前帖子和用户的信息。
- 如果你在模板中使用这个逻辑,可能需要将部分逻辑放在PHP文件中,然后在模板中调用。
### 进一步优化:
如果你希望在模板中直接实现这个逻辑,可以在模板中使用类似以下的代码:
<!--{if $post['authorid'] == $_G['uid']}-->
<!--{loop $post['medals'] $medal}-->
<img src="{$medal['image']}" alt="{$medal['name']}" />
<!--{/loop}-->
<!--{/if}-->
这个模板代码的逻辑与上面的PHP代码类似,只是直接在模板中进行了判断和输出。
希望这个解决方案对你有帮助!如果你有更多问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]