Файл: concrete5.7.5.6/concrete/src/Controller/Controller.php
Строк: 72
<?php
namespace ConcreteCoreController;
use ConcreteCoreConfigRenderer;
use IlluminateConfigRepository;
use Request;
use PageTheme;
use View;
use Route;
class Controller extends AbstractController {
protected $view;
protected $viewPath;
protected $theme;
protected $controllerActionPath;
protected $themeViewTemplate;
public function setViewObject(ConcreteCoreViewAbstractView $view) {
$this->view = $view;
}
public function setTheme($mixed) {
if ($mixed instanceof PageTheme) {
$this->theme = $mixed->getThemeHandle();
} else {
$this->theme = $mixed;
}
}
public function getTheme() {
if (is_object($this->view)) {
$tmpTheme = Route::getThemeByRoute($this->view->getViewPath());
if ($tmpTheme) {
return $tmpTheme[0];
}
}
if (isset($this->theme)) {
return $this->theme;
}
}
public function setThemeViewTemplate($template)
{
$this->themeViewTemplate = $template;
}
public function getThemeViewTemplate()
{
if (isset($this->themeViewTemplate)) {
return $this->themeViewTemplate;
}
if (is_object($this->view)) {
$tmpTheme = Route::getThemeByRoute($this->view->getViewPath());
if ($tmpTheme && isset($tmpTheme[1])) {
return $tmpTheme[1];
}
}
return FILENAME_THEMES_VIEW;
}
public function getControllerActionPath() {
if (isset($this->controllerActionPath)) {
return $this->controllerActionPath;
}
$request = Request::getInstance();
return $request->getPathInfo();
}
public function __construct() {
parent::__construct();
if ($this->viewPath) {
$this->view = new View($this->viewPath);
if (preg_match('/Concrete\Package\(.*)\Controller/i', get_class($this), $matches)) {
$pkgHandle = uncamelcase($matches[1]);
$this->view->setPackageHandle($pkgHandle);
}
$this->view->setController($this);
}
}
public function getViewObject() {
if ($this->view) {
$this->view->setController($this);
$this->view->setViewTheme($this->getTheme());
return $this->view;
}
}
public function action() {
$a = func_get_args();
array_unshift($a, $this->getControllerActionPath());
$ret = call_user_func_array(array($this->view, 'url'), $a);
return $ret;
}
}