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

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

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

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

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

Rick



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не подскажете, каким образом реализовать данный сабж? А то на форуме появилось несколько топиков, дико раздувающих ячейку своими номерами страниц
 
P.S. Может кто помнит, в каком топике обсуждалась возможность выводить все сообщения топика на одной странице? Искал, не нашел, что-то

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 22:33 15-01-2003
Grey2002



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

Цитата:
Может кто помнит, в каком топике обсуждалась возможность выводить все сообщения топика на одной странице? Искал, не нашел, что-то  

http://www.spam_detected/cgi-bin/board/sitemain.cgi?action=viewarticle&catid=2&artid=20

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

Всего записей: 1325 | Зарегистр. 24-12-2001 | Отправлено: 05:26 16-01-2003 | Исправлено: Grey2002, 01:07 17-01-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rick
Вот на что хватило моих сегодняшних знаний:
 
В forums.cgi
это

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

меняем на

Код:
 
if ($numberofitems > $maxthreads) { #if
                 
            if ($maxthreads < $numberofitems) { #2
                ($integer,$decimal) = split(/\./,$numberofpages);
                    if ($decimal > 0) { $numberofpages = $integer + 1; }
                        $pagestart = 0;
                        $counter = 0;
                        if ($numberofpages <= 10) { #if1
                        while ($numberofpages > $counter) { #3
                            $counter++;
                            $threadpages .= qq~<a href="$threadprog?forum=$inforum&topic=$topicid&start=$pagestart"> $counter </a>~;
                            $pagestart = $pagestart + $maxthreads;
                            } #e3
                          } #end if1  
                          else{ #else
                          $strpages = 5;
                          while ($strpages > $counter) { #else1
                            $counter++;
                            $threadpages2 .= qq~<a href="$threadprog?forum=$inforum&topic=$topicid&start=$pagestart"> $counter </a>~;
                            $pagestart = $pagestart + $maxthreads;
                            } #else1
                            $strpages2 = $numberofpages;
                            $pagestart2 = ($numberofpages - 5)*$maxthreads;
                            $counter2 = $numberofpages - 5;
                          while ($strpages2 > $counter2) { #else2
                            $counter2++;
                            $threadpages3 .= qq~<a href="$threadprog?forum=$inforum&topic=$topicid&start=$pagestart2"> $counter2 </a>~;
                            $pagestart2 = $pagestart2 + $maxthreads;
                            } #else2
                      $threadpages = "$threadpages2...$threadpages3";
                            } #else
                        } #e2
                    $pagestoshow = qq~<font face="$font" color=$forumfontcolor size=$dfontsize1> &nbsp;[ $ibtxt{'0605'}&nbsp;$threadpages ]~;
                    } #1

далее, после строк

Код:
$pagestoshow = undef;
$threadpages = undef;

добавить

Код:
$threadpages2 = undef;
$threadpages3 = undef;

 
Советую проверить это на локалке

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 18:53 16-01-2003 | Исправлено: Xnom, 05:26 19-01-2003
Rick



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Xnom
Спасибо, завтра проверю
 
Добавлено
Grey2002
Спасибо

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 21:09 16-01-2003
quasar



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

Цитата:
Вот на что хватило моих сегодняшних знаний:  

поменял на локалке. результат нулевой. в смысле "ничего не поменялось".

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 13:54 17-01-2003
Xnom



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

Цитата:
результат нулевой. в смысле "ничего не поменялось".

т.е. когда открываешь какой-либо форум, рядом с темой отображается бесконечное (но определенное ) число страниц?
Сколько страниц было в теме?
Это изменение должно показывать "5 первых страниц"..."5 последних страниц".
 
Добавлено
quasar
вот, только что на дефолтном форуме попробовал, получилось...
 

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 14:54 17-01-2003
Rick



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Xnom
Все работает! Спасибо!
 
quasar
Может не полностью код поменял? Оно не может не работать, если поменять код так, как указано, т.к. там меняется механизм вывода количества страниц.

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 15:59 17-01-2003
Rick



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А вот и первые грабли На локалке все ок... А вот залил в и-нет (valuehost) и пошли грабли... Все сокращается, только криво... пишется 1 2 3 4 5 1 2 3 4 5 .. 11 12 13 14 15 21 22 23 24 25...
Может нужно сделать undef какой-нить переменной?

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 22:14 17-01-2003
quasar



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а как сделать, чтобы было [ 1 2 3 ... 10 ]?

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 03:35 18-01-2003 | Исправлено: quasar, 03:36 18-01-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rick
Я сегодня ночью в инете проведу тест
 
quasar
Показывать три первых и одну последнюю?
 

Код:
 
