Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » "Склейка" постов. Хак.

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

DimoN



Tech administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В качестве новогоднего подарка решил выложить хак "склейки постов", который уже давно был реализован на нашем форуме.
Работа хака реализована следующим образом: в подпрограмме addreply скрипт считывает последнее отправленное сообщение. Если со времени его написания прошло менее двух часов, то вместо создания нового сообщения, текст добавится к старому - "склейка". При этом идет проверка на незарегистрированного пользователя, и если в идущих подряд сообщениях "Гостя" одинаковый IP, то также сработает "склейка" сообщений.  
 
 
Склеивание постов:
 
IkonRussian.lib
Добавить строку:

Код:
$ibtxt{'9989'} = "Добавление от";

 
post.cgi
Найти подпрограмму:

Код:
sub addreply { # start routine

 
Код:

Код:
 
        $filetomake = "$ikondir" . "forum$inforum/$intopic.thd";
        $filetomake = &stripMETA($filetomake);
        foreach $messages (@allmessages) {
            chomp $messages;
            $processed_data .= "$messages\n";
            }
        $processed_data .= "$inmembername|$topictitle|$postipaddress|$inshowemoticons|$inshowsignature|$currenttime|$inpost";
        open(FILE, ">$filetomake");
        flock(FILE, 2);
        print FILE $processed_data;
        close(FILE);
        undef $processed_data;
 

 
 
Заменить на:

Код:
 
###########################################
# Склеивание постов
 
        require "$ikondir" . "data/boardstats.cgi"; #дополнение от 07.01.2002
 
        $num = $totalthreadposts-1;
        ($inmembername_OLD, $topictitle_OLD, $postipaddress_OLD, $inshowemoticons_OLD, $inshowsignature_OLD, $currenttime_OLD, $inpost_OLD) = split (/\|/, $allmessages[$num]);
        chomp ($inpost_OLD);
 
 
        # Эти две строки отвечают за склеивание постов если новый пост не позднее 2х часов
        # Если хотите уменьшить время замените число 7200 на другое.
        # Если вы хотите отключить эту возможность закоментируйте две строки, и раскоментируйте третью  
               
        $timelimit = $currenttime - $currenttime_OLD;
        if ($inmembername_OLD eq $inmembername && $timelimit < 7200 && (!($inmembername eq "$ibtxt{'0043'}" && $inmembername_OLD eq "$ibtxt{'0043'}" && $postipaddress_OLD ne $postipaddress))) {
        #if ($inmembername_OLD eq $inmembername) {
         
         
        my $current_time = $currenttime + ($timedifferencevalue*3600) + ($timezone*3600);
        my $current_time = &dateformat("$currenttime");
         
       my $addon = "<p>[b]\($ibtxt{'9989'}  $current_time.\)[/b]<p>";
         
       
        $inpost_OLD = $inpost_OLD . $addon . "$inpost\n";
         
        $currenttime = $currenttime_OLD;
         
        $postcountcheck = 0;
        foreach $postline (@allmessages) {
            chomp $postline;
                if ($postcountcheck eq $num) {
                    $processed_data .= "$inmembername_OLD|$topictitle_OLD|$postipaddress_OLD|$inshowemoticons_OLD|$inshowsignature_OLD|$currenttime_OLD|$inpost_OLD";
                }
                else { $processed_data .= "$postline\n"; }
                $postcountcheck++;
                }
            $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
            open(FILE, ">$filetoopen");
             flock(FILE, 2);
            print FILE $processed_data;
            close(FILE);
            undef $processed_data;
                       
         
        } else {
                 
        $filetomake = "$ikondir" . "forum$inforum/$intopic.thd";
        $filetomake = &stripMETA($filetomake);
        foreach $messages (@allmessages) {
            chomp $messages;
            $processed_data .= "$messages\n";
            }
        $processed_data .= "$inmembername|$topictitle|$postipaddress|$inshowemoticons|$inshowsignature|$currenttime|$inpost";
        open(FILE, ">$filetomake");
         flock(FILE, 2);
        print FILE $processed_data;
        close(FILE);
        undef $processed_data;
         
        $numberofposts++; # плюс счетчик сюда впихиваем.
       $totalposts++;   #дополнение от 07.01.2002  
 
        $addpost_ = 1;   #дополнение от 07.01.2002  
 
        }
 
 
 
##########################################        
 

 
#дополнение от 07.01.2002 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ищем код и комментируем строку            

Код:
 
        $cleanmembername = $inmembername;
        $cleanmembername =~ s/ /\_/isg;
        #$numberofposts++;
 

 
Ищем код

Код:
                    $lastposter = $inmembername;
                    $lastposttime = $currenttime;
                    $posts++;

 
и меняем на

Код:
                    $lastposter = $inmembername;
                    $lastposttime = $currenttime;
                    if ($addpost_) {$posts++;}

 
             
             
склеенные посты не считаются, время поста не обновляется

----------
Мы Баним с улыбкой :) ™





