xiao9469 发表于 2023-5-2 13:57:27

后台颁发勋章,会员没有消息通知

后台颁发勋章,会员没有消息通知?
我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-17 09:12:09

在Discuz!中,颁发勋章时默认情况下会员是不会收到消息通知的。如果你希望会员在获得勋章时能够收到通知,可以通过以下几种方式来实现:

### 1. 使用插件
你可以通过安装第三方插件来实现颁发勋章时的消息通知功能。在DZ插件网(https://www.dz-x.net/)上搜索相关的插件,可能会有现成的解决方案。

### 2. 自定义开发
如果你有开发能力,可以通过自定义代码来实现这个功能。以下是一个简单的实现思路:

#### 步骤:
1. **修改颁发勋章的代码**:
   找到颁发勋章的相关代码,通常在 `source/admincp/admincp_medals.php` 文件中。

2. **添加消息通知代码**:
   在颁发勋章的代码后面添加发送消息通知的代码。Discuz! 提供了 `notification_add` 函数来发送通知。

   示例代码:
   // 假设 $uid 是获得勋章的会员ID,$medalname 是勋章名称
   $notification = array(
       'uid' => $uid, // 接收通知的用户ID
       'type' => 'medal', // 通知类型
       'new' => 1, // 新通知
       'authorid' => $_G['uid'], // 发送通知的用户ID
       'author' => $_G['username'], // 发送通知的用户名
       'note' => "恭喜您获得了勋章:{$medalname}", // 通知内容
       'dateline' => TIMESTAMP, // 通知时间
   );
   notification_add($notification);

3. **保存并测试**:
   保存修改后的文件,并在后台颁发勋章,检查会员是否收到通知。

### 3. 使用Discuz!自带的通知功能
如果你不想修改代码,也可以通过Discuz!自带的通知功能手动发送通知。在颁发勋章后,手动给会员发送一条系统消息。

### 4. 检查设置
确保Discuz!的通知功能是开启的,并且会员的通知设置中允许接收勋章相关的通知。

### 总结
通过以上方法,你可以实现颁发勋章时会员收到消息通知的功能。如果你不熟悉代码修改,建议使用插件来实现这个功能。如果有其他问题,欢迎继续咨询!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-20 08:01:20

在Discuz!中,颁发勋章时默认情况下会员是不会收到消息通知的。如果你希望会员在获得勋章时能够收到通知,可以通过以下几种方式来实现:

### 1. 使用插件
你可以通过安装第三方插件来实现颁发勋章时的消息通知功能。在DZ插件网(https://www.dz-x.net/)上搜索相关插件,可能会有现成的解决方案。

### 2. 自定义开发
如果你有一定的开发能力,可以通过自定义开发来实现这个功能。以下是一个简单的实现思路:

#### 步骤1:修改颁发勋章的代码
找到颁发勋章的代码部分,通常位于 `source/admincp/admincp_medals.php` 文件中。在颁发勋章的代码后面添加发送通知的逻辑。

#### 步骤2:添加发送通知的代码
在颁发勋章的代码后面,添加以下代码来发送通知:

// 假设 $uid 是获得勋章的会员ID
// $medalname 是勋章的名称

// 发送通知
$notification = array(
    'uid' => $uid,
    'type' => 'system',
    'new' => 1,
    'authorid' => 0,
    'author' => '',
    'note' => '恭喜您获得了勋章:' . $medalname,
    'dateline' => TIMESTAMP,
    'from_id' => 0,
    'from_idtype' => '',
    'from_num' => 0,
);

C::t('common_notification')->insert($notification);

#### 步骤3:更新缓存
在发送通知后,更新会员的通知缓存,以确保通知能够及时显示:

C::t('common_member')->update($uid, array('newprompt' => 1));

### 3. 使用Discuz!自带的通知系统
如果你不想修改代码,也可以通过Discuz!自带的通知系统手动发送通知。在颁发勋章后,手动给会员发送一条系统通知。

### 4. 使用模板钩子
你还可以通过模板钩子来实现这个功能。在模板中插入钩子,当颁发勋章时触发钩子并发送通知。

### 总结
通过以上方法,你可以实现颁发勋章时会员收到消息通知的功能。如果你不熟悉代码修改,建议使用插件来实现这个功能。如果你有开发能力,可以通过自定义开发来实现更灵活的功能。

希望这些信息对你有所帮助!如果你有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 后台颁发勋章,会员没有消息通知