isAdmin) { $param['order'] = 'id DESC'; $param['where'] = '`status` = "moderation"'; $points = Point::model()->getAll($param); $categories = Category::model()->getAll(array('order' => 'ord ASC')); foreach ($points as $point) { $id = $point->id; $result[$id]['id'] = $point->id; $result[$id]['name'] = $point->name; $result[$id]['lat'] = $point->lat; $result[$id]['lng'] = $point->lng; $result[$id]['author'] = $point->authorUser->nick; $result[$id]['categoryId'] = $point->categoryId; $result[$id]['categoryIcon'] = $categories[$point->categoryId]->icon; } $notModeratedPoints = $result; } // ------------------------------------------ $param = array(); $param['where'] = '`status` = "published" AND `categoryId` NOT IN ('. implode(',', Category::$paidIds).')'; $pointsCount = Point::model()->getCount($param); $pagesCount = intval(ceil($pointsCount/self::elementsByPage)); $page = isset($_GET['page']) ? abs((int)$_GET['page']) : $pagesCount; $pages = array(); for ($index = $pagesCount; $index > $pagesCount-3; $index--) { $pages[$index] = 1; } for ($index = 3; $index > 0; $index--) { $pages[$index] = 1; } if ($page > $pagesCount) { $page = $pagesCount; } else if ($page < 1) { $page = 1; } $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` DESC'; 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).')'; $param['limit'] = self::elementsByPage; if($page) { $param['offset'] = self::elementsByPage * ($pagesCount - $page); } } $points = Point::model()->getAll($param); $categories = Category::model()->getAll(array('order' => 'ord ASC')); $result = array(); foreach ($points as $point) { $id = $point->id; $result[$id]['id'] = $point->id; $result[$id]['name'] = $point->name; $result[$id]['lat'] = $point->lat; $result[$id]['lng'] = $point->lng; $result[$id]['img'] = $point->getImg('middle'); $result[$id]['author'] = $point->authorUser->nick; $result[$id]['categoryId'] = $point->categoryId; $result[$id]['categoryIcon'] = $categories[$point->categoryId]->icon; } App::setConfig('title', App::$defaultTitle); self::render('pointsTemplate.php', array( 'categories' => $categories, 'points' => $result, 'pointsCount' => $pointsCount, 'page' => $page, 'pagesCount' => $pagesCount, 'pages' => $pages, 'notModeratedPoints' => $notModeratedPoints, 'randomPoint' => Point::model()->getRandom(), )); } static function actionPoint() { $pointId = (int) App::getParam('id'); if ($pointId) { App::redirect('/point/'.$pointId, 301); } else { App::error404(); } } static function actionArticle() { $articleId = (int) App::getParam('id'); if ($articleId) { App::redirect('/article/'.$articleId, 301); } else { App::error404(); } } static function actionVkpoint() { $pointId = (int) App::getParam('id'); if (App::$user && App::$user->isAdmin == 1 && $pointId) { $point = Point::model()->getByPK($pointId); if ($point->id == NULL) { App::error404(); } $point->descriptionHtml = nl2br($point->description); $point->name = htmlspecialchars($point->name); $categories = Category::model()->getAll(array('order' => 'ord ASC', 'asArray' => true)); $point->description = Helper::replaceLinks($point->description); self::renderPartial('page/vkPoint.php', array( 'point' => $point, 'photos' => $point->photos, )); } else { App::error404(); } } static function actionInstapoint() { $pointId = (int) App::getParam('id'); if (App::$user && App::$user->isAdmin == 1 && $pointId) { $point = Point::model()->getByPK($pointId); if ($point->id == NULL) { App::error404(); } $point->descriptionHtml = nl2br($point->description); $point->name = htmlspecialchars($point->name); $categories = Category::model()->getAll(array('order' => 'ord ASC', 'asArray' => true)); $point->description = Helper::replaceLinks($point->description); self::renderPartial('page/instaPoint.php', array( 'point' => $point, 'photos' => $point->photos, )); } else { App::error404(); } } static function action404($message) { self::$layout = 'layouts/page.php'; self::addStyle('/css/style.css?ver=' . App::getConfig('version')); self::addStyle('/css/pageStyle.css?ver=' . App::getConfig('version')); self::addStyle('/css/bootstrap.min.css'); self::addScript('/js/jquery-2.1.0.min.js'); self::addScript('/js/bootstrap.min.js'); App::setConfig('title', App::$defaultTitle); self::render('error404.php', array( 'randomPoint' => Point::model()->getRandom(), )); } static function actionStatus() { if (App::$user && App::$user->isAdmin == 1) { self::$layout = 'layouts/page.php'; self::addStyle('/css/style.css?ver=' . App::getConfig('version')); self::addStyle('/css/pageStyle.css?ver=' . App::getConfig('version')); self::addStyle('/css/bootstrap.min.css'); self::addScript('/js/jquery-2.1.0.min.js'); self::addScript('/js/bootstrap.min.js'); App::setConfig('title', 'Сводка по проекту'); $points = Point::model()->getCount(array( 'where' => '`status` = "published" AND `categoryId` NOT IN ('. implode(',', Category::$paidIds).')', )); $paidPoints = Point::model()->getCount(array( 'where' => '`status` = "published" AND `categoryId` IN ('. implode(',', Category::$paidIds).')', )); $notModeratedPoints = Point::model()->getCount(array( 'where' => '`status` = "moderation"', )); $articles = Article::model()->getCount(array( 'where' => '`status` = "published"', )); $comments = Comment::model()->getCount(); $users = User::model()->getCount(); self::render('page/status.php', array( 'points' => $points, 'paidPoints' => $paidPoints, 'notModeratedPoints' => $notModeratedPoints, 'articles' => $articles, 'comments' => $comments, 'users' => $users, 'randomPoint' => Point::model()->getRandom(), )); } else { App::error404(); } } }