From 36c22549e792018862a2650708c204b7e75ec5c4 Mon Sep 17 00:00:00 2001 From: Krivchikov Dmitry Date: Tue, 23 Feb 2016 23:30:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D0=B0=D0=B3=D0=B8=D0=BD=D0=B0=D1=86=D0=B8=D1=8E=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B=20?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=B5=D0=BA=20=D0=BF=D0=BE=20=D0=BA=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D0=B3=D0=BE=D1=80=D0=B8=D1=8F=D0=BC=20=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/PageController.php | 45 ++++++++++++++++++---------------- views/pointsTemplate.php | 2 +- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/controllers/PageController.php b/controllers/PageController.php index 7e05503..f65225b 100644 --- a/controllers/PageController.php +++ b/controllers/PageController.php @@ -41,7 +41,16 @@ class PageController extends Controller // ------------------------------------------ $param = array(); - $param['where'] = '`status` = "published" AND `categoryId` NOT IN ('. implode(',', Category::$paidIds).')'; + $param['order'] = '`ord` ASC'; + + if (App::getParam('category')) { + $param['where'] = 'categoryId = ' . (int) App::getParam('category') . ' AND `status` = "published"'; + } else if (App::getParam('user')) { + $param['where'] = '`author` = ' . (int) App::getParam('user') . ' AND `status` = "published"'; + } else { + $param['where'] = '`status` = "published" AND `categoryId` NOT IN ('. implode(',', Category::$paidIds).')'; + } + $pointsCount = Point::model()->getCount($param); $pagesCount = intval(ceil($pointsCount/self::elementsByPage)); $fullPagesCount = intval(floor($pointsCount/self::elementsByPage)); @@ -55,12 +64,16 @@ class PageController extends Controller $pages = array(); - for ($index = $pagesCount; $index > $pagesCount-3; $index--) { + // Заполняем страницы от большей к меньшей - добавляем 3 штуки + for ($index = $pagesCount; (($index > $pagesCount-3) && ($index > 0)); $index--) { $pages[$index] = 1; } - for ($index = 3; $index > 0; $index--) { - $pages[$index] = 1; + // Заполняем страницы от 3 к 1 - добавляем 3 штуки + if ($pagesCount >= 3) { + for ($index = 3; $index > 0; $index--) { + $pages[$index] = 1; + } } if ($page > $pagesCount) { @@ -69,33 +82,23 @@ class PageController extends Controller $page = 1; } + // Заполняем страницы вокруг текущей. +/- 2 штуки. $topIndex = ($page+2 > $pagesCount) ? $pagesCount : $page+2; $bottomIndex = ($page-3 < 1) ? 1 : $page-3; - for ($index = $topIndex; $index > $bottomIndex; $index--) { $pages[$index] = 1; } krsort($pages); - $param = array(); - $param['order'] = '`ord` ASC'; - if (App::getParam('category')) { - $param['where'] = 'categoryId = ' . (int) App::getParam('category') . ' AND `status` = "published"'; - } else if (App::getParam('user')) { - $param['where'] = '`author` = ' . (int) App::getParam('user') . ' AND `status` = "published"'; + if ($page == $pagesCount && $residue < self::minElementsByPage) { + $param['limit'] = self::elementsByPage + $residue; } else { - $param['where'] = '`status` = "published" AND `categoryId` NOT IN ('. implode(',', Category::$paidIds).')'; + $param['limit'] = self::elementsByPage; + } - if ($page == $pagesCount && $residue < self::minElementsByPage) { - $param['limit'] = self::elementsByPage + $residue; - } else { - $param['limit'] = self::elementsByPage; - } - - if($page) { - $param['offset'] = self::elementsByPage * ($page - 1); - } + if($page) { + $param['offset'] = self::elementsByPage * ($page - 1); } $points = Point::model()->getAll($param); diff --git a/views/pointsTemplate.php b/views/pointsTemplate.php index 78fe241..c8fd62b 100644 --- a/views/pointsTemplate.php +++ b/views/pointsTemplate.php @@ -67,7 +67,7 @@ $oldIndex = $pagesCount+1; - + 1):?>