87 lines
3.1 KiB
PHP
87 lines
3.1 KiB
PHP
<?php
|
|
|
|
|
|
namespace app\controllers;
|
|
|
|
|
|
use app\models\Articles;
|
|
use app\services\ViewReg;
|
|
|
|
class PartnerController extends BaseController
|
|
{
|
|
|
|
public $layout = 'portal';
|
|
public $partnerSlug;
|
|
|
|
public function actionIndex($partnerSlug)
|
|
{
|
|
|
|
$this->partnerSlug = $partnerSlug;
|
|
|
|
ViewReg::partnerLocaleSwitch($partnerSlug);
|
|
return $this->render('partner', ['slug' => $partnerSlug]);
|
|
}
|
|
|
|
public function actionPage($partnerSlug, $webPage, $slug = null)
|
|
{
|
|
|
|
$this->partnerSlug = $partnerSlug;
|
|
$page = ViewReg::find($webPage);
|
|
|
|
if ($page) {
|
|
|
|
//list page
|
|
if (!$slug) {
|
|
ViewReg::partnerLocaleSwitch($partnerSlug, $page->model);
|
|
return $this->render($page->view, ['model' => $page->model, 'partnerSlug' => $partnerSlug]);
|
|
}
|
|
}
|
|
|
|
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', 'partnerSlug' => $partnerSlug]);
|
|
}
|
|
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', 'partnerSlug' => $partnerSlug]);
|
|
}
|
|
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', 'partnerSlug' => $partnerSlug]);
|
|
}
|
|
break;
|
|
case 'projects':
|
|
case 'proekti':
|
|
return $this->render('detail_pages/project', ['slug' => $slug, 'partnerSlug' => $partnerSlug]);
|
|
case 'objects':
|
|
case 'obekti':
|
|
case 'collections-objects':
|
|
case 'kolektsii-obekti':
|
|
case 'expositions-objects':
|
|
case 'ekspozitsii-obekti':
|
|
return $this->render('detail_pages/object', ['webPage' => $webPage, 'slug' => $slug, 'partnerSlug' => $partnerSlug]);
|
|
case 'collections':
|
|
case 'kolektsii':
|
|
return $this->render('detail_pages/collection', ['slug' => $slug, 'partnerSlug' => $partnerSlug]);
|
|
case 'expositions':
|
|
case 'ekspozitsii':
|
|
return $this->render('detail_pages/exposition', ['slug' => $slug, 'partnerSlug' => $partnerSlug]);
|
|
case 'e-biblioteka':
|
|
case 'e-library':
|
|
return $this->render('detail_pages/e-library', ['slug' => $slug, 'partnerSlug' => $partnerSlug]);
|
|
}
|
|
}
|
|
}
|