silencess
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Участники конференции сами могут вибирать колличество постов на страницу: Для версии: 3.1.2a Авторство принадлежит: Sly необходимые файлы: cgi-bin/Database/config/member_profile.cfg cgi-bin/Sources/Profile.pm cgi-bin/Sources/Topic.pm cgi-bin/Sources/UserCP/Menu.pm cgi-bin/Skin/Default/MenuView.pm ------ необхобимо создать запись вSQL: Код: ALTER TABLE `ib_member_profiles` ADD `NUM_VIEW_POSTS` INT( 3 ) ; | ------ member_profiles.cfg найдите: Код: # added by kevaholic00 "POST_FONT_COLOR" => [40, 'string', 15 ], # end add | и добавьте перед # end add: Код: "NUM_VIEW_POSTS" => [41, 'num', 3 ], | сохраните и загрузите. ------ Profile.pm Найдите: Код: PM_REMINDER => $email_pm.'&'.$iB::IN{'DO_POPUP'} | и измените на: Код: PM_REMINDER => $email_pm.'&'.$iB::IN{'DO_POPUP'}, NUM_VIEW_POSTS => $iB::IN{'NUM_VIEW_POSTS'} | сохраните и загрузите ------ Topic.pm Найдите примерно на строке 284: Код: $obj->{'TOPIC'}->{'SHOW_PAGES'} = $std->build_pagelinks( TOTAL_POSS => ($obj->{'TOPIC'}->{'TOPIC_POSTS'}+1), PER_PAGE => $iB::INFO->{'DISPLAY_MAX_POSTS'}, CUR_ST_VAL => $iB::IN{'st'}, L_SINGLE => $Topic::lang->{'single_page_topic'}, L_MULTI => $Topic::lang->{'multi_page_topic'}, BASE_URL => "$iB::INFO->{'BOARD_URL'}/ikonboard.$iB::INFO->{'CGI_EXT'}?s=$iB::SESSION;act=ST;f=$obj->{'FORUM'}->{'FORUM_ID'};t=$obj->{'TOPIC'}->{'TOPIC_ID'}", ); | и замените: Код: my $posts_per_page; if ($iB::MEMBER->{'NUM_VIEW_POSTS'} >0){ $posts_per_page=$iB::MEMBER->{'NUM_VIEW_POSTS'}}else{ $posts_per_page = $iB::INFO->{'DISPLAY_MAX_POSTS'} }; $obj->{'TOPIC'}->{'SHOW_PAGES'} = $std->build_pagelinks( TOTAL_POSS => ($obj->{'TOPIC'}->{'TOPIC_POSTS'}+1), PER_PAGE => $posts_per_page, CUR_ST_VAL => $iB::IN{'st'}, L_SINGLE => $Topic::lang->{'single_page_topic'}, L_MULTI => $Topic::lang->{'multi_page_topic'}, BASE_URL => "$iB::INFO->{'BOARD_URL'}/ikonboard.$iB::INFO->{'CGI_EXT'}?s=$iB::SESSION;act=ST;f=$obj->{'TOPIC'}->{'FORUM_ID'};t=$obj->{'TOPIC'}->{'TOPIC_ID'}", ); | затем ищите следующее примерно на строке 336: Код: RANGE => $First.' to '.($iB::INFO->{'DISPLAY_MAX_POSTS'} + ($First - 1)), | замените на: Код: RANGE => $First.' to '.($posts_per_page + ($First - 1)), | сохраните и загрузите ------ Menu.pm Найдите примерно на строке 330: Код: my $time = $std->get_date( TIME => time, METHOD => 'LONG'); | и перед ним добавьте (здесь задаете колличество постов, можете изменить на свои если хотите): Код: my $view_posts = qq!<select name='NUM_VIEW_POSTS' class='forminput'> <option value='0'>Default</option> <option value='5'>5</option> <option value='10'>10</option> <option value='20'>20</option> <option value='40'>40</option> !; $view_posts =~ s!value='$iB::MEMBER->{'NUM_VIEW_POSTS'}'>!value='$iB::MEMBER->{'NUM_VIEW_POSTS'}' selected>!; $view_posts .= "</select>"; | затем найдите несколькими строками ниже: Код: $obj->{'.html'} .= MenuView::settings_header($iB::MEMBER, $time_select, $time, $lang_select); | и замените на: Код: $obj->{'.html'} .= MenuView::settings_header($iB::MEMBER, $time_select, $time, $lang_select, $view_posts); | созхраните и загрузите ------ MenuView.pm найдите: Код: my ($Profile, $time_select, $time, $lang_select) = @_; | замените на: Код: my ($Profile, $time_select, $time, $lang_select, $view_posts) = @_; | далее ищите: Код: <tr> <td bgcolor='$iB::SKIN->{'MISCBACK_ONE'}' nowrap><b>$UserCP::lang->{'settings_time_txt'}</b></font> <span id='highlight'>$time</span></td> <td bgcolor='$iB::SKIN->{'MISCBACK_ONE'}' width='70%' align='left'>$time_select $UserCP::lang->{'settings_hour'}</td> </tr> | и ниже добавьте: Код: <tr> <td bgcolor='$iB::SKIN->{'MISCBACK_TITLE'}' colspan='2' id='titlelarge'><b>Колличество постов на страницу</b></td> </tr> <tr> <td bgcolor='$iB::SKIN->{'MISCBACK_ONE'}' width='30%' align='left'><b>Выбрать равным:</b></td> <td bgcolor='$iB::SKIN->{'MISCBACK_ONE'}' width='70%' align='left'>$view_posts</td> </tr> | сохраните и загрузите Теперь можете проверить модификацию зайдя в: Панель управления->Настройки аккаунта ============================================== важное дополнение и небольшой багфикс необходимые файлы: cgi-bin/Sources/Forum.pm ------ Forum.pm найдите: Код: my $Pages = ($topic->{'TOPIC_POSTS'} + 1) / $iB::INFO->{'DISPLAY_MAX_POSTS'}; my ($Int, $Dec) = split /\./,$Pages; $Dec > 0 ? ($Pages = $Int + 1) : ($Pages = $Int); $Pages = 1 if $Pages < 1; if ($Pages > 1) { $topic->{'PAGES'} = qq[<span id="small">($Forum::lang->{topic_sp_pages} ]; my $i = 0; for(0 .. $Pages-1) { my $RealNo = $i * $iB::INFO->{'DISPLAY_MAX_POSTS'}; my $PageNo = $i + 1; if ($PageNo == 4) { $topic->{'PAGES'} .= qq[<a href='$iB::INFO->{'BOARD_URL'}/ikonboard.$iB::INFO->{'CGI_EXT'}?s=$iB::SESSION;act=ST;f=$iB::IN{'f'};t=$topic->{'TOPIC_ID'};st=] . ($Pages - 1) * $iB::INFO->{'DISPLAY_MAX_POSTS'} . qq['>..$Pages </a>]; last; } $topic->{'PAGES'} .= qq[<a href='$iB::INFO->{'BOARD_URL'}/ikonboard.$iB::INFO->{'CGI_EXT'}?s=$iB::SESSION;act=ST;f=$iB::IN{'f'};t=$topic->{'TOPIC_ID'};st=$RealNo'>$PageNo </a>]; ++$i; } $topic->{'PAGES'} .= qq[)</span>]; } $topic->{'TOPIC_POSTS'} = 0 if $topic->{'TOPIC_POSTS'} < 0; # Do the quick goto last page icon stuff my $maxpages = ($Pages - 1) * $iB::INFO->{'DISPLAY_MAX_POSTS'}; | замение на: Код: my $posts_per_page; if ($iB::MEMBER->{'NUM_VIEW_POSTS'} >0){ $posts_per_page=$iB::MEMBER->{'NUM_VIEW_POSTS'}}else{ $posts_per_page = $iB::INFO->{'DISPLAY_MAX_POSTS'} }; my $Pages = ($topic->{'TOPIC_POSTS'} + 1) / $posts_per_page; my ($Int, $Dec) = split /\./,$Pages; $Dec > 0 ? ($Pages = $Int + 1) : ($Pages = $Int); $Pages = 1 if $Pages < 1; if ($Pages > 1) { $topic->{'PAGES'} = qq[<span id="small">($Forum::lang->{topic_sp_pages} ]; my $i = 0; for(0 .. $Pages-1) { my $RealNo = $i * $posts_per_page; my $PageNo = $i + 1; if ($PageNo == 4) { $topic->{'PAGES'} .= qq[<a href='$iB::INFO->{'BOARD_URL'}/ikonboard.$iB::INFO->{'CGI_EXT'}?s=$iB::SESSION;act=ST;f=$iB::IN{'f'};t=$topic->{'TOPIC_ID'};st=] . ($Pages - 1) * $posts_per_page . qq['>..$Pages </a>]; last; } $topic->{'PAGES'} .= qq[<a href='$iB::INFO->{'BOARD_URL'}/ikonboard.$iB::INFO->{'CGI_EXT'}?s=$iB::SESSION;act=ST;f=$iB::IN{'f'};t=$topic->{'TOPIC_ID'};st=$RealNo'>$PageNo </a>]; ++$i; } $topic->{'PAGES'} .= qq[)</span>]; } $topic->{'TOPIC_POSTS'} = 0 if $topic->{'TOPIC_POSTS'} < 0; # Do the quick goto last page icon stuff my $maxpages = ($Pages - 1) * $posts_per_page; | сохраните и загрузите теперь все наслаждайтесь | Всего записей: 211 | Зарегистр. 07-01-2003 | Отправлено: 19:00 11-06-2005 | Исправлено: silencess, 19:02 11-06-2005 |
|