125 lines
4.4 KiB
PHP
125 lines
4.4 KiB
PHP
<?php
|
|
|
|
namespace app\controllers;
|
|
|
|
use app\models\Articles;
|
|
use app\models\SeoManagement;
|
|
use app\models\Ts;
|
|
use app\services\Formatter;
|
|
use app\services\UserRequest;
|
|
use app\services\ViewReg;
|
|
|
|
class SiteController extends BaseController
|
|
{
|
|
public $layout = 'portal';
|
|
|
|
/** @var UserRequest */
|
|
private $userRequest;
|
|
|
|
public function beforeAction($action)
|
|
{
|
|
date_default_timezone_set('Europe/Sofia');
|
|
$this->userRequest = new UserRequest();
|
|
return parent::beforeAction($action); // TODO: Change the autogenerated stub
|
|
}
|
|
|
|
public function actionIndex()
|
|
{
|
|
ViewReg::localeSwitch();
|
|
$seo = SeoManagement::findOne(1);
|
|
$this->pageTitle = $seo->getTitle();
|
|
$this->description = $seo->getDescription();
|
|
$this->keywords = $seo->getKeyWords();
|
|
return $this->render('index');
|
|
}
|
|
|
|
public function actionPage($webPage, $slug = null)
|
|
{
|
|
|
|
$this->userRequest->call('contact');
|
|
$page = ViewReg::find($webPage);
|
|
|
|
if ($page) {
|
|
|
|
if ($slug == null) {
|
|
$this->pageTitle = $page->model->headerTitle();
|
|
ViewReg::localeSwitch($page->model);
|
|
return $this->render($page->view, ['model' => $page->model]);
|
|
} else {
|
|
|
|
switch ($webPage) {
|
|
case 'projects':
|
|
case 'proekti':
|
|
return $this->render('detail_pages/project', ['slug' => $slug]);
|
|
case 'objects':
|
|
case 'obekti':
|
|
return $this->render('detail_pages/object', ['slug' => $slug, 'webPage' => $webPage]);
|
|
case 'collections':
|
|
case 'kolektsii':
|
|
return $this->render('detail_pages/collection', ['slug' => $slug]);
|
|
case 'expositions':
|
|
case 'ekspozitsii':
|
|
return $this->render('detail_pages/exposition', ['slug' => $slug]);
|
|
case 'e-library':
|
|
case 'e-biblioteka':
|
|
return $this->render('detail_pages/e-library', ['slug' => $slug]);
|
|
}
|
|
|
|
//die('No action found');
|
|
}
|
|
} else {
|
|
|
|
|
|
switch ($webPage) {
|
|
case 'news':
|
|
case 'novini':
|
|
$article = Articles::getArticleBySlug($slug);
|
|
if ($article) {
|
|
ViewReg::localeSwitchArticle('news', $article);
|
|
return $this->render('detail_pages/article', ['model' => $article, 'type' => 'news']);
|
|
}
|
|
break;
|
|
case 'events':
|
|
case 'sabitia':
|
|
$article = Articles::getArticleBySlug($slug);
|
|
if ($article) {
|
|
ViewReg::localeSwitchArticle('events', $article);
|
|
return $this->render('detail_pages/article', ['model' => $article, 'type' => 'events']);
|
|
}
|
|
break;
|
|
case 'campaigns':
|
|
case 'kampanii':
|
|
$article = Articles::getArticleBySlug($slug);
|
|
if ($article) {
|
|
ViewReg::localeSwitchArticle('campaigns', $article);
|
|
return $this->render('detail_pages/article', ['model' => $article, 'type' => 'campaigns']);
|
|
}
|
|
break;
|
|
case 'collections-objects':
|
|
case 'kolektsii-obekti':
|
|
case 'expositions-objects':
|
|
case 'ekspozitsii-obekti':
|
|
case 'objects':
|
|
case 'obekti':
|
|
return $this->render('detail_pages/object', ['webPage' => $webPage, 'slug' => $slug]);
|
|
case 'app-download':
|
|
$file = $_SERVER['DOCUMENT_ROOT'].'/_public/nasledstvo.apk';
|
|
header('Content-Disposition: attachment; filename=nasledstvo.apk');
|
|
header('Content-Type: application/octet-stream'); // Downloading on Android might fail without this
|
|
ob_clean();
|
|
readfile($file);
|
|
exit;
|
|
case 'master':
|
|
return $this->renderPartial('master');
|
|
}
|
|
}
|
|
|
|
echo 'Page not found 404';
|
|
exit;
|
|
}
|
|
|
|
|
|
|
|
//public function
|
|
}
|