私は tiki バージョン 15.3 を使用しています。私が編集者であるという新しいフォーラム スレッドがある場合、「マイ ウォッチ」で電子メール通知を受信するように設定しました。しかし、私は電子メールを受け取っていません。ただし、ブログと新規ユーザー登録には機能します。したがって、メールの設定は問題ありません。コードをデバッグしていると、コードにいくつか問題があることがわかりました。 ファイル内: /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 テーブルには、新しく作成されたスレッド ID ではなく、スレッドの親 ID が格納されるためです。第二に、
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はありません。この条件は、ユーザーがスレッドとトピックの両方を監視しているときに、メールを 1 つだけ送信することであると理解しています。ただし、監視しているのはそのうちの 1 つだけです。あるべきだと思います」
else{ $nots[] = $n;}
このようにして、$nots はコードの後半部分で電子メールを送信するものを持ちます。
if (count($nots)) {
include_once('lib/webmail/tikimaillib.php');
$smarty->assign('mail_forum', $forum_info["name"]);...
私が間違っている場合はアドバイスしてください。