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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки

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

quasar



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


После редактирования сообщения возврат к нему,
а не на последнюю страницу

 
По умолчанию после редактирования сообщения происходит редирект на первую страницу темы. Это не удобно, особенно если тема многостраничная.
 
Чтобы редирект происходил на редактируемое сообщение, делаем следующее.
В файле postings.cgi  в sub processedit
 
Найти код:
 

Код:
 
 $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";  
            open(FILE, ">$filetoopen");  
            flock(FILE, 2);  
            print FILE $processed_data;  
            close(FILE);  
            undef $processed_data;  
            &mischeader("$ibtxt{'1542'}");  
 

 
После него добавить:
 

Код:
 
my $nfp = ((int(($postno-1) / $maxthreads))* $maxthreads);  
$relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$nfp#$postno";  

 

 
 
Аналогичным образом можно организовать  
переход после удаления сообщения к месту, где оно было

 
В файле postings.cgi в sub deletepost
 
После кода:
 

Код:
 
        require "$ikondir" . "data/boardstats.cgi";
         
        $filetomake = "$ikondir" . "data/boardstats.cgi";
        $totalposts--;
        open(FILE, ">$filetomake");
         flock(FILE, 2);
        print FILE "\$lastregisteredmember = \"$lastregisteredmember\"\;\n";
        print FILE "\$totalmembers = \"$totalmembers\"\;\n";
        print FILE "\$totalthreads = \"$totalthreads\"\;\n";
        print FILE "\$totalposts = \"$totalposts\"\;\n";
        print FILE "\n1\;";
        close (FILE);
             
            &mischeader("$ibtxt{'1512'}");

 
 
Добавить:
 

Код:
 
my $nfp = ((int(($postno-1) / $maxthreads))* $maxthreads);  
$relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$nfp#$postno";  

 

 
 
Аналогичным образом можно организовать все редиректы после всех процедур модерирования, кроме удаления темы.

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 03:07 29-11-2002 | Исправлено: lynx, 16:34 25-06-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Посмотрел как работает редирект в post.cgi и сделал подобно...
Открываешь postings.cgi и в "sub processedit {"
это

Код:
 
&mischeader("$ibtxt{'1542'}");
            my $gotopage = ($pagestart - $maxthreads);
            $gotopage = 0 unless $gotopage > 0;
            $relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$gotopage";

             
меняй на

Код:
 
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);
             
 
            &mischeader("$ibtxt{'1542'}");
             
           
           my $perehod = ((int($threadposts / $maxthreads))*$maxthreads);
            $relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$perehod";

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 04:12 29-11-2002
quasar



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

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 14:15 29-11-2002
HoLoD



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quasar
А что значит
Цитата:
Переходит на первую
что то я не понял. Я вот тоже хотел хак, редактирование сообщения и после сохранения что бы оно подниалось на самый вверх и на главной сранице где обналения сообщений оно тоже появлялось. Может кто поможет с таким хаком?

Всего записей: 829 | Зарегистр. 21-08-2001 | Отправлено: 01:25 12-02-2003
lynx



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

Цитата:
 Я вот тоже хотел хак, редактирование сообщения и после сохранения что бы оно подниалось на самый вверх

 
http://forum.ru-board.com/topic.cgi?forum=21&topic=1554#1
 
Зачем только?

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

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

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 17:33 10-05-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Raw Rider
 
postings.cgi
 
sub processedit
 
 
После:
 
   $filetoopen = "$ikondir" . "forum$inforum/$intopic.thd";
            open(FILE, ">$filetoopen");
            flock(FILE, 2);
            print FILE $processed_data;
            close(FILE);
            undef $processed_data;
            &mischeader("Редактирование");
 
Написать:
 
my $nfp = ((int(($postno-1) / $maxthreads))* $maxthreads);  
$relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$nfp#$postno";  
 
 
 
Или перед
$relocurl = ....
 
Написать:
my $nfp = ((int(($postno-1) / $maxthreads))* $maxthreads);  
и релокурл поправить.

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

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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ещё такой вопрос - как подредактировать "sub deletepost", чтобы после удаления постов возврат был на ту же самую страницу?...  
lynx, может ты снова выручишь?!
Заранее благодарю...

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 14:42 31-05-2003 | Исправлено: Raw Rider, 16:26 01-06-2003
lynx



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

Цитата:
Ещё такой вопрос - как подредактировать "sub deletepost", чтобы после удаления постов возврат был на ту же самую страницу?...

 
Дак тот же код в то же место
 
Это:
 
my $nfp = ((int(($postno-1) / $maxthreads))* $maxthreads);  
$relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$nfp#$postno";  
 
После:
 
        require "$ikondir" . "data/boardstats.cgi";
        $filetomake = "$ikondir" . "data/boardstats.cgi";
        $totalposts--;
        open(FILE, ">$filetomake");
        flock(FILE, 2);
        print FILE "\$lastregisteredmember = \"$lastregisteredmember\"\;\n";
        print FILE "\$totalmembers = \"$totalmembers\"\;\n";
        print FILE "\$totalthreads = \"$totalthreads\"\;\n";
        print FILE "\$totalposts = \"$totalposts\"\;\n";
        print FILE "\n1\;";
        close (FILE);
        &mischeader("Удаление");
 
или перед (что, впрочем, одно и то же):
 
        $output .= qq~
 
<table cellpadding=0 cellspacing=0 border=0 width="90%" bgcolor=$tablebordercolor align=center>
            <tr>    
            <td>
            <table cellpadding=6 cellspacing=1 border=0 width=100%>
            <tr>
            <td bgcolor=$miscbacktwo valign=middle><div class="anonce">Сообщение удалено</div></td></tr>
 