if ($numberofitems > $maxthreads) { #if  
                 
            if ($maxthreads < $numberofitems) { #2  
                ($integer,$decimal) = split(/\./,$numberofpages);  
                    if ($decimal > 0) { $numberofpages = $integer + 1; }  
                        $pagestart = 0;  
                        $counter = 0;  
                        if ($numberofpages <= 10) { #if1  
                        while ($numberofpages > $counter) { #3  
                            $counter++;  
                            $threadpages .= qq~<a href="$threadprog?forum=$inforum&topic=$topicid&start=$pagestart"> $counter </a>~;  
                            $pagestart = $pagestart + $maxthreads;  
                            } #e3  
                          } #end if1  
                          else{ #else  
                          $strpages = 3;  
                          while ($strpages > $counter) { #else1  
                            $counter++;  
                            $threadpages2 .= qq~<a href="$threadprog?forum=$inforum&topic=$topicid&start=$pagestart"> $counter </a>~;  
                            $pagestart = $pagestart + $maxthreads;  
                            } #else1  
                            $strpages2 = $numberofpages;  
                            $pagestart2 = ($numberofpages - 1)*$maxthreads;  
                            $counter2 = $numberofpages - 1;  
                          while ($strpages2 > $counter2) { #else2  
                            $counter2++;  
                            $threadpages3 .= qq~<a href="$threadprog?forum=$inforum&topic=$topicid&start=$pagestart2"> $counter2 </a>~;  
                            $pagestart2 = $pagestart2 + $maxthreads;  
                            } #else2  
                      $threadpages = "$threadpages2...$threadpages3";  
                            } #else  
                        } #e2  
                    $pagestoshow = qq~<font face="$font" color=$forumfontcolor size=$dfontsize1> &nbsp;[ $ibtxt{'0605'}&nbsp;$threadpages ]~;  
                    } #1  

 
Добавлено
Rick

Цитата:
1 2 3 4 5 1 2 3 4 5 .. 11 12 13 14 15 21 22 23 24 25...  

Ты в коде что-то сам менял ?
Выложи свой forums.cgi куда-нибудь в txt формате

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



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Xnom
Менял, но только переменные отвечающие за количество вывода, т.е. По умолчанию там выводится по 5, 1,2,3,4,5, а мне нужно было 1,2,3,4... Но это не сути! На локалке все превосходно работает! Сейчас еще раз проверил! К сожалению, не могу показать сам глюк на форуме, т.к. народ его посещает и явно не поймет того, что это просто тестирование
А вот файл forums.txt:
http://www.rage-online.ru/forums.txt
 
Странные глюки, вот пример:

Цитата:
Gamma Ray  [ Стр.  1 2 3 4 ... 21 22 23 24 ]


Цитата:
А Вы слышали...?  [ Стр.  1 2 3 4 1 2 3 4 1 2 3 4 ... 21 22 23 24 9 10 11 12 12 13 14 15 ]

???
 
Добавлено
Нинаю, у меня смутные сомнения, что переменная не обнуляется и постоянно в нее пихается все новые и новые значения, что в итоге приводит к подобным приколам...
Вывод сделан по той причине, что перед топиком "А вы слышали" есть еще один топик, в котором тоже глюк... Ну и смотрим, что "А вы слышали", помимо собственных страниц показывает страницы "Прог метала"
 
Добавлено
Блин... Ру-борд тоже глючит, не дает редактировать сообщение 500 ошибка... в общем, вот список страниц топика между Гамма Рей и А вы слышали:
 

Цитата:
Progressive Metal (во всех проявлениях)  [ Стр.  1 2 3 4 1 2 3 4 ... 21 22 23 24 9 10 11 12 ]

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 13:31 18-01-2003
Xnom



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

Цитата:
Может нужно сделать undef какой-нить переменной

Ты был совершенно прав!
В forums.cgi после строк

Код:
$pagestoshow = undef;
$threadpages = undef;

добавь

Код:
$threadpages2 = undef;
$threadpages3 = undef;

Прошу прощения за допуск такой глупой ошибки

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 15:36 18-01-2003
Rick



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Xnom
Пасибки! Усе заработало Только советую поправить свой первый пост, точнее его дополнить, чтобы у людей лишних вопросов не возникало (вроде тех, что я задавал)
А может сию фишку в хак оформить? А то дело полезное, на самом-то деле!
 
P.S. А вообще странно... неужели у меня на локалке все переменные обнуляются в цикле, а на valuehost - нет?...

Всего записей: 1128 | Зарегистр. 07-08-2001 | Отправлено: 04:07 19-01-2003 | Исправлено: Rick, 04:14 19-01-2003
quasar



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
странно, но у меня ничего не меняется... бред какой-то...

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 08:10 19-01-2003
Xnom



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

Цитата:
у меня ничего не меняется

сколько страниц в теме? Замена срабатывает если страниц больше 10.

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 08:19 19-01-2003
quasar



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а если твой последний код поставить? (там где 3 первых и последняя) тоже надо 10 страниц?

Всего записей: 398 | Зарегистр. 29-01-2002 | Отправлено: 07:27 20-01-2003
Xnom



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

Код:
if ($numberofpages <= 10) { #if1  
 

Число (которое выделил красным) - это кол-во страниц в теме при котором срабатывает замена. Если хочешь, чтобы замена сработала при наличии пяти страниц - ставь 5.

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 08:04 20-01-2003
Открыть новую тему     Написать ответ в эту тему

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