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

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

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

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

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

YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот опять написал хак. Зацените. Если кому понравиться, то попросите меня - выложу код, который я написал.
Жду ответов.
 
http://www.flf.pp.ru/cgi-bin/ikonboard/ikonboard.cgi
 
Прокручивайте страницу до самого низа и увидите!

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 16:40 22-06-2002 | Исправлено: Xnom, 05:30 14-01-2003
Gizmo3k



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
The page cannot be found
 
Всё, теперь захожу... Спасибо, что урл исправил

Всего записей: 1412 | Зарегистр. 23-12-2001 | Отправлено: 16:41 22-06-2002 | Исправлено: Gizmo3k, 16:42 22-06-2002
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Gizmo3k, ну что, как хак-то?

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 20:58 22-06-2002
Rick



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хм... а что за хак-то? ИБ, как ИБ... какой там хак???

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 00:17 23-06-2002
Fuchsia



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rick,
а там в самом низу страницы табличка выводится со статистикой:
Самая популярная тема,  
Последним просмотрел,  
Просмотров,  
Время последнего просмотра,  
Самый активный участник,  
Последняя запись,  
Всего записей,  
Время последней записи  
 
YourAdmin, лихо закручено, но ИМХО много лишнего. Мне бы подошло, если оставить только самую популярную тему и самого активного участника, и то не в целом по всему форуму, а по разделам. К примеру, здесь, на ру-борде, кол-во сообщений во флейме не учитывается, соответственно, сколько туда ни пости, самым активным участником не станешь.
 
А вообще молодец, по-хорошему завидую таким, как ты

Всего записей: 285 | Зарегистр. 16-02-2002 | Отправлено: 00:34 23-06-2002 | Исправлено: Fuchsia, 00:57 23-06-2002
Gizmo3k



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YourAdmin
Хак отличный, но у меня форума нету Но буду иметь в виду, если буду ИБ ставить

Всего записей: 1412 | Зарегистр. 23-12-2001 | Отправлено: 00:48 23-06-2002
makcum



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YourAdmin
отправь этот хак мне на мыло

Всего записей: 147 | Зарегистр. 04-05-2002 | Отправлено: 11:13 23-06-2002
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
makcum, мне что делать нечего?
Он впринципе-то еще и "не опубликован". Вот будет побольше мнений - опубликую.
 
 
Fuchsia, если приспичит, то там все легко переделать!

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 16:11 23-06-2002
Ausw



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YourAdmin отлично, молодец ты бы опубликовал бы их, а этих кул хакеров не слушай, если они считают это бесполезным, то это не значит что они бесполезны всем, как грится, сколько людей столько и мнений


----------
Be High.

Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 17:27 23-06-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ausw

Цитата:
а этих кул хакеров  
Я не кул-хакер! Я вообсче не люблю кул-хацкеров...
 
Зачем мне знать, кто последний просматривал форум, или какая последняя тема (хинт: в интересный мне раздел я так и так зайду  и там она будет на верху, а из неинтересного -- дык на фиг оно мне).
 
Интресней "самый активный", ну дык memberlist.cgi для этого вполне подходит.
 
Я бы лучше сделал нечто вроде memberlist.cgi, но по темам. И ребилдил это раз в сутки (а то memberlist геняреется всего с 1300 участниками под 5 секунд на коммерческом хосте... С темами было б получше, но всё равно тормозилово получалось бы...) Имхо пользы было бы больше... Сам буду делать эту фичу.

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 18:03 23-06-2002 | Исправлено: ivank, 18:05 23-06-2002
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ausw, ок. Ждк еще несколько мнений и публикую.
 
To Ausw:
Кстати, ты поддерживаешь чтоб я стал "Писателем хаков"?

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 18:14 23-06-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YourAdmin
1. Выкладывай. Посмотрю-с... Ты хочешь чтобы тебя умоляли дать нам эту фишку посмотреть что ли?
2. Да млин пиши batva'е на ПМ или мыло, он ответит.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 19:24 23-06-2002
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alexander Ipp, я уже несколько часов назад написал ему на ПМ.

