| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace ModulesGarden\ProxmoxAddon\Core\Http\View;
- use ModulesGarden\ProxmoxAddon\Core\FileReader\Reader;
- use ModulesGarden\ProxmoxAddon\Core\Helper\BuildUrl;
- use ModulesGarden\ProxmoxAddon\Core\ModuleConstants;
- use ModulesGarden\ProxmoxAddon\Core\Helper;
- /**
- * Description of MainMenu
- *
- * @author Rafał Ossowski <rafal.os@modulesgarden.com>
- */
- class MainMenu
- {
- /**
- * @var array
- */
- protected $menuContect = [];
- /**
- * @var array
- */
- protected $menu = [];
- /**
- * @var Breadcrumb
- */
- protected $breadcrumbModel;
- /**
- * @var array
- */
- protected $breadcrumb = [];
- public function __construct(Breadcrumb $breadcrumb)
- {
- $this->breadcrumbModel = $breadcrumb;
- $this->loadMenuContect();
- $this->buildMenu();
- }
- private function loadMenuContect()
- {
- $isAdmin = Helper\isAdmin();
- $file = ($isAdmin) ? 'admin.yml' : 'client.yml';
- $this->menuContect = Reader::read(ModuleConstants::getDevConfigDir() . DS . 'menu' . DS . $file)->get();
- }
- private function buildMenu()
- {
- foreach ($this->menuContect as $catName => $category)
- {
- if (isset($category['submenu']))
- {
- foreach ($category['submenu'] as $subName => &$subPage)
- {
- if (empty($subPage['url']))
- {
- $subPage['url'] = isset($subPage['externalUrl']) ? isset($subPage['externalUrl']) : BuildUrl::getUrl($catName, $subName);
- }
- }
- }
- $category['url'] = isset($category['externalUrl']) ? isset($category['externalUrl']) : BuildUrl::getUrl($catName);
- $this->menu[$catName] = $category;
- }
- }
- public function buildBreadcrumb($controller = null, $action = null, array $arrayBreadcrumb = [])
- {
- $this->breadcrumb = $this->breadcrumbModel
- ->load($this->getMenu(), $controller, $action, $arrayBreadcrumb)
- ->get();
- return $this;
- }
- public function getMenu()
- {
- return $this->menu;
- }
- public function getBreadcrumb()
- {
- return $this->breadcrumb;
- }
- }
|