wikipoints/ground/controllers/PageController.php

174 lines
4.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
class PageController extends Controller
{
static function actionPoints()
{
self::$layout = 'layoutPage.php';
self::addStyle('/css/style.css?ver=' . App::getConfig('version'));
self::addStyle('/css/pageStyle.css?ver=' . App::getConfig('version'));
self::addScript('/js/jquery-2.1.0.min.js');
self::addScript('/js/jquery-ui-1.10.4.custom.min.js');
self::addScript('/js/bootstrap.min.js');
self::addStyle('/css/bootstrap.min.css');
self::addStyle('/css/bootstrap-theme.min.css');
$notModeratedPoints = $result = array();
// On moderation
if (App::$user && App::$user->isAdmin) {
$param['order'] = 'id DESC';
$param['where'] = '`moderate` = 0';
$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['order'] = 'id DESC';
if (App::getParam('category')) {
$param['where'] = 'categoryId = ' . (int) App::getParam('category') . ' AND `moderate` = 1';
} else {
$param['where'] = '`moderate` = 1';
if (!(App::$user && App::$user->isAdmin)) {
$param['limit'] = 100;
}
}
$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]['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,
'user' => App::$user,
'points' => $result,
'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()
{
self::$layout = 'layoutPage.php';
$articleId = (int) App::getParam('id');
if ($articleId) {
self::addScript('/js/jquery-2.1.0.min.js');
self::addScript('/js/jquery-ui-1.10.4.custom.min.js');
self::addScript('/js/bootstrap.min.js');
self::addScript('/js/app.js?ver=' . App::getConfig('version'));
self::addScript('http://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.3/fotorama.js');
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::addStyle('/css/bootstrap-theme.min.css');
self::addStyle('http://cdnjs.cloudflare.com/ajax/libs/fotorama/4.6.3/fotorama.css');
$article = Article::model()->getByPK($articleId);
if ($article->id == NULL) {
App::error404();
}
App::setConfig('title', $article->title . ' wikipoints.ru');
$article->html = Helper::replaceLinks($article->html, 'html');
$article->html = Helper::replaceImgs($article->html, 'html');
self::render('article.php', array(
'article' => $article,
'randomPoint' => Point::model()->getRandom(),
'og' => Helper::buildArticleOG($article),
// 'user' => App::$user,
));
} else {
App::error404();
}
}
static function actionMyprofile()
{
$userId = App::$user ? App::$user->id : 0;
die($userId);
}
// static function actionProfile()
// {
// $userId = (int) App::getParam('user');
//
// }
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('vkPoint.php', array(
'point' => $point,
'photos' => $point->photos,
));
} else {
App::error404();
}
}
static function action404($message)
{
self::renderPartial('error404.php', array(
'point' => Point::model()->getRandom(),
));
}
}