Цитата:
1. Выкладывай. Посмотрю-с... Ты хочешь чтобы тебя умоляли дать нам эту фишку посмотреть что ли?

Да нет Просто в онлайне весь хак долго набирать, а в оффлайне он ещё не готов Щас поеду на дачу и на ноутбуке наберу

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 20:26 23-06-2002
pechalny



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YourAdmin
Неплохо, молодец

----------
cynicism is the only thing that keeps me sane

Всего записей: 1852 | Зарегистр. 29-07-2001 | Отправлено: 00:07 24-06-2002
Fuchsia



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YourAdmin

Цитата:
если приспичит, то там все легко переделать!

 
Спасибо Буду иметь в виду. Просто у меня возникли кое-какие идеи по своему форуму, для их реализации очень бы пригодилось определение самого активного участника в конкретном форуме, да еще за определенный период времени. И хорошо было бы, чтобы модератор был из этого рейтинга исключен Но это все так, мысли вслух...
 
Дерзай дальше

Всего записей: 285 | Зарегистр. 16-02-2002 | Отправлено: 03:51 24-06-2002
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fuchsia, у меня исключен администратор - а модераторам - пожалуйста. Хотя это тоже легко
 
А вот она и публикация долгожданного хака.
Файлы, которые придеться редактировать:
ikonboard.cgi, topic.cgi и post.cgi
 
Открываем наш любимый ikonboard.cgi
Здесь все просто. Идем в самый конец и находим
 

Код:
 
print header('text/html; charset=windows-1251');
&output(
-Title   => $boardname,  
-ToPrint => $output,  
-Version => $versionnumber  
);
 

 
Перед этим кодом добавляем
 

Код:
 
############# Самая популярная тема и активный участник
 
    $filetoopen = "$ikondir" . "mostpop.cgi";
    open (MOST, "$filetoopen");
    @sod = <MOST>;
    close (MOST);
 
   
   foreach $mostpop (@sod) {      
   ($forumpop, $topicpop, $topicpoptitle, $viewpop, $timepop, $memberpop) = split(/\|/, $mostpop);
   chomp $mostpop; }
   
$timepop = &dateformat("$timepop");  
 
 
    $filetoopen = "$ikondir" . "active.cgi";
    open (ACTIVE, "$filetoopen");
    @active = <ACTIVE>;
    close (ACTIVE);
 
   
   foreach $act (@active) {      
   ($actmember, $actmemberposts, $actmembertime, $actmembertopictitle, $actmemberforum, $actmembertopic) = split(/\|/, $act);
   chomp $act; }
   
   $actmembertime = &dateformat("$actmembertime");
 
$output .= qq~
<br>
<table border="0" width="$tablewidth" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="$catback"><td align="left" colspan="2" style="BORDER-TOP: gray 1px solid; BORDER-RIGHT: gray 1px solid; BORDER-LEFT: gray 1px solid" align="left">
<font face="$font" color="$catfontcolor" size="2"><b>&nbsp;&raquo;&nbsp;Статистика форума<b></font>
</td>
</tr>
 
<tr>
<td style="BORDER-TOP: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid" align="left">
<font size="1" face="$font">&nbsp;Самая популярная тема:
<a href="$threadprog?forum=$forumpop&topic=$topicpop&allpagesview=yes">$topicpoptitle</a>
<br>&nbsp;Последним просмотрел: <a href="$profileprog?action=show&member=$memberpop">$memberpop</a></td>
 
<td align="left" style="BORDER-TOP: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-RIGHT: gray 1px solid">
<font face="$font" size="1">Просмотров: $viewpop<br>
Время последнего просмотра: $timepop
</td></tr>
 
<tr>
<td style="BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid" align="left"><font face="$font" size="1">
&nbsp;Самый активный участник: <a href="$profileprog?action=show&member=$actmember">$actmember</a><br>
&nbsp;Последняя запись: <a href="$threadprog?forum=$actmemberforum&topic=$actmembertopic">$actmembertopictitle</a></td>
 
