## Navigation

### Define a navigation tree

For the top navigation and left the basic array looks like this:

```php
return [
    ['label'=>'='],
    ['href'=>'#',          'label'=>'Menu A', 'icon'=>'fa-solid fa-home' ],
    ['href'=>'#',          'label'=>'Menu B', 'icon'=>'fa-solid fa-tv'],
    ['href'=>'#',          'label'=>'Menu C', 'icon'=>'fa-solid fa-truck-pickup', 'class'=>'active',
        'children'=>[
            ['href'=>'#',     'label'=>'FAQ'     , 'icon'=>'fa-solid fa-truck-monster'],
            ['href'=>'#',     'label'=>'Support' , 'icon'=>'fa-solid fa-truck-moving'],
        ]
    ]
];
```

Key      | Description
---      | ---
href     | target of a link; href atttribute
label    | Linktext
icon     | css class value of a fontawesome icon
class    | custom css class; for left navigation use value "active" to highlight it
children | array that contains 2nd Level

**Specialties**
For top navigation in thwe 2nd level (below children) define a label value with a single minus character to draw a line:
`['label'=>'-']`

The hamburger menu is rendered by `['label'=>'=']`. Remove this item when you don't want a left sidebar or it is static.

### Show navigation on top

The top navigation is for the placeholder `{{NAVI_TOP}}`.

You can use `getTopNavigation({array})` to render the navigation items.
It creates

* the hamburger menu
* li elements for first level items
* divs for navigation items of 2nd level

```php
$aTopnav=include("./config/navi_top.php");
$aReplace['{{NAVI_TOP}}']=''
    . $renderAdminLTE->addWrapper(
        'nav', ['class'=>'main-header navbar navbar-expand navbar-white navbar-light'],
        $renderAdminLTE->getTopNavigation($aTopnav)
        // add 2nd navbar if needed
    )
    ;
```

See also <https://adminlte.io/docs/3.2/components/main-header.html>

### Show navigation on the left

You can use `getSidebarNavigation({array})` to render the navigation items.
It creates

* li elements for first level items
* if an item has children a nested list will be written. The nanigation item gets a "<" sign on the right.
* A navigation with class "active" will be highlighted
* If the active class is active and has children it will be expanded

```php
$aReplace['{{NAVI_LEFT}}']=''
    . $renderAdminLTE->addWrapper(
        'nav', ['class'=>'mt-2'],
        $renderAdminLTE->getSidebarNavigation($aSidebarNav)
    );
```