* @link https://TheTempusProject.com * @license https://opensource.org/licenses/MIT [MIT LICENSE] */ namespace TheTempusProject\Templates; use TheTempusProject\Houdini\Classes\Views; use TheTempusProject\Houdini\Classes\Navigation; use TheTempusProject\Houdini\Classes\Components; use TheTempusProject\Bedrock\Functions\Input; use TheTempusProject\TheTempusProject as App; use TheTempusProject\Houdini\Classes\Template; class AdminLoader extends DefaultLoader { public function __construct() { parent::__construct(); $links = Navigation::getMenuLinks( App::ADMIN_MENU_NAME ); foreach ( $links as $key => $link ) { if ( is_array( $link->url ) ) { $links[$key]->linkClasses = 'nav-link d-flex align-items-center justify-content-between'; $links[$key]->linkAttributes = Template::parse( 'aria-controls="{dropdownName}Dropdown" data-bs-toggle="collapse" aria-haspopup="true" aria-expanded="false"' ); $name = trim(strip_tags( $link->text ) ); Components::set( 'dropdownName', $name ); $out = []; foreach ( $link->url as $subKey => $subLink ) { $out[] = (object) $subLink; } $links[$key]->url = '#' . $name . 'Dropdown'; $links[$key]->text = '' . $link->text . ''; $links[$key]->subnav = Views::simpleView( 'nav.adminSub', $out ); } else { $links[$key]->linkClasses = 'nav-link'; $links[$key]->linkAttributes = ''; $links[$key]->subnav = ''; } } $menu = Views::simpleView( 'nav.admin', $links ); $activeMenu = Navigation::activePageSelect( $menu, Input::get( 'url' ), false, true ); Components::set( 'ADMIN_LINKS', $activeMenu ); $menu = Views::simpleView( 'nav.adminTop', Navigation::getMenuLinks( App::MAIN_MENU_NAME ) ); $activeMenu = Navigation::activePageSelect( $menu, Input::get( 'url' ), false, true ); Components::set( 'topNavLeft', $activeMenu ); Navigation::setCrumbComponent( 'ADMIN_BREADCRUMBS', Input::get( 'url' ) ); } }