2013-06-12 3 views
1

Я пытаюсь исправить что-то, с чем я не знаком и не знаю, как действовать. Форум, на котором я работаю, должен показывать в разделе «ТОП-50» только самые комментируемые темы (2 страницы по 25 темам), но он показывает все темы (на 25) без каких-либо ограничений на страницы. Мне нужны только первые 2 страницы - но не знаете, как избавиться от остальных?Как я могу «ограничить» номера страниц форума/блога в PHP

Я даже не уверен, что приведенный ниже код является ответственным, но, пожалуйста, взгляните и дайте мне подсказку, если увидите какое-либо решение.

Это код:

{ 
     public function __construct() 
    { 
     parent::__construct(); 
     } 

    public function get_forum() 
    { 
if ($_GET['l'] && ($_GET['l'] == 'leng' || $_GET['l'] == 'lrus' || $_GET['l'] == 'lde' || $_GET['l'] == 'ltr')) 
    $l = substr($_GET['l'], 1); 
else 
    $l = 'eng'; 

(isset($_GET['num'])) ? $page = intval($_GET['num']) : $page = 1; 

$id_user = intval($_SESSION['user_id']); 
$lang = language::getLang(); 

if ($_GET['el']) { 
    switch ($_GET['el']) { 
    case 'categories': 
     return $this->getCategories($l); 
     break; 
    case 'top': 
     $top_lang = $_GET['ln']; 

     $c = $this->db->selectAssoc($this->db->Select('*', 'forum_categories ,forum_thems', "`forum_categories`.`lang` = '" . $l 
     . "' AND `forum_thems`.`id_categories` = `forum_categories`.`id`")); 
     $total_pages = count($c)/25; 
     $p = "<div class=\"pageCounter_box\">Pages:"; 
     if (empty($_GET['p'])) { 
     $_GET['p'] = 1; 
     } 
     for($i=1; $i<$total_pages+1; $i++){ 
     if ($i == $_GET['p']) { 
      $class = 'class="active_page"'; 
     } 
     $p .= "<a href=\"$top_lang/smoke/{$_GET['l']}/top?p=$i\" $class>$i</a>"; 
     } 
     $p .= "</div>"; 
     return $this->getTop($l) . $p; 


     break; 
+0

Я думаю, что вы могли бы сделать чек там из Если ($ total_pages> 2) {$ total_pages = 2}; –

ответ

0

Я думаю, что вы могли бы сделать чек там из If ($ total_pages> 2) {$ total_pages = 2};

$c = $this->db->selectAssoc(
    $this->db->Select('*', 'forum_categories ,forum_thems', "`forum_categories`. 
         `lang` = '" . $l. "' AND `forum_thems`. 
         `id_categories` = `forum_categories`.`id`")); 
    $total_pages = count($c)/25; 
    if ($total_pages >2) { //limit to two pages 
     $total_pages = 2; 
    } 
    $p = "<div class=\"pageCounter_box\">Pages:"; 
    if (empty($_GET['p'])) { 
    $_GET['p'] = 1; 
    } 
+0

Привет Сет, спасибо большое - отличная помощь! Вы также видите, почему обе страницы могут показывать активную (счетчик страниц показывает как активные) при показе страницы 1? Стр. 2 в порядке, там только активны ... –

-1

«Большое спасибо -!? Очень помогает ли вы, кроме того, почему обе страницы могут отображаться активный (счетчик страниц показывает, как активная) при отображении страницы 1 Page 2 отлично, есть только Page 2 показывает активный .. .»

переменной $ класс гостит установлен, вам нужно иметь еще, что устанавливает класс в пустую строку

for($i=1; $i<$total_pages+1; $i++){ 
    if ($i == $_GET['p']) { 
     $class = 'class="active_page"'; 
    } else { 
     $class = ''; 
    } 
    $p .= "<a href=\"$top_lang/smoke/{$_GET['l']}/top?p=$i\" $class>$i</a>"; 
    } 
+2

Вы должны удалить этот ответ и вместо этого отредактировать исходный ответ. –

+0

Nah ... это другая проблема. Какая разница для вас? –

+0

Привет, Сет, большое спасибо - ты решил мою эмблему! Я пытался принять оба ответа, но я могу «щелкнуть» только по одному в то время ... Но еще раз спасибо! –

Смежные вопросы