如何在PHP中“限制”论坛/博客的页码

时间:2013-06-12 21:03:45

标签: php

我正在尝试修复一些我不熟悉且不知道如何继续的事情。我正在工作的论坛假设在“TOP 50”下只显示评论最多的主题(2页25个主题),但它显示所有主题(25个),没有任何页面限制。我只需要前两页 - 但不知道如何摆脱其他页面?

我甚至不确定以下代码是否是负责任的代码,但如果您看到任何解决方案,请查看并给我一个提示。

这是代码:

   {
      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;

2 个答案:

答案 0 :(得分:0)

我认为你可以在那里检查If($ total_pages&gt; 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;
  }

答案 1 :(得分:-1)

“非常感谢 - 非常有帮助!在显示第1页时,您是否进一步了解为什么两个页面都显示为活动状态(页面计数器显示为活动状态)?Page 2很好,只有第2页显示活动...”

$ class变量保持设置,你需要有一个else将类设置为空字符串

  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>";
  }