1

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

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

这是代码:

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

2 回答 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;
  }
于 2013-06-12T21:11:45.017 回答
-1

“非常感谢 - 很大的帮助!您是否进一步了解为什么在显示第 1 页时两个页面都显示为活动状态(页面计数器显示两个都处于活动状态)?第 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>";
  }
于 2013-06-12T22:46:54.200 回答