Erweiterung der Funktionalität, erste Anbindung an Editoren, Einbinden von JS-Bibliotheken

This commit is contained in:
2016-10-05 15:27:09 +00:00
parent 5a1dd25023
commit f65b4db286
26 changed files with 31969 additions and 140 deletions

View File

@@ -28,7 +28,9 @@ class NavigationModel extends Database
protected static $activeNavID = 0;
protected static $header = '';
protected static $title = '';
protected static $keyVisual = array();
protected static $headline = '';
@@ -38,28 +40,53 @@ class NavigationModel extends Database
/**
* Setzt später benötigte Variablen für den FrontendController, so dass die Datenmodelle und die Views instanziiert werden können
* @param array $routeParts
* @param bool $isEditable
*/
public static function init(array $routeParts)
public static function init(array $routeParts, $isEditable = false)
{
self::getIndex();
$nav = self::$data;
$navStart = 0;
foreach ($routeParts as $navLink)
if ($isEditable)
{
foreach ($nav as $navID => $navItem)
self::initBackend($routeParts[0], false);
}
else
{
self::initFrontend($routeParts);
}
}
protected static function initBackend($siteID, $depth)
{
foreach (self::$data as $navID => $navItem)
{
if ($navID == $siteID && $depth === false)
{
if ($navItem['navStart'] == $navStart && $navItem['navLink'] == $navLink)
{
$navStart = $navItem['navID'];
self::$navigationPath[] = self::$activeNavID = $navItem['navID'];
self::$header = $navItem['navHeader'];
self::$headline = $navItem['navHeadline'];
self::initContent($navItem['navContent']);
}
self::$activeNavID = $navItem['navID'];
self::$title = $navItem['navTitle'];
self::$headline = $navItem['navHeadline'];
self::initKeyVisual($navItem['navKeyVisual']);
self::initContent($navItem['navContent']);
self::buildNavigationPath();
break;
}
}
}
/**
* @param string $navKeyVisual
*/
protected static function initKeyVisual($navKeyVisual)
{
if (is_null($navKeyVisual))
{
return;
}
if (is_array(json_decode($navKeyVisual, true)))
{
self::$keyVisual = json_decode($navKeyVisual, true);
}
}
/**
* @param string $navContents
@@ -76,6 +103,36 @@ class NavigationModel extends Database
}
}
protected static function buildNavigationPath()
{
$navStart = $navStartPath[] = self::$activeNavID;
while ($navStart !== '0' && !is_null($navStart))
{
$navStart = $navStartPath[] = self::$data[$navStart]['navStart'];
}
array_pop($navStartPath);
self::$navigationPath = array_reverse($navStartPath);
}
protected static function initFrontend(array $routeParts)
{
$navStart = 0;
foreach ($routeParts as $navLink)
{
foreach (self::$data as $navID => $navItem)
{
if ($navItem['navStart'] == $navStart && $navItem['navLink'] == $navLink)
{
$navStart = $navItem['navID'];
self::$navigationPath[] = self::$activeNavID = $navItem['navID'];
self::$title = $navItem['navTitle'];
self::initKeyVisual($navItem['navKeyVisual']);
self::$headline = $navItem['navHeadline'];
self::initContent($navItem['navContent']);
}
}
}
}
/**
* @return array
@@ -98,9 +155,18 @@ class NavigationModel extends Database
/**
* @return string
*/
public static function getHeader()
public static function getTitle()
{
return self::$header;
return self::$title;
}
/**
* @return array
*/
public static function getKeyVisual()
{
return self::$keyVisual;
}