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

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

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

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

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

fbender



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Установка хака поднятой темы

 
 
Текст хака, который вы видите ниже, упакован и положен сюда.
 
Отдельно в txt-файле выложены подпрограммы sticktopic  и unsticktopic
 
 
 
Посмотреть  весь хак в этом топике

Всего записей: 101 | Зарегистр. 04-07-2001 | Отправлено: 09:16 24-09-2001 | Исправлено: Net_man, 16:51 30-04-2005
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, неужеле никто не подскажет?!

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 22:15 12-06-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Raw Rider
да все разобраться...
у меня пашет. Единственное глюк - в гостя выкидывает.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 00:12 13-06-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Raw Rider
качай хак, ставь, с этим проблем не должно быть.
Шурик правильно говорит, при поднятии/опускании темы тебя будет выкидывать в гостя.
Это легко исправляется замечаниями в этой теме.

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 01:03 13-06-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shurik, Xnom
Тогда может ссылочку на хак подскажете, а то в этой теме ни одна не работает...

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 17:59 21-06-2003
Han_s



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
поставил хак с ibhackers ыкидывает непонять почему... разбирался но все равно не нашел- глючит ikon.lib но где фиг знает... что там не того?

Всего записей: 808 | Зарегистр. 29-06-2002 | Отправлено: 23:38 26-06-2003
lynx



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

Цитата:
 где фиг знает... что там не того?

 

 
Господа! В субботу-воскресенье красиво оформлю вам этот хак. Потерпите (И не флеймите пока)

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 02:18 27-06-2003
Han_s



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
я туманно написал... все исправил глюк а теперь расскажите что делать чтобы не выкидывало в гостя

Всего записей: 808 | Зарегистр. 29-06-2002 | Отправлено: 02:41 27-06-2003
lynx



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

Цитата:
что делать чтобы не выкидывало в гостя

 
После чего тебя в гостя выкидывает?

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 11:47 27-06-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как и обещала - подробное описание установки хака поднятой темы.
 
 
1. В postings.cgi
 
Код:
 

Код:
 
    my %Mode = (  
    'edit'                 =>    \&editform,
    'lock'                 =>    \&lockthread,
    'unlock'               =>    \&unlockthread,        
    'delete'               =>    \&deletethread,
    'movetopic'            =>    \&movetopic,
    'edittopic'   => \&edit_topic_title
    );
 
   
 
Меняем на:
 

Код:
 
    my %Mode = (  
    'edit'                 =>    \&editform,
    'lock'                 =>    \&lockthread,
    'unlock'               =>    \&unlockthread,        
    'delete'               =>    \&deletethread,
    'movetopic'            =>    \&movetopic,
    'edittopic'       => \&edit_topic_title,
   'stick'                =>    \&sticktopic,
    'unstick'              =>    \&unsticktopic

);
 

 
 
Код:
 

Код:
 
    my $file = "$ikondir" . "forum$inforum/$intopic.pl";
    open (ENT, $file);
      flock ENT, 1;
    $in = <ENT>;
    close (ENT);
 
    #          Old title        Old description
 
    ($topicid, $old_topictitle, $old_topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$in);
 

 
Меняем на:
 

Код:
 
    my $file = "$ikondir" . "forum$inforum/$intopic.pl";
    open (ENT, $file);
    flock ENT, 1;
    $in = <ENT>;
    close (ENT);
    #          Old title        Old description
($topicid, $old_topictitle, $old_topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$in);
 
   
 
 
Код:
 

Код:
 
      open(FILE, ">$file");
        flock(FILE, 2);      # New Title    # New Description
        print FILE "$intopic|$intopictitle|$intopicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate";
        close(FILE);
 

 
Меняем на:
 

Код:
 
      open(FILE, ">$file");
        flock(FILE, 2);      # New Title    # New Description
        print FILE "$intopic|$intopictitle|$intopicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky";
        close(FILE);
 
         
 
 
Код:
 

Код:
 
                   my $file = "$ikondir" . "forum$inforum/$intopic.pl";
                    open (ENT, $file);
                      flock ENT, 1;
                    $in = <ENT>;
                    close (ENT);
 
                    ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$in);
                 
                    open(FILE, ">$file");  
