wikipoints/ground/controllers/IndexController.php

123 lines
3.6 KiB
PHP

<?php
class IndexController extends Controller
{
/**
* Действие по умолчанию
*/
static function actionIndex()
{
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('http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js');
self::addScript('http://maps.google.com/maps/api/js?v=3&sensor=false');
self::addScript('/js/tile/Google.js');
self::addScript('http://api-maps.yandex.ru/2.0/?load=package.map&lang=ru-RU');
self::addScript('/js/tile/Yandex.js');
self::addScript('/js/app.js?ver='.App::getConfig('version'));
self::addScript('/js/map.js?ver='.App::getConfig('version'));
self::addScript('/js/leaflet-routing-machine.js');
self::addScript('/js/route.js?ver='.App::getConfig('version'));
self::addStyle('/css/style.css?ver='.App::getConfig('version'));
self::addStyle('http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css');
self::addStyle('/css/bootstrap.min.css');
self::addStyle('/css/bootstrap-theme.min.css');
self::addStyle('/css/leaflet-routing-machine.css');
if (!App::$user )
self::addScript('//ulogin.ru/js/ulogin.js');
$category = new Category();
$routes = array();
if (App::$user)
{
$routes = new Route();
$routes = $routes->getByAuthor(App::$user->id);
}
self::addVar('isAdmin', (int)(App::$user && App::$user->isAdmin == 1) );
$res = App::$DB->query("SELECT COUNT(`id`) pointsCount FROM `points`")->fetch(PDO::FETCH_ASSOC);
App::setConfig('title', $res['pointsCount'].' или даже больше поводов не сидеть дома');
if($_GET['point'] && is_numeric($_GET['point']))
{
$id = (int) $_GET['point'];
$point = new Point();
$point = $point->getByPK($id);
$point->name = htmlspecialchars($point->name);
$point->descriptionHtml = nl2br(htmlspecialchars($point->description));
$point->descriptionHtml .= '<br/><br/>Посмотреть на карте: http://wikipoints.ru/?point='.$id;
$point->descriptionHtml .= '<br/><br/>#wikipoints';
$og['title'] = $point->name . ' - wikipoints.ru';
$og['description'] = $point->descriptionHtml;
$og['site_name'] = 'WikiPoints - '.$res['pointsCount'].' или даже больше поводов не сидеть дома';
$og['type'] = 'article';
$og['url'] = 'http://wikipoints.ru/?point='.$id;
$og['image'] = $point->img;
}
self::render('indexTemplate.php', array(
'categories' => $category->getAll('', 'ord'),
'user' => App::$user,
'routes' => $routes,
'og' => $og,
));
}
static function actionUser()
{
$routes = new Route();
$routes = $routes->getByAuthor(App::$user->id);
var_dump($routes);
}
static function actionLogout()
{
App::userLogout();
App::redirect('/');
}
static function actionLogin()
{
$source = file_get_contents('http://ulogin.ru/token.php?token=' . $_POST['token'] . '&host=' . $_SERVER['HTTP_HOST']);
$uLoginUser = json_decode($source, true);
//var_dump($uLoginUser);die;
$uLoginUser['identity'] = md5($uLoginUser['uid'].$uLoginUser['network'].'=P');
$user = new User();
$user->getByUID($uLoginUser['identity']);
if( !$user->id )
{
$user = $user->add(array(
'uid' => $uLoginUser['identity'],
'nick' => $uLoginUser['nickname'],
'name' => $uLoginUser['first_name'],
'profile' => $uLoginUser['profile'],
'network' => $uLoginUser['network'],
'photo' => $uLoginUser['photo_big'],
));
if (!$user)
{
return false;
}
}
App::userLogin($user);
App::redirect('/');
}
}