Files
Admin Nasledstvo ac168868ee Initial import
2026-05-01 20:52:04 +03:00

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
}