Erweiterung der Funktionalität, erste Anbindung an Editoren, Einbinden von JS-Bibliotheken
This commit is contained in:
@@ -11,13 +11,15 @@ namespace Controller;
|
||||
|
||||
use Helper\Database;
|
||||
use Model\NavigationModel;
|
||||
use View\StandardView;
|
||||
use View\NavigationView;
|
||||
use View\StandardView;
|
||||
|
||||
class FrontendController
|
||||
{
|
||||
protected $route = '';
|
||||
|
||||
protected $isEditable = false;
|
||||
|
||||
protected $request = array();
|
||||
|
||||
protected $contents = array();
|
||||
@@ -27,52 +29,96 @@ class FrontendController
|
||||
$this->route = $route;
|
||||
$this->routeParts = explode('/', $route);
|
||||
$this->request = $request;
|
||||
$this->init();
|
||||
}
|
||||
|
||||
|
||||
private function init()
|
||||
public function setEditable($isEditable)
|
||||
{
|
||||
NavigationModel::init($this->routeParts);
|
||||
$navigation = new NavigationView(NavigationModel::getData(), $this->routeParts);
|
||||
$this->isEditable = $isEditable;
|
||||
}
|
||||
|
||||
$this->contents['title'] = 'AHD Allradhaus';
|
||||
$this->contents['navigation'] = $navigation->getHtml();
|
||||
|
||||
public function init()
|
||||
{
|
||||
NavigationModel::init($this->routeParts, $this->isEditable);
|
||||
$navigation = new NavigationView(NavigationModel::getData(), NavigationModel::getNavigationPath());
|
||||
$navigation->setEditable($this->isEditable);
|
||||
$navigation->init();
|
||||
|
||||
$this->contents['title'] = NavigationModel::getTitle();
|
||||
$this->contents['navigation'] = $navigation->render();
|
||||
|
||||
$this->contents['headline'] = NavigationModel::getHeadline();
|
||||
$this->contents['navID'] = NavigationModel::getActiveNavID();
|
||||
$this->contents['content'] = '';
|
||||
$tmpContents = NavigationModel::getContents();
|
||||
$this->contents['keyVisual'] = '';
|
||||
|
||||
$tmpKeyVisual = NavigationModel::getKeyVisual();
|
||||
foreach ($tmpKeyVisual as $data)
|
||||
{
|
||||
$this->contents['keyVisual'] .= $this->buildContents($data);
|
||||
}
|
||||
|
||||
$tmpContents = NavigationModel::getContents();
|
||||
/**
|
||||
* @var Database $modelClass
|
||||
*/
|
||||
foreach ($tmpContents as $key => $data)
|
||||
foreach ($tmpContents as $data)
|
||||
{
|
||||
$modelClass = 'Model\\' . $data['Controller'] . 'Model';
|
||||
$viewClass = 'View\\' . $data['Controller'] . 'View';
|
||||
if (class_exists($modelClass, true))
|
||||
{
|
||||
$modelData = $modelClass::getItem($data['ID']);
|
||||
}
|
||||
else
|
||||
{
|
||||
/**
|
||||
* TODO: ErrorHandler bauen
|
||||
*/
|
||||
return;
|
||||
}
|
||||
if (class_exists($viewClass, true))
|
||||
{
|
||||
$dataView = new $viewClass($modelData, $data['Controller']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$dataView = new StandardView($modelData, $data['Controller']);
|
||||
}
|
||||
$this->contents['content'] .= $dataView->render();
|
||||
$this->contents['content'] .= $this->buildContents($data);
|
||||
}
|
||||
|
||||
$pageView = new StandardView($this->contents, 'index');
|
||||
$pageView->setEditable($this->isEditable);
|
||||
echo $pageView->render();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @return string
|
||||
*/
|
||||
protected function buildContents(array $data)
|
||||
{
|
||||
/**
|
||||
* @var Database $modelClass
|
||||
*/
|
||||
$modelClass = 'Model\\' . $data['Controller'] . 'Model';
|
||||
$viewClass = 'View\\' . $data['Controller'] . 'View';
|
||||
if (class_exists($modelClass, true))
|
||||
{
|
||||
if (isset($data['ID']))
|
||||
{
|
||||
$modelData = $modelClass::getItem($data['ID']);
|
||||
}
|
||||
if (isset($data['IDs']))
|
||||
{
|
||||
$tmpModelData = $data;
|
||||
unset($tmpModelData['Controller']);
|
||||
unset($tmpModelData['IDs']);
|
||||
$modelClass::setFilter($data['IDs']);
|
||||
$modelData = $modelClass::getIndex();
|
||||
$modelData = array_merge($modelData, $tmpModelData);
|
||||
$modelData['navID'] = $this->contents['navID'];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/**
|
||||
* TODO: ErrorHandler bauen
|
||||
*/
|
||||
return '';
|
||||
}
|
||||
if (class_exists($viewClass, true))
|
||||
{
|
||||
$dataView = new $viewClass($modelData, $data['Controller']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$dataView = new StandardView($modelData, $data['Controller']);
|
||||
}
|
||||
$dataView->setEditable($this->isEditable);
|
||||
|
||||
return $dataView->render();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user