flock(FILE, 2);  
$threadposts++;  
print FILE "$intopic|$topictitle|$topicdescription|closed|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate";  
close (FILE);  
                     
            } # end if inleavemessage eq yes
 
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open (ENT, $file);
          flock ENT, 1;
        $in = <ENT>;
        close (ENT);
 
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$in);
         
         
        my $file = "$ikondir" . "forum$movetoid/$newthreadnumber.pl";  
open(FILE, ">$file");  
flock(FILE, 2);  
print FILE "$newthreadnumber|$topictitle|$topicdescription|open|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate";  
close(FILE);
 

 
Меняем на:
 

Код:
 
   my $file = "$ikondir" . "forum$inforum/$intopic.pl";  
      open (ENT, $file);  
      flock ENT, 1;  
      $in = <ENT>;  
      close (ENT);  
($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$in);
 
     open(FILE, ">$file");  
     flock(FILE, 2);  
     $threadposts++;  
     print FILE "$intopic|$topictitle|$topicdescription|closed|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky";  
     close(FILE);  
   } # end if inleavemessage eq yes  
 
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";  
        open (ENT, $file);  
        flock ENT, 1;  
        $in = <ENT>;  
        close (ENT);  
($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$in);  
 
  my $file = "$ikondir" . "forum$movetoid/$newthreadnumber.pl";  
  open(FILE, ">$file");  
  flock(FILE, 2);  
  print FILE "$newthreadnumber|$topictitle|$topicdescription|open|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky";  
  close(FILE);        
 
   
 
Далее в том же файле в sub lockthread
 
Код:
 

Код:
 
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$in);
         
        open(FILE, ">$file");
          flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|closed|$threadposts|$threadviews|$startedby|$startedpostdate|$inmembername|$currenttime";
        close(FILE);
 

 
Меняем на:  
 

Код:
 
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky
) = split(/\|/,$in);
         
        open(FILE, ">$file");
          flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|closed|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky";
        close(FILE);
        [/code]                              
## Переменные |$inmembername|$currenttime  можно заметить на |$lastposter|$lastpostdate хотя отношения к поднятой теме это не имеет.
 
В sub unlockthread  
 
Код:        
 

Код:
 
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open (ENT, $file);
          flock ENT, 1;
        $in = <ENT>;
        close (ENT);
 
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$in);
         
        open(FILE, ">$file");
          flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|open|$threadposts|$threadviews|$startedby|$startedpostdate|$inmembername|$currenttime";
        close(FILE);
 

 
Меняем на:        
 

Код:
 
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open (ENT, $file);
          flock ENT, 1;
        $in = <ENT>;
        close (ENT);
($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$in);
         
        open(FILE, ">$file");
        flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|open|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky";
        close(FILE);
 

 
В sub deletepost  
 
Код:
 