Исправил.

Всего записей: 7528 | Зарегистр. 19-04-2001 | Отправлено: 01:35 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо!!
Всё работает
 
Добавлено
Только такой вопрос, всё хорошо,но можно ли сделать так,чтоб слово ДОБАВЛЕНО было  жирным?
И по возможности не было скобок с числом когда было добавлено?
 
Добавлено
Только у меня начали какие то чудеса творится.
Решил протестировать как работает прикрученый хак  этот долгожданый.
Открыл новый топик, запостил туда сообщение,тема создалась.
Посмотрел её в форуме, есть. Решил сразу в неё еще одно сообщение запостить, что бы проверить. Запостил,перешёл сразу в топик,всё ок. Но в форуме новая тема не создалась,но она существует. То есть если создаётся новая тема,то она отображается на форуме,а если добавляешь,то тут же исчезает, но сама существует.
Блин запутался кому не сложно, посмотрите сами http://kwforum.dem.ru/cgi-bin/ikonboard/topic.cgi?forum=20&topic=18&start=0
Ноль не понятный

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 03:26 05-01-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Класс, что дал!
Но вот хочу чуток поправить код.
Этот кусок
Код:
my $addon = "<p><br><small>\($ibtxt{'9989'}  $currenttime.\)</small><p><br>";  
меняем на этот
Код:
my $addon = "<p><small><b>\($ibtxt{'9989'} $currenttime.\):</b></small><p>";

 
Добавлено
Max Payne

Цитата:
Только такой вопрос, всё хорошо,но можно ли сделать так,чтоб слово ДОБАВЛЕНО было  жирным?  
И по возможности не было скобок с числом когда было добавлено?  
это просто.  
это
Код:
my $addon = "<p><br><small>\($ibtxt{'9989'}  $currenttime.\)</small><p><br>";
на этот
Код:
my $addon = "<p><small><b>$ibtxt{'9989'}:</b></small><p>";

только тогда $ibtxt{'9989'} = "Добавлено:";

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 04:00 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я понял.
Топик я отыскал на форуме, у меня почему то они стали не с вверху отображаться,а снизу и показывать число 1 января 1970 года.
Что я не так сделал то?
Добавление то работает
 
Добавлено
И форум перестал в общее показывать что есть новые сообщения.

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 04:14 05-01-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Max Payne
Ты все сделал правильно, потому что у меня такой же баг. щас будем разбираться.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 04:19 05-01-2002
DimoN



Tech administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
делай заново ты что-то лишнее убрал.
у некоторых этот хак уже давно стоит и никаких глюков небыло
 

Цитата:
Только такой вопрос, всё хорошо,но можно ли сделать так,чтоб слово ДОБАВЛЕНО было  жирным?  
И по возможности не было скобок с числом когда было добавлено?  

 
редактируй эту строку.

Цитата:
my $addon = "<p><br><small>\($ibtxt{'9989'}  $currenttime.\)</small><p><br>";  



----------
Мы Баним с улыбкой :) ™

Всего записей: 7528 | Зарегистр. 19-04-2001 | Отправлено: 04:24 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дело в том, что я удалил прежние post.cgi,postings.cgi ,IkonRussian.lib
Потому что посмотрел,всё работает.
Правда впервые так рано удалил, раньше всегда хранил их у себя.
Сглупил, буду знать на будущее.
Shurik
Выручай, если узнаешь в чём проблема, скажи что мне надо обратно вернуть.
Причём у меня перестали отображаться в общее что есть новые сообщения\топики на форуме.
Если создаю новый пост, то он сначало нормально и число показывает ,и в самом вверху находится.Как добавляю в него ,так он вниз соскакивает и число меняет на 1 января 70 года.
==
Ну это я так,чтоб понял какая у меня проблема, может кто что подскажет.
DimoN
Не могу я заново всё сделать уже......
 

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 04:37 05-01-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DimoN

Цитата:
делай заново ты что-то лишнее убрал.  
интересно, у обоих раз и глюк? ладно, щас попробуем.
 
