2018-07-15 08:31:24 +02:00
|
|
|
<?php
|
|
|
|
namespace controller;
|
|
|
|
|
|
|
|
use router\link\Link;
|
|
|
|
use router\Router;
|
2018-07-15 08:59:24 +02:00
|
|
|
use router\link\LinkCollection;
|
2018-07-15 08:31:24 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* This controllers render the frames/default.html.twig
|
|
|
|
*
|
|
|
|
* @author kevinfrantz
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
class AbstractDefaultController extends AbstractController
|
|
|
|
{
|
|
|
|
|
|
|
|
protected function render(string $template, array $variables = []): void
|
|
|
|
{
|
|
|
|
parent::render($template, $this->addMenuItems($variables));
|
|
|
|
}
|
|
|
|
|
|
|
|
private function addMenuItems(array $variables): array
|
|
|
|
{
|
|
|
|
if (array_key_exists('menu_items', $variables)) {
|
2018-07-15 08:53:15 +02:00
|
|
|
$variables['menu_items'] = array_merge($this->getMenuItems(),$variables['menu_items']);
|
|
|
|
}else{
|
|
|
|
$variables['menu_items'] = $this->getMenuItems();
|
2018-07-15 08:31:24 +02:00
|
|
|
}
|
|
|
|
return $variables;
|
|
|
|
}
|
|
|
|
|
|
|
|
private function getMenuItems(): array
|
|
|
|
{
|
|
|
|
return array_merge([
|
|
|
|
new Link([], 'home'),
|
|
|
|
new Link([
|
|
|
|
Router::CONTROLLER => 'product',
|
|
|
|
Router::ACTION => 'list'
|
|
|
|
], 'product list'),
|
|
|
|
new Link([
|
|
|
|
Router::CONTROLLER => 'order',
|
|
|
|
Router::ACTION => 'basket'
|
|
|
|
], 'basket')
|
|
|
|
], $this->getUserMenuItems());
|
|
|
|
}
|
|
|
|
|
|
|
|
private function getUserMenuItems(): array
|
|
|
|
{
|
|
|
|
if ($this->core->getUser()) {
|
|
|
|
return [
|
|
|
|
new Link([
|
|
|
|
Router::CONTROLLER => 'user',
|
|
|
|
Router::ACTION => 'logout'
|
|
|
|
], 'logout')
|
|
|
|
];
|
|
|
|
}
|
2018-07-15 08:59:24 +02:00
|
|
|
return [new LinkCollection('login',[
|
2018-07-15 08:31:24 +02:00
|
|
|
new Link([
|
|
|
|
Router::CONTROLLER => 'user',
|
|
|
|
Router::ACTION => 'login'
|
|
|
|
], 'login'),
|
|
|
|
new Link([
|
|
|
|
Router::CONTROLLER => 'user',
|
|
|
|
Router::ACTION => 'register'
|
|
|
|
], 'register')
|
2018-07-15 08:59:24 +02:00
|
|
|
])];
|
2018-07-15 08:31:24 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|