<?php /***************************************************************************** * MainNavBar.php * Contains the primary navigational menu template. * * Kabuki CMS (C) 2013-2023, Aaron van Geffen *****************************************************************************/ class MainNavBar extends NavBar { protected $outerMenuId = 'mainNav'; protected $innerMenuId = 'mainNavigation'; protected $ariaLabel = 'Main navigation'; protected $navBarClasses = 'navbar-dark bg-dark sticky-top'; protected $primaryBadgeClasses = 'bg-light text-dark'; protected $secondaryBadgeClasses = 'bg-dark text-light'; public function html_main() { // Select a random space invader, with a bias towards the mascot $rnd = rand(0, 100); $alt = $rnd > 50 ? ' alt-' . ($rnd % 6 + 1) : ''; echo ' <nav id="', $this->outerMenuId, '" class="navbar navbar-expand-lg ', $this->navBarClasses, '" aria-label="', $this->ariaLabel, '"> <div class="container"> <a class="navbar-brand flex-grow-1" href="', BASEURL, '/"> <i class="space-invader', $alt, '"></i> HashRU Pics </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#', $this->innerMenuId, '" aria-controls="', $this->innerMenuId, '" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>'; if (Registry::get('user')->isLoggedIn()) { echo ' <div class="collapse navbar-collapse justify-content-end" id="', $this->innerMenuId, '"> <ul class="navbar-nav mb-2 mb-lg-0">'; $mainMenu = new MainMenu(); $this->renderMenuItems($mainMenu->getItems()); echo ' <li class="nav-divider d-none d-lg-inline"></li>'; $adminMenu = new AdminMenu(); $this->renderMenuItems($adminMenu->getItems()); $userMenu = new UserMenu(); $this->renderMenuItems($userMenu->getItems()); echo ' </ul> </div>'; } echo ' </div> </nav>'; } }