<td align="left" style="BORDER-BOTTOM: gray 1px solid; BORDER-RIGHT: gray 1px solid"><font face="$font" size="1">
Всего записей: $actmemberposts<br>
Время последней записи: $actmembertime
</td></tr>
</table>~;
 
############# Самая популярная тема  и активный участник
 

 
Сохраняем ikonboard.cgi и можно его закрыть.
 
Далее немного помучаемся с topic.cgi
Здесь тоже все просто.  
Не забудьте открыть topic.cgi
Находим
 

Код:
 
    $filetoopen = "$ikondir" . "forum$inforum/list.cgi";
    $filetoopen = &stripMETA($filetoopen);
    if (-e $filetoopen) {
        open(FILE, $filetoopen) or &error("$ibtxt{'3001'}&$ibtxt{'3002'}$inforum/list.cgi");
        @allthreads = <FILE>;
        close(FILE);
        $totalthreadcount = @allthreads;
        $count = 0;
        foreach $line (@allthreads) { #start foreach @threads
            ($tempno, $trash) = split(/\|/, $line);
            chomp $line;
            push (@numbercounter, $tempno);
            if ($intopic eq $tempno) {
                ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$line);
                $threadviews++; $keepcounter = $count;
                $linetokeep = "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate";
                chomp $linetokeep;
                $processed_data .= "$linetokeep\n";
                }
                else { $processed_data .= "$line\n"; }
            $count++;
            }
        if (($processed_data eq "") || ($processed_data !~ m!\|!)) { &error("Missing Data&Data as corrupted on the server. Please go back and try again"); }
        open(FILE, ">$filetoopen");
         print FILE $processed_data;
        close(FILE);
        undef $processed_data;
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open(MSG, ">$file");
        print MSG $linetokeep;
        close(MSG);
        }
 
 

 
Добавим-ка под этим кодом
 

Код:
 
############################ Самая популярная тема
 
    $filetoopen = "$ikondir" . "mostpop.cgi";
    open (MOST, "$filetoopen");
    @sod = <MOST>;
    close (MOST);
 
   
   foreach $mostpop (@sod) {
   ($forumpop, $topicpop, $topicpoptitle, $viewpop, $timepop, $memberpop) = split(/\|/, $mostpop);
   chomp $mostpop;}
   
 if ($threadviews >= $viewpop) {
 
 $timepop = time;
 
 $filetomake = "$ikondir" . "mostpop.cgi";
 open (UP, ">$filetomake");
 print UP "$inforum|$topicid|$topictitle|$threadviews|$timepop|$inmembername";  
 close (UP);
}    
 
############################ Самая популярная тема
 

 
Сохраняем topic.cgi и можно закрыть.
 
А вот теперь придеться мучаться с post.cgi
Открываем post.cgi (А какже еще?)
Находим
 

Код:
 
############### sub addnewthread #############
 
