我正在使用tiki版本15.3 我设置了我的偏好,如果有一个新的论坛帖子,我是一名编辑,我会在"我的手表"中收到一封电子邮件通知。但是,我还没有收到任何电子邮件。它适用于博客和新用户注册。所以电子邮件设置没问题。当我调试代码时,我在代码中发现了一些问题: 在File:/lib/notification/notificationemaillib.php中 行:112
$nots_raw = $tikilib->get_event_watches($event, $event == 'forum_post_topic'? $forum_info['forumId']: $threadId, $forum_info);
$ threadId应该是$ parentId吗?由于Tiki_user_Watch表存储了Thread Parent Id而不是新创建的threadId。 其次,
第122行:
foreach ( $nots_raw as $n ) {
if ($n['user'] != $author
&& !in_array($n['user'], $users)) {
// make sure user receive only one notification even if he is monitoring both the topic and thread
$n['language'] = $tikilib->get_user_preference($n['user'], "language", $defaultLanguage);
$nots[] = $n;
$users[] = $n['user'];
}
此if条款没有其他内容。我知道这个条件是当用户监控线程和主题时只发送一封电子邮件。但是,我只监控其中的一个,我认为应该有一个"
else{ $nots[] = $n;}
这样,$ nots会在代码的后半部分发送电子邮件。
if (count($nots)) {
include_once('lib/webmail/tikimaillib.php');
$smarty->assign('mail_forum', $forum_info["name"]);...
请告知我是不是错了。
答案 0 :(得分:0)
你是对的。我相信我已经用this commit修复了它,它将在15版的下一个版本中(也承诺版本16,17和trunk)。
正如您所指出的那样,需要使用父ID而不是线程ID(感谢您 - 使大部分调试工作变得更加容易!)。正确识别现有手表也存在问题。我不认为if语句需要其他语句,但请告诉我这是否不适合你。