То есть перед тем, как выводится страница с редиректом.
 
 
У тебя будет чуть другой код.
 
Ты будешь возвращаться в таком случае не просто на ту же страницу, а в то же место, где раньше было сообщение.

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

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

Цитата:
Ты будешь возвращаться в таком случае не просто на ту же страницу, а в то же место, где раньше было сообщение.

Спасибо тебе, я понял...По ходу эта процедура может быть одна и та же для всех редиректов...

Всего записей: 98 | Зарегистр. 14-03-2003 | Отправлено: 19:44 02-06-2003
lynx



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

Цитата:
По ходу эта процедура может быть одна и та же для всех редиректов...

 
Правильно! Кроме удаления темы

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



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Попытался поставить хак, но ничего не выходит переходит на первую страницу у первому сообщению, аналогично и с
Цитата:
переход после удаления сообщения к месту, где оно было

Вот мои файлы:
postings.txt

Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 18:43 24-02-2005
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Paha_W  Попробуй закоментировать эти строчки  

Цитата:
$gotopage = 0 unless $gotopage > 0;
            $relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$gotopage";

PS: Отбери один рабочий скрипт и только после этого ставь дальше....

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 19:29 24-02-2005
Paha_W



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
trew
Закоментировал и ничего код теперь такой:

Код:
 
&mischeader("$ibtxt{'1542'}");
            my $nfp = ((int(($postno-1) / $maxthreads))* $maxthreads);    
            $relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$nfp#$postno";
            my $gotopage = ($pagestart - $maxthreads);
           # $gotopage = 0 unless $gotopage > 0;
           # $relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$gotopage";
                       
            $output .= qq~
 


Всего записей: 440 | Зарегистр. 26-05-2004 | Отправлено: 20:28 24-02-2005
Rikimaru



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никакой из выше описанных способов не сработал у меня. Вот, попытался смастерить сам. Собственно вся система переноса к последней странице темы скопирована из post.cgi и адоптирована под postings.cgi.
 
В postings.cgi находим (в sub deletepost } )  эту строку:

Цитата:
&mischeader("$ibtxt{'1512'}");
(опцию удаления сообщения)
и над этим, последней строкой должно быть это -
Цитата:
close (FILE);

Следом после этого ставим вот этот кусок(скопирован из post.cgi):

Цитата:
$numberofitems = $threadposts + 1;
        $numberofpages = $numberofitems / $maxthreads;
 
        if ($numberofitems > $maxthreads) { #if
            if ($maxthreads < $numberofitems) { #2
                ($integer,$decimal) = split(/\./,$numberofpages);
                    if ($decimal > 0) { $numberofpages = $integer + 1; }
                        $pagestart = 0;
                        $counter = 0;
                        while ($numberofpages > $counter) { #3
                            $counter++;
                            $threadpages .= qq~<a href="$threadprog?forum=$inforum&topic=$topicid&start=$pagestart"> $counter </a>~;
                            $pagestart = $pagestart + $maxthreads;
                            } #e3
                        } #e2
                    $pagestoshow = qq~<font face="$font" color=$forumfontcolor size=$dfontsize1> &nbsp;[ $ibtxt{'0605'}&nbsp;$threadpages ]~;
                    } #1

 
И сразу же ниже просто меняем этот кусок:
 

Цитата:
&mischeader("$ibtxt{'1512'}");
             
 
            $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>$ibtxt{'1541'}</b></font></td></tr>
            <tr>
            <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=1>
            $ibtxt{'1004'}:
            <ul>
            <li><a href="$threadprog?forum=$inforum&topic=$intopic">$ibtxt{'1532'}</a>
            <li><a href="$forumsprog?forum=$inforum">$ibtxt{'0509'}</a>
            <li><a href="$forumsummaryprog">$ibtxt{'0323'}</a>
            </ul>
            </tr>
            </td>
            </table></td></tr></table>
            ~;
 
            } # end if clear to edit
             
            else { &error("$ibtxt{'1530'}&$ibtxt{'1533'}"); }
 
 
 
} # end subdelete

 
 
На этот:
 
 
 

Цитата:
&mischeader("$ibtxt{'1512'}");
 
        my $gotopage = ($pagestart - $maxthreads);
           $gotopage = 0 unless $gotopage > 0;
        $relocurl = "$threadprog?forum=$inforum&topic=$intopic&start=$gotopage";
           
                                 
        $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=$dfontsize2><b>$ibtxt{'1541'}</b></font></td></tr>
            <tr>
            <td bgcolor=$miscbackone valign=middle><font face="$font" color=$fontcolormisc size=$dfontsize1>
            $ibtxt{'1004'}
            <ul>
            <li><a href="$threadprog?forum=$inforum&topic=$intopic&start=$gotopage">$ibtxt{'1532'}</a> $pagestoshow
            <li><a href="$forumsprog?forum=$inforum">$ibtxt{'0509'}</a>
            <li><a href="$forumsummaryprog">$ibtxt{'0323'}</a>
            </ul>
            </tr>
            </td>
            </table></td></tr></table>
<meta http-equiv="refresh" content="6; url=$relocurl">
            ~;
             
     rebuildLIST(-Forum=>"$inforum");      
 
      } # end if clear to edit
             
            else { &error("$ibtxt{'1530'}&$ibtxt{'1533'}"); }
 
} # end subdelete

 
 
 
 
Тестировал - работает.  
 
 
 
 

Всего записей: 15 | Зарегистр. 15-04-2005 | Отправлено: 21:00 09-05-2005 | Исправлено: Rikimaru, 22:09 19-05-2005
Открыть новую тему     Написать ответ в эту тему

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