找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 25|回复: 0

[维护日志] [2026-06-03] [优化] [回帖屏蔽邮件模板] - 区分回帖与主题的邮件通知文案

[复制链接]
  • 打卡等级:本地老炮

9337

威望

7448

金钱

1万

贡献

管理员

自由的灵魂

积分
107434
主题
5630
回帖
26661
注册时间
2003-4-10
最后登录
2026-10-2
发表于 2026-6-3 10:15:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×

1、问题缘起

收到用户反馈,回帖被屏蔽时收到的邮件通知文案为“您的帖子被屏蔽”,与主题被屏蔽时的文案相同,无法区分被操作对象是主题还是回帖。用户期望在邮件中明确体现“回帖”身份,并显示所属的主题标题。

2、解决方案

(1)简要技术分析:
Discuz! 中主题和回帖的管理操作由两个独立函数处理,在回帖函数中删除多余的主题判断逻辑,将邮件主题和正文中的“帖子”改为“回帖”,并明确显示所属主题标题。

(2)修改文件:

操作文件路径
修改/source/module/forum/forum_topicadmin.php


(3)关键代码修改:

单条回帖通知(第 176-195 行):
  1. if ($post_count == 1) {
  2. $post = $user_posts[0];
  3. $thread_info = C::t('forum_thread')->fetch_thread($post['tid']);
  4. $subject_title = $thread_info ? $thread_info['subject'] : '帖子';
  5. $post_url = $_G['siteurl'] . 'forum.php?mod=redirect&goto=findpost&ptid=' . $post['tid'] . '&pid=' . $post['pid'];
  6. $mail_subject = '您在 『' . $_G['forum']['name'] . '』 的回帖被' . $action_name;
  7. $mail_message = "<html><body>";
  8. $mail_message .= "<p>尊敬的 " . $user['username'] . ",您好:</p>";
  9. $mail_message .= "<p>您针对主题《" . htmlspecialchars($subject_title) . "》的回帖被执行了「" . $action_name . "」操作。</p>";
  10. $mail_message .= "<p>操作人:" . $_G['member']['username'] . "</p>";
  11. $mail_message .= "<p>操作时间:" . date('Y-m-d H:i:s') . "</p>";
  12. $mail_message .= "<p>查看详情:<a href="" . $post_url . "">" . $post_url . "</a></p>";
  13. $mail_message .= "<p>期待您继续参与社区讨论。</p>";
  14. $mail_message .= "</body></html>";
  15. }
复制代码


批量回帖通知(第 196-212 行):
  1. } else {
  2. $mail_subject = '您在 『' . $_G['forum']['name'] . '』 的 ' . $post_count . ' 个回帖被批量管理';
  3. $mail_message = "<html><body>";
  4. $mail_message .= "<p>尊敬的 " . $user['username'] . ",您好:</p>";
  5. $mail_message .= "<p>您在论坛发布的以下 " . $post_count . " 个回帖被执行了「" . $action_name . "」操作:</p><ul>";
  6. foreach ($user_posts as $post) {
  7. $thread_info = C::t('forum_thread')->fetch_thread($post['tid']);
  8. $subject_title = $thread_info ? $thread_info['subject'] : '帖子';
  9. $post_url = $_G['siteurl'] . 'forum.php?mod=redirect&goto=findpost&ptid=' . $post['tid'] . '&pid=' . $post['pid'];
  10. $mail_message .= "<li><a href="" . $post_url . "">回帖《" . htmlspecialchars($subject_title) . "》</a></li>";
  11. }
  12. $mail_message .= "</ul>";
  13. // ... 后续操作人、操作时间等
  14. }
复制代码


3、最终实现效果

场景修改前修改后
单条回帖主题您的帖子被屏蔽您的回帖被屏蔽
单条回帖正文您在论坛发布的回帖《xxx》您针对主题《xxx》的回帖被执行了「屏蔽」操作
批量回帖主题X 个帖子被批量管理X 个回帖被批量管理
批量回帖列表回帖《xxx》回帖《xxx》(主题标题)
主题操作不受影响保持不变


4、重要技术沉淀

  • 职责分离:回帖函数 send_topicadmin_notification 中删除了 $post_type 判断和 $post['first'] 分支,因为主题操作已有独立的 send_topicadmin_notification_universal 函数处理,回帖函数无需处理主题数据。
  • 邮件模板:回帖被屏蔽时应显示「您针对主题《xxx》的回帖」,而非笼统的「您的帖子」。

5、进一步优化

  • 如需调整其他管理操作(警告、删除回帖、置顶回复)的邮件文案,可在同一函数中同步修改。
  • 可考虑将邮件模板内容存入数据库,支持后台在线编辑。

不懂就搜!点此搜点拨论坛。如果本坛没有,请尝试点此问AI,或跟帖提问。
发帖前注意看置顶帖。
不定期借助AI对点拨论坛陈年老帖进行挖坟回复,打扰勿怪!
点拨网 — 致力于解决实际问题!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2026-10-2 03:11 , Processed in 0.194162 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表