sub addnewthread { # start routine
 

 
В этой подпрограмме ищем
 

Код:
 
        &getforum("$inforum");        
 
        $cleanmembername = $inmembername;
        $cleanmembername =~ s/ /\_/isg;
        $numberofposts++;
        $lastpostdate = "$currenttime\%\%\%$threadprog?forum=$inforum&topic=$newthreadnumber\%\%\%$intopictitle" if ($privateforum ne "yes");
        chomp $lastpostdate;
         
        $filetomake = "$ikondir" . "members/$cleanmembername.cgi";
        $filetomake = &stripMETA($filetomake);
        open(FILE, ">$filetomake");
        #flock(FILE, 2);
        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3";
        close(FILE);
 
 

 
Под этим кодом добавляем
 

Код:
 
############ Самый активный участник
 
        $filetoopen = "$ikondir" . "active.cgi";
        open (ACTIVE, "$filetoopen");
        @act = <ACTIVE>;
        close (ACTIVE);
 
         
        foreach $act (@act) {      
        ($actmember, $actmemberposts, $actmembertime, $actmembertopictitle, $actmemberforum, $actmembertopic) = split(/\|/, $act);
        chomp $act; }
         
        if ( $numberofposts >= $actmemberposts && $membercode ne "ad") {  
        $acttime = time;
 
        $filetomake = "$ikondir" . "active.cgi";  
$filetomake = ($filetomake);  
open(FILE, ">$filetomake");  
print FILE "$inmembername|$numberofposts|$acttime|$intopictitle|$inforum|$newthreadnumber";  
close(FILE);
        }      
 
        ############ Самый активный участник
 

 
С темами ОК, теперь с ответами.
Ищем
 

Код:
 
##### add the replyto the file.
 
sub addreply { # start routine
 
 
 
В этой подпрограмме ищем
 

Код:
 
        $filetomake = "$ikondir" . "members/$cleanmembername.cgi";
        $filetomake = &stripMETA($filetomake);
        open(FILE, ">$filetomake");
          #flock(FILE, 2);
        print FILE "$inmembername|$password|$membertitle|$membercode|$numberofposts|$emailaddress|$showemail|$ipaddress|$homepage|$aolname|$icqnumber|$location|$interests|$joineddate|$lastpostdate|$signature|$timedifference|$privateforums|$useravatar|$misc1|$misc2|$misc3";
        close(FILE);
 
        $filetoopen = "$ikondir" . "data/allforums.cgi";
        $filetoopen = &stripMETA($filetoopen);
        open(FILE, $filetoopen);
          #flock (FILE, 1);
        @allforums = <FILE>;
        close(FILE);
 

 
Перед этим кодом вставляем
 

Код:
 
############ Самый активный участник
 
        $filetoopen = "$ikondir" . "active.cgi";
        open (ACTIVE, "$filetoopen");
        @act = <ACTIVE>;
        close (ACTIVE);
 
         
        foreach $act (@act) {      
        ($actmember, $actmemberposts, $actmembertime, $actmembertopictitle, $actmemberforum, $actmembertopic) = split(/\|/, $act);
        chomp $act; }
         
        if ($numberofposts >= $actmemberposts && $membercode ne "ad") {  
        $acttime = time;
 
        $filetomake = "$ikondir" . "active.cgi";  
$filetomake = ($filetomake);  
open(FILE, ">$filetomake");  
print FILE "$inmembername|$numberofposts|$acttime|$topictitle|$inforum|$intopic";  
close(FILE);
        }      
 
        ############ Самый активный участник
 

 
Если у вас установлено и голосование, то придеться и с ним помучаться.
Находим
 

Код:
 
############### sub addnewpoll #############
 
sub addnewpoll { # start routine
 

 
В этой подпрограмме ищем
 

Код:
 
$cleanmembername = $inmembername;
        $cleanmembername =~ s/ /\_/isg;
        $numberofposts++;
        $lastpostdate = "$currenttime\%\%\%$threadprog?forum=$inforum&topic=$newthreadnumber\%\%\%$intopictitle" if ($privateforum ne "yes");
        chomp $lastpostdate;
 

 
Под этим кодом вставляем
 

Код:
 
 
        ############ Самый активный участник
 
        $filetoopen = "$ikondir" . "active.cgi";
        open (ACTIVE, "$filetoopen");
        @act = <ACTIVE>;
        close (ACTIVE);
 
         
        foreach $act (@act) {      
        ($actmember, $actmemberposts, $actmembertime, $actmembertopictitle, $actmemberforum, $actmembertopic) = split(/\|/, $act);
        chomp $act; }
         
        if ($nemberofposts >= $actmemberposts && $membercode ne "ad") {  
        $acttime = time;
 
        $filetomake = "$ikondir" . "active.cgi";  
$filetomake = ($filetomake);  
open(FILE, ">$filetomake");  
print FILE "$inmembername|$numberofposts|$acttime|$intopictitle|$inforum|$newthreadnumber";  
close(FILE);
        }      
 
        ############ Самый активный участник
 

 
Теперь, создадим 2 файла.
Создаем файл active.cgi
Вставляем в него
 

Код:
 
LM|0|1024753428|IB-Хак. Самый активный участник|1|1
 

 
Далее создаем файл mostpop.cgi
Вставляем в него
 

Код:
 
3|2|IB-Хак. Самая популярная тема|0|1024843986|LM
 

 
Затем, наши действия:
- загружаем на сервер ikonboard.cgi; chmod 755
- загружаем на сервер topic.cgi; chmod 755
- загружаем на сервер post.cgi; chmod 755
- загружаем на сервер active.cgi; chmod 755
- загружаем на сервер mostpop.cgi; chmod 755
 
Вот хак и установлен.
Блин, пока писал, 4 сигареты выкурил
Тестируйте и пишите отзывы
 
Если кому-то надо, то объяняю содержание файлов.
 
 
active.cgi
имя|посты|время|название темы|форум|тема
 
mostpop.cgi
форум|тема|название темы|просмотры|время|имя
 
 
А может вы мне окупите стоимость 4 сигарет?

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 14:57 24-06-2002
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ivank

Цитата:
Я бы лучше сделал нечто вроде memberlist.cgi, но по темам. И ребилдил это раз в сутки (а то memberlist геняреется всего с 1300 участниками под 5 секунд на коммерческом хосте... С темами было б получше

интересная мысль давай развивай дальше
YourAdmin
а зачем ты 2 хака в один соединил
чтобы тем, кто поставил 1-ый сложнее этот ставить было?
Дальше,

Код:
<tr>  
<td style="BORDER-TOP: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid" align="left">  
<font size="1" face="$font">&nbsp;Самая популярная тема:  
<a href="$threadprog?forum=$forumpop&topic=$topicpop&allpagesview=yes">$topicpoptitle</a>  
<br>&nbsp;Последним просмотрел: <a href="$profileprog?action=show&member=$memberpop">$memberpop</a></td>  
 
<td align="left" style="BORDER-TOP: gray 1px solid; BORDER-BOTTOM: gray 1px solid; BORDER-RIGHT: gray 1px solid">  
<font face="$font" size="1">Просмотров: $viewpop<br>  
Время последнего просмотра: $timepop  
</td></tr>  
 
<tr>  
<td style="BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid" align="left"><font face="$font" size="1">  
&nbsp;Самый активный участник: <a href="$profileprog?action=show&member=$actmember">$actmember</a><br>  
&nbsp;Последняя запись: <a href="$threadprog?forum=$actmemberforum&topic=$actmembertopic">$actmembertopictitle</a></td>  
 
<td align="left" style="BORDER-BOTTOM: gray 1px solid; BORDER-RIGHT: gray 1px solid"><font face="$font" size="1">  
Всего записей: $actmemberposts<br>  
Время последней записи: $actmembertime  
</td></tr>  
</table>~;

ой, мама. что это?? имхо порезать это всё надо, а у тебя на форуме что, так стили пишутся? зачем?

----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 15:56 24-06-2002
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну и что. Кому надо, тот и исправит. Я просто так под свою конфу настраивал

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 16:16 24-06-2002
alexei



ibhacker
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
YourAdmin
1. Стили имхо лучше в css загони, и вставляй потом только class=myscn.
2. Тебе batva уже говорил, зачем масив если файл в одну строку
3. Я думаю лучше инфу с mostpop.cgi and active.cgi кидать в один файл, просто в разные строки. Имхо потом обращайся как @array[0],@array[1], файлы ведь небольшие

Всего записей: 647 | Зарегистр. 06-07-2001 | Отправлено: 18:10 24-06-2002
Grey2002



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alexei

Цитата:
3. Я думаю лучше инфу с mostpop.cgi and active.cgi кидать в один файл, просто в разные строки

опаньки, спасибо, сейчас переделаю...

----------
Мой Блог

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 04:34 25-06-2002
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум 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