Gram
Модератор раздела
 Откуда: здешний Всего сообщений: 569 Рейтинг пользователя: 14 Репутация пользователя: 1Дата регистрации на форуме: 23 июля 2003
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 февраля 2005 23:39
Ну для начала надо сказать, что в последней версии Ikonboard'a несколько напоминаний не приходит (даже если пользователь несколько раз подпишется на тему). А вообще то, у себя я фиксил данную штуку таким образом:
Открываем post.cgi и ищем код (3 раза должен повторяться)
if ($emailfunctions eq "on") { # start mail $filetoopen = "$ikondir" . "forum$inforum/newinfo.mal"; open (FILE, "$filetoopen"); @maildata = <FILE>; close (FILE); # Lets sort the data (there's no point adding the new requestee at this point!) foreach $dataline (@maildata) { ($postersname,$posteremailaddress) = split(/\|/,$dataline); if ($lastemailsent ne $postersname) { $filename = $postername; $filename =~ s/ /_/g; $filetoopen = "$ikondir" . "members/$filename.ext"; $filetoopen = stripMETA($filetoopen); if (-e $filetoopen) { $filetoopen = stripMETA($filetoopen); open (FILE, "$filetoopen"); $buffer = <FILE>; close (FILE); ($allowmailsend,$fullmsgtext,$trash)=split(/\|/,$buffer); } else {$allowmailsend = "yes"; } # No point in getting your own post emailed to you, so... if ($inmembername eq $postersname || $allowmailsend eq "no") { next; } # If not,carry on! $output .= "\n\n<!-- Processing Emails --> \n\n"; $toemail = $posteremailaddress; chomp $toemail; $toemail =~ s/\\//g; $fromemail = $adminemail_out; chomp $fromemail; $fromemail =~ s/\\//g;
Заменяем на
if ($emailfunctions eq "on") { if ($innotify eq "yes" && $userregistered ne "no") { $filetomake = "$ikondir" . "forum$inforum/$newthreadnumber.mal"; $filetomake = &stripMETA($filetomake); open (FILE, ">$filetomake"); flock (FILE, 2); print FILE "$inmembername|$emailaddress\n"; close (FILE); } $filetoopen = "$ikondir" . "forum$inforum/newinfo.mal"; $filetoopen = &stripMETA($filetoopen); open (FILE, "<$filetoopen"); @maildata = <FILE>; close (FILE); foreach $dataline (@maildata) { ($postersname,$posteremailaddress) = split(/\|/,$dataline); if (!$sended{$postersname}) { &getmember($postersname); if ($inmembername eq $postersname || $allowmailsend eq "no" || $userregistered eq "no") { next; } $output .= "\n\n<!-- Processing Emails --> \n\n"; $toemail = $emailaddress; chomp $toemail; $toemail =~ s/\\//g; $fromemail = $adminemail_out; chomp $fromemail; $fromemail =~ s/\\//g;
Ищем код (3 раза должен повторяться)
$lastemailsent = "$postersname";
И заменяем везде на
$sended{$postersname}=1;
Этим мы убиваем двух зайцев: 1. Уведомление приходит только одно. 2. Уведомление приходит на мыло, указанное в профиле в текущий момент времени. |