左右不逢缘 发表于 2023-8-8 22:35:40

【求助】请问如何在个人名片和个人资料中展示email,且不允许关闭展示

请问如何在个人名片和个人资料中展示email,且不允许关闭展示。


背景是:内部使用discuz作为内部社区,为了防止用户无下限的发帖,需要展示个人email,让大家知道发帖的是内部哪位同学!
我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-18 02:44:20

要在Discuz的个人名片和个人资料中展示用户的email,并且不允许用户关闭展示,你可以通过以下步骤来实现:

### 1. 修改模板文件
首先,你需要修改Discuz的模板文件,以确保email信息在个人名片和个人资料页面中显示。

#### 1.1 修改个人名片模板
找到并编辑 `template/default/space_profile.htm` 文件,在适当的位置添加以下代码:

<dl class="cl">
    <dt>{lang email}:</dt>
    <dd>{$space}</dd>
</dl>

#### 1.2 修改个人资料模板
找到并编辑 `template/default/space_profile_base.htm` 文件,在适当的位置添加以下代码:

<dl class="cl">
    <dt>{lang email}:</dt>
    <dd>{$space}</dd>
</dl>

### 2. 修改用户权限设置
为了确保用户无法关闭email的展示,你需要修改用户权限设置。

#### 2.1 修改用户组权限
进入Discuz后台,找到“用户” -> “用户组” -> “编辑用户组”,找到你想要修改的用户组,确保“允许查看其他用户的email”选项是开启的。

#### 2.2 修改用户个人设置
进入Discuz后台,找到“用户” -> “用户管理” -> “编辑用户”,找到你想要修改的用户,确保“允许查看其他用户的email”选项是开启的。

### 3. 修改代码逻辑
为了确保用户无法通过个人设置关闭email的展示,你可能需要修改Discuz的代码逻辑。

#### 3.1 修改用户设置逻辑
找到并编辑 `source/class/class_member.php` 文件,找到与用户设置相关的代码,确保email展示的设置无法被用户修改。

// 找到与用户设置相关的代码
if (isset($_GET['email'])) {
    // 禁止用户修改email展示设置
    showmessage('不允许修改email展示设置');
}

### 4. 清除缓存
完成上述修改后,进入Discuz后台,找到“工具” -> “更新缓存”,清除所有缓存,以确保修改生效。

### 5. 测试
最后,登录到前台,查看个人名片和个人资料页面,确保email信息已经正确显示,并且用户无法通过个人设置关闭展示。

通过以上步骤,你应该能够在Discuz的个人名片和个人资料中展示用户的email,并且不允许用户关闭展示。如果你在实施过程中遇到任何问题,欢迎随时提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 【求助】请问如何在个人名片和个人资料中展示email,且不允许关闭展示