Gram
Модератор раздела
Откуда: здешний Всего сообщений: 566 Рейтинг пользователя: 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. Уведомление приходит на мыло, указанное в профиле в текущий момент времени. |