Код:
 
       foreach $newline (@alltopics) { #start foreach @threads
        chomp($newline);
            ($tempno, $trash) = split(/\|/,$newline);
            if ($intopic eq $tempno) {
            $processed_data .= "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$postermembername2|$postdate2\n";
            }
         

 
Меняем на:
 

Код:
 
       foreach $newline (@alltopics) { #start foreach @threads
        chomp($newline);
            ($tempno, $trash) = split(/\|/,$newline);
            if ($intopic eq $tempno) {
            $processed_data .= "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$postermembername2|$postdate2|$sticky\n";
            }
 
   
 
 
И далее в конец файл posting.cgi добавляем две подпрограммы - поднятия темы (sub sticktopic)и опускания темы (sub unsticktopic):
 

Код:
 
sub sticktopic {
 
 &getmember("$inmembername");
 &moderator;
 $cleartoedit = "no";
  &mischeader("Поднятие темы");
    if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
    if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
    unless ($cleartoedit eq "yes") { $cleartoedit = "no"; }
        if ($cleartoedit eq "no" && $checked eq "yes") { &error("$ibtxt{'1553'}&$ibtxt{'0504'}"); }  
if (($cleartoedit eq "yes") && ($checked eq "yes")) {  
  my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open (ENT, $file);
        flock (ENT,2);
        $in = <ENT>;
        flock (ENT,8);
        close (ENT);
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$in);
        open(FILE, ">$file");
        flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|yes";
        flock(FILE, 8);
        close(FILE);
        rebuildLIST(-Forum=>"$inforum");
 
            $output .= qq~
            <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
            <tr>
            <td>
            <table cellpadding=6 cellspacing=1 border=0 width=100%>
            <tr>
            <td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc size=2><b>Поднятие темы</b></font></td></tr>
            <tr>
            <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1>
            <ul>
            <li><a href="$forumsprog?forum=$inforum">Вернуться в форум</a>
            <li><a href="$forumsummaryprog">Вернуться к списку форумов</a>
            </ul>
            </tr>
            </td>
            </table></td></tr></table>
            ~;
 
            } # end if clear to edit  
else {  
$inmembername =~ s/\_/ /g;  
$output .= qq~  
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>  
<tr><td>  
<table cellpadding=6 cellspacing=1 border=0 width=100%>  
<form action="$thisprog" method="post">  
<input type=hidden name="action" value="stick">  
<input type=hidden name="checked" value="yes">  
<input type=hidden name="forum" value="$inforum">  
<input type=hidden name="topic" value="$intopic">  
<tr>  
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><font face="$font" color=$fontcolormisc size=2><b>Введите данные, чтобы войти в режим модерации [ Поднятия темы ]</b></font></td></tr>  
<tr>  
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1>$ibtxt{'0306'}</font></td>  
<td bgcolor=$miscbackone valign=middle><input type=text name="membername" value="$inmembername" size=20></td></tr>  
<tr>  
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1>$ibtxt{'0307'}</font></td>  
<td bgcolor=$miscbackone valign=middle><input type=password name="password" value="$inpassword" size=20> </td></tr>  
<tr>  
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name="submit" value="$ibtxt{'0104'}"></form></td></tr></table></td></tr></table>  
~;  
}  
 
} # end sticktopic
 
###########################
 
sub unsticktopic {
 
    &getmember("$inmembername");
    &moderator;
    $cleartoedit = "no";
    &mischeader("Освобождение темы");
    if (($membercode eq "ad") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
    if (($inmembmod eq "yes") && ($inpassword eq $password)) { $cleartoedit = "yes"; }
    unless ($cleartoedit eq "yes") { $cleartoedit = "no"; }
        if ($cleartoedit eq "no" && $checked eq "yes") { &error("$ibtxt{'1554'}&$ibtxt{'0504'}"); }  
if (($cleartoedit eq "yes") && ($checked eq "yes")) {  
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open (ENT, $file);
        flock (ENT,2);
        $in = <ENT>;
        flock (ENT,8);
        close (ENT);
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$in);
        open(FILE, ">$file");
        flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|no";
        flock(FILE, 8);
        close(FILE);
        rebuildLIST(-Forum=>"$inforum");
 
            $output .= qq~
            <table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>
            <tr>
            <td>
            <table cellpadding=6 cellspacing=1 border=0 width=100%>
            <tr>
            <td bgcolor=$miscbacktwo valign=middle align=center><font face="$font" color=$fontcolormisc size=2><b>Освобождение темы</b></font></td></tr>
            <tr>
            <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1>
            <ul>
            <li><a href="$forumsprog?forum=$inforum">Вернуться в форум</a>
            <li><a href="$forumsummaryprog">Вернуться к списку форумов</a>
            </ul>
            </tr>
            </td>
            </table></td></tr></table>
            ~;
 
            } # end if clear to edit  
else {  
$inmembername =~ s/\_/ /g;  
$output .= qq~  
<table cellpadding=0 cellspacing=0 border=0 width=$tablewidth bgcolor=$tablebordercolor align=center>  
<tr><td>  
<table cellpadding=6 cellspacing=1 border=0 width=100%>  
<form action="$thisprog" method="post">  
<input type=hidden name="action" value="unstick">  
<input type=hidden name="checked" value="yes">  
<input type=hidden name="forum" value="$inforum">  
<input type=hidden name="topic" value="$intopic">  
<tr>  
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><font face="$font" color=$fontcolormisc size=2><b>Введите данные, чтобы войти в режим модерации [ Освобождение темы ]</b></font></td></tr>  
<tr>  
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1>$ibtxt{'0306'}</font></td>  
<td bgcolor=$miscbackone valign=middle><input type=text name="membername" value="$inmembername" size=20></td></tr>  
<tr>  
<td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1>$ibtxt{'0307'}</font></td>  
<td bgcolor=$miscbackone valign=middle><input type=password name="password" value="$inpassword" size=20> </td></tr>  
<tr>  
<td bgcolor=$miscbacktwo valign=middle colspan=2 align=center><input type=submit name="submit" value="$ibtxt{'0104'}"></form></td></tr></table></td></tr></table>  
~;  
}  
 
} # end unsticktopic
 
 
             
 
С файлом postings.cgi все.
 
2. Открываем файл forums.cgi
 
Код:
 

Код:
 
        foreach $topic (@topics[$startarray ... $endarray]) { # start topic foreach
                chomp $topic;
                ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$topic);
 

 
Меняем на:
 

Код:
 
       foreach $topic (@topics[$startarray ... $endarray]) { # start topic foreach
                chomp $topic;
 ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$topic);
 

 
После:
 

Код:
 
                                if (($threadposts < $hottopicmark) && ($forumlastvisit > $lastpostdate) && ($inmembername ne "$ibtxt{'0043'}")) {
                                        $topicicon = "<img src=\"$imagesurl\/images\/$topicnonew\" border=\"0\">";
 

 
Добавляем:
 

Код:
 
if (($sticky eq "yes")&& ($forumlastvisit < $lastpostdate)) {
 
$topicicon = "<img src=\"$imagesurl\/images\/stickyopen.gif\" border=\"0\">";
 if (($sticky eq "yes") && ($forumlastvisit > $lastpostdate)) {
 
$topicicon = "<img src=\"$imagesurl\/images\/stickynonew.gif\" border=\"0\">";
 
                        }
 

 
Код:
 

Код:
 
     if ($inmembername ne "$ibtxt{'0043'}") {
         
                $output .= qq~
                <tr>
                <td align=left><img src="$imagesurl/images/$topicnew" border="0"></td>
                <td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0608'}</font></td>
                </tr>
                <tr>
                <td align=left valign=middle><img src="$imagesurl/images/$topichot" border="0">&nbsp;<img src="$imagesurl/images/$topichotnonew" border="0"></td>
                <td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0609'} $hottopicmark $ibtxt{'0011'}</font></td>
                </tr>
                ~;
                }
                     if ($inmembername ne "$ibtxt{'0043'}") {
         
                $output .= qq~
                <tr>
                <td align=left><img src="$imagesurl/images/$topicnew" border="0"></td>
                <td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0608'}</font></td>
                </tr>
                <tr>
                <td align=left valign=middle><img src="$imagesurl/images/$topichot" border="0">&nbsp;<img src="$imagesurl/images/$topichotnonew" border="0"></td>
                <td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0609'} $hottopicmark $ibtxt{'0011'}</font></td>
                </tr>
                ~;
                }
 
                                                                     
 
Меняем на:
 

Код:
 
        if ($inmembername ne "$ibtxt{'0043'}") {
         
                $output .= qq~
                <tr>
                <td align=left><img src="$imagesurl/images/$topicnew" border="0"></td>
                <td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0608'}</font></td>
                </tr>
                <tr>
                <td align=left valign=middle><img src="$imagesurl/images/$topichot" border="0">&nbsp;<img src="$imagesurl/images/$topichotnonew" border="0"></td>
                <td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>$ibtxt{'0609'} $hottopicmark $ibtxt{'0011'}</font></td>
                </tr>
               <tr>
                <td align=left valign=middle><img src="$imagesurl/images/stickyopen.gif" border="0">&nbsp;<img src="$imagesurl/images/stickynonew.gif" border="0"></td>
                <td align=left><font face="$font" color=$fontcolormisc size=$dfontsize1>поднятая тема есть новые сообщения / нет новых сообщений</font></td>
                </tr>

                ~;
                }
                 
                           
 
 
 
3. Вы должны нарисовать картинки:
stickyopen.gif - поднятая тема, есть новые собщения
stickynonew.gif - поднятая тема, нет новых сообщений.
А также, если вам необходимо (в данном примере не реализовано), то картинку  
stickylocked.gif  - поднятая и закрытая тема.
Подробнее смотрите в этом посте.
Картинки надо бросить в папку /ikonboard/images/
 
 
4. Теперь открываем файл ikon.lib
В sub rebuildLIST
 
Код:
 

Код:
 
    foreach (@entry) {
        ($id, $tr) = split(/\./,$_);
        my $file = "$ikondir" . "forum$IN{-Forum}/$id.pl";
        open (TMP, "$file");
          flock (TMP, 1);
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split (/\|/,<TMP>);
        close (TMP);
        $rr = "$lastpostdate|$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter";
        push (@dat, $rr);
        }
               my @sortdat = sort {$b <=> $a} @dat;  
       undef @dat;  
        $checkdat = @sortdat;
        foreach (@sortdat) {
            chomp $_;
            ($lastpostdate, $topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter) = split (/\|/,$_);
            $processed_data .= "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate\n" if $topictitle;
 

 
Меняем на:
 

Код:
 
    foreach (@entry) {
        ($id, $tr) = split(/\./,$_);
        my $file = "$ikondir" . "forum$IN{-Forum}/$id.pl";
        open (TMP, "$file");
          flock (TMP, 1);
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split (/\|/,<TMP>);
        close (TMP);
        if ($sticky eq "yes") {
         $st = "$lastpostdate|$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$sticky";
          push (@stickposts, $st);
        }  
        else {
        $rr = "$lastpostdate|$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$sticky";
        push (@dat, $rr);
        }
        }
         
        ### New lines added for Sticky Topics - These next few lines were copied from SmilieMan's sticky topic hack.
       @stickydat = sort(@stickposts); undef @stickposts;
        @stickydat = reverse(@stickydat);

        my @sortdat = sort {$b <=> $a} @dat;
        undef @dat;
        $checkdat = @sortdat;
        foreach (@stickydat) {
            chomp $_;
            ($lastpostdate, $topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $sticky) = split (/\|/,$_);
            $processed_data .= "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky\n" if $lastpostdate;

        }
        foreach (@sortdat) {
            chomp $_;
            ($lastpostdate, $topicid, $topictitle, $topicdescription, $threadstate, $threadposts, $threadviews, $startedby, $startedpostdate, $lastposter, $sticky) = split (/\|/,$_);
    $processed_data .= "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate|$sticky\n" if $topictitle;
            }
 

 
 
5. Открываем файл post.cgi
 
В самом начале скрипта меняем:
 

Код:
 
for ('forum','topic','membername','password','action','postno','inshowsignature',
     'notify','inshowemoticons','previewfirst','intopictitle','intopicdescription',
     'inpost')
 

 
 
На:

Код:
 
for ('forum','topic','membername','password','action','postno','inshowsignature','notify','inshowemoticons','previewfirst','intopictitle','intopicdescription','inpost',[color]red]'instickytopic')  
 

 
Если установлен хак голосования, то меняем:
 

Код:
 
for ('forum','topic','membername','password','action','postno','inshowsignature','notify','inshowemoticons','previewfirst','intopictitle','intopicdescription','inpost','poll1','poll2','poll3','poll4','poll5','poll6','poll7','poll8','poll9','poll10','vote','topictitle','forumname')  
 

 
На:
 

Код:
 
for ('forum','topic','membername','password','action','postno','inshowsignature','notify','inshowemoticons','previewfirst','intopictitle','intopicdescription','inpost','instickytopic','poll1','poll2','poll3','poll4','poll5','poll6','poll7','poll8','poll9','poll10','vote','topictitle','forumname')  
 

 
После:
 

Код:
 
if ($inshowemoticons ne "yes") { $inshowemoticons eq "no"; }
if ($innotify ne "yes")        { $innotify eq "no"; }
 

 
Добавляем:
 

Код:
 
if ($instickytopic ne "yes") { $instickytopic eq "no"; }
 
                 
 
В sub newthread  
 
После:
 

Код:
 
    ### Lets sort out the flood control
 
    &getmember("$inmembername");
        if (($floodcontrol eq "on") && ($membercode ne "ad") && ($membercode ne "mo")) {
        $currenttime = time;
        ($lastpost, $posturl, $posttopic) = split(/\%\%\%/,$lastpostdate);
        $lastpost = ($lastpost + $floodcontrollimit);
            if ($lastpost > $currenttime)  {
                &error("$ibtxt{'1403'}&$ibtxt{'1404'} $floodcontrollimit $ibtxt{'1405'}");
                }
            }
 

 
Добавляем:
 

Код:
 
&moderator
&getmember("$inmembername");
if ($membercode eq "ad" || $inmembmod eq "yes")  
{
$stickopt = qq(<input type=checkbox name="instickytopic" value="yes">Поднять эту тему?<br>);
}
else
{
undef $stickopt
};
 

 
Код:
 

Код:
 
 <td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1><input type=checkbox name="inshowsignature" value="yes" checked>$ibtxt{'1426'}<br>
                $requestnotify
                $emoticonsbutton
                 

                 
Заменить на:
 

Код:
 
 <td bgcolor=$miscbacktwo valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1><input type=checkbox name="inshowsignature" value="yes" checked>$ibtxt{'1426'}<br>
                $requestnotify
                $emoticonsbutton
                $stickopt
                 

 
 
В sub addnewthread
 
Код:
 

Код:
 
        $filetoopen = "$ikondir" . "forum$inforum/$newthreadnumber.pl";
        $filetoopen = &stripMETA($filetoopen);
        open(FILE, ">$filetoopen");
          flock (FILE, 2);
        print FILE "$newthreadnumber|$intopictitle|$intopicdescription|open|0|0|$inmembername|$currenttime|$inmembername|$currenttime";
        close(FILE);
 

 
Заменить на:                                        
 

Код:
 
        $filetoopen = "$ikondir" . "forum$inforum/$newthreadnumber.pl";
        $filetoopen = &stripMETA($filetoopen);
        open(FILE, ">$filetoopen");
          flock (FILE, 2);
        print FILE "$newthreadnumber|$intopictitle|$intopicdescription|open|0|0|$inmembername|$currenttime|$inmembername|$currenttime|$instickytopic";
        close(FILE);
 

 
В sub reply  
 
После:
 

Код:
 
$requestnotify
$emoticonsbutton
 

 
 Добавить:

Код:
 
$stickopt
 
 
 
 
В sub addreply  
 
Код:
 

Код:
 
        my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open (ENT, $file);
          flock ENT, 1;
        $in = <ENT>;
        close (ENT);
         
        ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$in);
 

 
Заменить на:
 

Код:
 
      my $file = "$ikondir" . "forum$inforum/$intopic.pl";
        open (ENT, $file);
        flock ENT, 1;
        $in = <ENT>;
        close (ENT);
 ($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate,$lastposter,$lastpostdate,$sticky) = split(/\|/,$in);
 
               
 
В той же подпрограмме код:
 

Код:
 
        open(FILE, ">$file");
          flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$inmembername|$currenttime";
        close(FILE);
 

 
Меняем на:
 

Код:
 
        open(FILE, ">$file");
          flock(FILE, 2);
        print FILE "$intopic|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$inmembername|$currenttime|$sticky";
        close(FILE);
 
               
 
 
6. Последний редактируемый файл - topic.cgi
 
Код:
 

Код:
 
        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";
                 

 
Меняем на:
 

Код:
 
        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, $sticky) = split(/\|/,$line);
                $threadviews++; $keepcounter = $count;
                $linetokeep = "$topicid|$topictitle|$topicdescription|$threadstate|$threadposts|$threadviews|$startedby|$startedpostdate|$lastposter|$lastpostdate[color=red]|$sticky[/color";
                 
               
 
И после формы ответа в опциях модератирования:
 
Код:
 

Код:
 
&getmember($inmembername);
if ($membercode eq "ad" || $membercode eq "mo") {  
$output .= qq~
        <table cellspacing=3 cellpadding=0 width=$tablewidth align=center>
        <tr><td>
        <td valign=middle nowrap align=right><font face="$font" color=$menufontcolor size=$dfontsize1>
            $ibtxt{'3014'} <a href="$postingsprog?action=lock&forum=$inforum&topic=$intopic">$ibtxt{'3015'}</a> |  
            <a href="$postingsprog?action=edittopic&forum=$inforum&topic=$intopic">$ibtxt{'9999'}</a> |  
            <a href="$postingsprog?action=unlock&forum=$inforum&topic=$intopic">$ibtxt{'3016'}</a> |  
            <a href="$postingsprog?action=delete&forum=$inforum&topic=$intopic">$ibtxt{'3017'}</a> |  
            <a href="$postingsprog?action=movetopic&forum=$inforum&topic=$intopic">$ibtxt{'3018'}</a>
        </td>
    </tr>
    </table>
     

     
Меняем на:
 

Код:
 
&getmember($inmembername);
if ($membercode eq "ad" || $membercode eq "mo") {  
if ($sticky eq "yes") { $stickoption =qq~ <a href="$postingsprog?action=unstick&forum=$inforum&topic=$intopic">$ibtxt{'6035'}</a> ~;}
 
else { $stickoption =qq~ <a href="$postingsprog?action=stick&forum=$inforum&topic=$intopic">$ibtxt{'6036'}</a> ~;}
if ($membercode eq "ad" || $membercode eq "mo") {  
if ($threadstate eq "closed"){$block = qq~ <a href="$postingsprog?action=unlock&forum=$inforum&topic=$intopic">$ibtxt{'3016'}</a> |~;}
else {$block = qq~<a href="$postingsprog?action=lock&forum=$inforum&topic=$intopic">$ibtxt{'3015'}</a> |~;}
}
$output .= qq~
        <table cellspacing=3 cellpadding=0 width=$tablewidth align=center>
        <tr><td>
        <td valign=middle nowrap align=right><font face="$font" color=$menufontcolor size=$dfontsize1>
            $ibtxt{'3014'}  
            $block  
<a href="$postingsprog?action=edittopic&forum=$inforum&topic=$intopic">$ibtxt{'9999'}</a> |  
<a href="$postingsprog?action=delete&forum=$inforum&topic=$intopic">$ibtxt{'3017'}</a> |  
<a href="$postingsprog?action=movetopic&forum=$inforum&topic=$intopic">$ibtxt{'3018'}</a> |
$stickoption  
        </td>
    </tr>
    </table>
 
   
     
 
 
Это все. Тестите, если нет ошибок, положу в архив.                
 
Добавлено
Тот же текст упаковала и положила сюда.
 
Отдельно в txt-файле выложила подпрограммы sticktopic  и unsticktopic
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 04:19 29-06-2003 | Исправлено: lynx, 04:29 29-06-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Огромное спасибо тебе, киска, за труды...Наконец-то нашёлся человек, у которого дошли руки всё разложить по полочкам...
Нашёл ошибочку:

Цитата:
2. Открываем файл forums.cgi  
После:
 
                                if (($threadposts < $hottopicmark) && ($forumlastvisit > $lastpostdate) && ($inmembername ne "$ibtxt{'0043'}")) {  
                                        $topicicon = "<img src=\"$imagesurl\/images\/$topicnonew\" border=\"0\">";  
 
 
Добавляем:
 
if (($sticky eq "yes")&& ($forumlastvisit < $lastpostdate)) {  
 
$topicicon = "<img src=\"$imagesurl\/images\/stickyopen.gif\" border=\"0\">";  
 if (($sticky eq "yes") && ($forumlastvisit > $lastpostdate)) {  
 
$topicicon = "<img src=\"$imagesurl\/images\/stickynonew.gif\" border=\"0\">";  
                         }  

Появляется ошибка о пропущенной скобке...Но если даже её поставить, то новые картинки не видны, но зато грузится forums.cgi...Я сделал по аналогии уже имеющегося кода:

Код:
 
После:
if (($threadposts < $hottopicmark) && ($forumlastvisit > $lastpostdate) && ($inmembername ne "$ibtxt{'0043'}")) {
                                        $topicicon = "<img src=\"$imagesurl\/images\/$topicnonew\" border=\"0\">";
                                }
 
Добавил:
if (($sticky eq "yes") && ($forumlastvisit < $lastpostdate) && ($inmembername ne "$ibtxt{'0043'}")) {  
$topicicon = "<img src=\"$imagesurl\/images\/stickyopen.gif\" border=\"0\">";  
}
 if (($sticky eq "yes") && ($forumlastvisit > $lastpostdate) && ($inmembername ne "$ibtxt{'0043'}")) {  
$topicicon = "<img src=\"$imagesurl\/images\/stickynonew.gif\" border=\"0\">";  
                                        }

Теперь картинки поднятой темы становятся видны...Больше пока никаких проблем не обнаружил...
Думаю это надо исправить в первоначальном коде...
 
Добавлено
Ещё такой казус - после блокирования темы в колонке её обновлений выводится следующее:
1 Янв., 1970 - 3:00  
Автор:

После разблокировки то же самое...
Как это исправить?

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 16:41 04-07-2003 | Исправлено: Raw Rider, 17:58 04-07-2003
lynx



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

Цитата:
Ещё такой казус - после блокирования темы в колонке её обновлений выводится следующее:  
1 Янв., 1970 - 3:00  
Автор:  
После разблокировки то же самое...  
Как это исправить?  

 
Это, плиз, отдельной темой с приведением подпрограмм lockthread и  
unlockthread     из postings.cgi
 
А замечание твое по поводу стики поста, мы постестим, спасибо.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 02:45 05-07-2003
Raw Rider

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

Цитата:
Это, плиз, отдельной темой с приведением подпрограмм lockthread и  
unlockthread     из postings.cgi  

ОК, открою новую темку(а то что-то решения этой проблемы я не нашёл)...
 
По поднятию нашёл ещё один недочёт:
После поднятия темы у неё появляются свои картинки(с новыми постами и без) - всё ОК...Но если удалить последний пост, то картинка уже меняется на простую, и с добавлением новых постов ничего не меняется, т.е. тема всё также на верху, а вот картинки у неё обычной темы, не поднятой...В чём прикол?

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 15:32 05-07-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Теперь вообще фишка - совсем перестало работать поднятие, всё проходит нормально, пишет, что тема поднята, но тема так и остаётся на том же месте...

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 08:40 06-07-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Raw Rider
post.cgi мне покажи, плиз :)

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 10:25 06-07-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xnom
Я вроде бы сам разобрался, пока работает, так что ты извини за беспокойство...

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 15:41 06-07-2003 | Исправлено: Raw Rider, 17:25 06-07-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xnom
lynx
Нет, похоже это определённо глюк - после поднятия темы у неё появляются свои картинки(с новыми постами и без) - всё ОК...Но если удалить пост, то картинка уже меняется на простую, и с добавлением новых постов ничего не меняется, т.е. тема отвязывается, и картинки у неё становятся обычной темы, а не поднятой...В чём прикол?
Помогите разобраться...
Xnom На всякий случай я кинул тебе на ящик свой post.cgi...
Или нужен postings.cgi?

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 18:33 09-07-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Raw Rider
поймал, сегодня посмотрю.

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 18:40 09-07-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Raw Rider
топаем в postings.cgi, в sub deletepost {
там находим строки:

Код:
($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate) = split(/\|/,$linetokeep);

 
меняем на

Код:
($topicid, $topictitle, $topicdescription, $threadstate, $threadposts ,$threadviews, $startedby, $startedpostdate, $lastposter, $lastpostdate, $sticky) = split(/\|/,$linetokeep);

 
 

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 16:25 10-07-2003 | Исправлено: Xnom, 16:27 10-07-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Xnom
После удаления поста картинка поднятой темы остаётся, но теперь сразу после этой темы добавляется как бы ещё одна абсолютно пустая тема, т.е. нет ни названия, ни даты, ничего Может скинуть тебе свой postings.cgi?

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 16:40 11-07-2003 | Исправлено: Raw Rider, 23:04 17-07-2003
Raw Rider

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я обратил внимание, что глюк распространяется ещё и на не поднятые темы - в колонке обновлений остаётся инфа о уже удалённом пользователе(если он был последним)...
Помогите кто-нибудь

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 23:12 17-07-2003 | Исправлено: Raw Rider, 23:17 17-07-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9

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