Max Payne
кто тебе мешает обратно по шагам вернуться? ищешь то, на что заменил и вместо них меняешь то, что менял! все элементарно.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 04:49 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik
Ну DimoN то говорит что я может удалил лишнее.
Хотя стараля этого не делать

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 04:57 05-01-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Димон, 100% у тебя глючный хак. Ну сам подумай, тут ставить-то - раз плюнуть. IkonRussian.lib и postings.cgi не в счет, там работа всего с одной строчкой.
остается post.cgi. ну а там что? вырезать один блок и вставить другой - что может быть проще? однако, я сейчас поставил второй раз хак - нифига, проблема остается! так что пофиксь ПЛЗ! я пока не знаю, в чем проблема. вот что за $num?

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 05:16 05-01-2002 | Исправлено: Shurik, 05:22 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кстати я изменил
Цитата:
my $addon = "<p><br><small>\($ibtxt{'9989'}  $currenttime.\)</small><p><br>";

на
Цитата:
my $addon = "<p><small><b>$ibtxt{'9989'}:</b></small><p>";
Всё тоже самое осталось.
Почему теги видны? <small>
Вот кусок из моего post.cgi

Цитата:
 
        $currenttime = $currenttime + ($timedifferencevalue*3600) + ($timezone*3600);  
        $currenttime = &dateformat("$currenttime");  
         
        my $addon = "<p><small><b>$ibtxt{'9989'}:</b></small><p>";  
         
        $inpost_OLD = $inpost_OLD . $addon . "$inpost\n";  

Вроде всё поменял верно

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 05:21 05-01-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Max Payne
Где у тебя тэги видны? У меня они работают, однако странно, почему-то ведь тоже прописываются в мессагу. Т.е. вместо [ b ] использовано <b>...  

Цитата:
Всё тоже самое осталось.  
ты что! я там br убрал, убрал скобки, поставил ":" и тег <b>.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 05:38 05-01-2002
DimoN



Tech administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подправил.
 
 
Теперь если без времени то так.
 
$ibtxt{'9989'} = "Добавлено";
 
#my $current_time = $currenttime + ($timedifferencevalue*3600) + ($timezone*3600);  
        #my $current_time = &dateformat("$currenttime");  
         
        my $addon = "<p>[b]$ibtxt{'9989'}[/b]<p>";  
 
 
 
Добавлено
Если хотите еще чтобы Добавлено маленькими буковками было
то нужно сделать отдельный код [s] = <small>


----------
Мы Баним с улыбкой :) ™

Всего записей: 7528 | Зарегистр. 19-04-2001 | Отправлено: 06:24 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik
У меня видны теги <small>Добавлено(такого то числа)</small>
 
Добавлено
DimoN
А как сделать так чтобы время поста обновлялось и сам топик вниз не скатывался?

Цитата:
склеенные посты не считаются, время поста не обновляется  
 

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 16:17 05-01-2002
Vasya Pupkin



Мракобес
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! Все работает!

----------
я не люблю людей

Всего записей: 7062 | Зарегистр. 24-02-2001 | Отправлено: 17:16 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все вернул обратно, сейчас заново буду пробовать.
Что бы не было таких глюков, как 1 января 1970 года и тд, нужно просто ставить верхний ход и больше ничего не править?

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 17:48 05-01-2002
crashin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите!
Вот установил этот хак, а мне выдается такое сообщение:

Цитата:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@majordomo.ru and inform them of the time the error occurred, and anything you might have done that may have caused the error.
 
More information about this error may be available in the server error log.
 
 
 
--------------------------------------------------------------------------------
 
Apache/1.3.20 Server at www.game.fishplace.ru Port 80

Всего записей: 108 | Зарегистр. 18-10-2001 | Отправлено: 17:52 05-01-2002
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DimoN

Цитата:
Если хотите еще чтобы Добавлено маленькими буковками было  
то нужно сделать отдельный код [s] = <small>  
зачем? можно ведь заюзать [size=1]
 
Vasya Pupkin

Цитата:
Спасибо! Все работает!
и нету глюка со временем? читай выше - там если создать тему и тут же в нее ответить, то якобы в 1970 году ответили. лол. у тебя нет такого глюка? не верю.
 
crashin
ты немного некорректно поставил хак. может там запятую где пропустил... проверяй.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 23:57 05-01-2002
Max Payne



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят ну так как исправить этот баг?
Если б я сам рубил на столько хорошо как вы,то я б не спрашивал.
Но я учусь по маленьку

Всего записей: 986 | Зарегистр. 08-12-2001 | Отправлено: 01:53 06-01-2002
DimoN



Tech administrator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Max Payne
какой баг.
 
вы что спите за компами все. я его сутки назад уже исправил
 
Добавлено
Shurik

Цитата:
 и нету глюка со временем? читай выше - там если создать тему и тут же в нее ответить, то якобы в 1970 году ответили. лол. у тебя нет такого глюка? не верю.  

 
просниииись!!!

----------
Мы Баним с улыбкой :) ™

Всего записей: 7528 | Зарегистр. 19-04-2001 | Отправлено: 04:00 06-01-2002
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » "Склейка" постов. Хак.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru