batva
crazy administrator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Нужно снести хак отписки, и поставить этот. Он и подписывает и отписывает. И не глюкует. Код: Notify on/off hack by LazyCat lazycat@pochtamt.ru Найти $intopic = &stripMETA("$intopic"); $instart = $query -> param('start'); $instart = &stripMETA("$instart"); $jumpto = $query -> param('jumpto'); $jumpto = &stripMETA("$jumpto"); и добавить $notify = $query -> param('notify'); $notify = &stripMETA("$notify"); потом найти print header(-cookie=>[$tempvisitcookie, $permvisitcookie]); добавить: if ($notify eq "on") {¬ifyon;} if ($notify eq "off") {¬ifyoff;} Найти if ($privateforum ne "yes") { $sendtofriendicon = qq~<a href="$ikonfriendprog?forum=$inforum&topic=$intopic"><img src="$imagesurl/images/emailtofriend.gif" border=0></a>~; } кнопки "Послать другу" и "Печать", а для кнопок я использовал картинки из хака отписки) и добавить: # Notify button add $filetoopen = "$ikondir" . "forum$inforum/$intopic.mal"; open (FILE, "$filetoopen"); @maildata = <FILE>; close (FILE); if ($inmembername eq "Гость") { $threadnotify = "";}else{ $threadnotify = qq~<a href="$threadprog?forum=$inforum&topic=$topicid¬ify=on">~; $threadnotify .= qq~<img src="$imagesurl/images/notifyoff.gif" border="0" alt="Подписаться на уведомления о новых сообщениях в этой теме">~; } foreach $dataline (@maildata) { ($postersname,$posteremailaddress) = split(/\|/,$dataline); if ($inmembername eq $postersname) { $threadnotify = qq~<a href="$threadprog?forum=$inforum&topic=$topicid¬ify=off">~; $threadnotify .= qq~<img src="$imagesurl/images/notifyon.gif" border="0" alt="Отключить уведомление">~;} } ##### End Notify button Потом в самый конец файла (после процедуры postings) добавить две вот эти процедуры: sub notifyoff { $filetoopen = "$ikondir" . "forum$inforum/$intopic.mal"; open (FILE, "$filetoopen"); @maildata = <FILE>; close (FILE); $new_row=""; foreach $mailline (@maildata) { ($postersname,$posteremailaddress) = split(/\|/,$mailline); if ($inmembername ne $postersname) { $new_row .= "$postersname|$posteremailaddress"; } else {next;}} if ($emailfunctions eq "on") { # start mail $filetomake = "$ikondir" . "forum$inforum/$intopic.mal"; open (FILE, ">$filetomake"); # flock (FILE, 2); print FILE $new_row; close (FILE);} } sub notifyon { if ($emailfunctions eq "on") { # start mail $filetoopen = "$ikondir" . "forum$inforum/$intopic.mal"; open (FILE, "$filetoopen"); @maildata = <FILE>; close (FILE); open (FILE, ">$filetoopen"); flock (FILE, 2); print FILE "$inmembername|$emailaddress\n"; foreach $line (@maildata) { chomp $line; print FILE "$line\n";} close (FILE); } } |
|