jansuchanek/nadmin-layout

Configurable admin layout shell for Nette β€” sidebar, topbar, locale switcher, datagrid JS

Maintainers

Package info

github.com/JanSuchanek/nadmin-layout

pkg:composer/jansuchanek/nadmin-layout

Statistics

Installs: 2

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-03-20 14:34 UTC

This package is auto-updated.

Last update: 2026-04-20 15:35:25 UTC


README

Configurable admin UI shell for Nette Framework β€” sidebar menu, branding, and locale switcher driven by NEON config.

Features

  • πŸ“‹ Dynamic Sidebar β€” Define menu items, sections, icons, and permissions in NEON
  • 🎨 Branding β€” Configurable icon and name
  • 🌍 Locale Switcher β€” Languages with flags from config
  • βš™οΈ DI Extension β€” AdminLayoutConfig value object auto-populated

Installation

composer require jansuchanek/nadmin-layout

Configuration

extensions:
    nadminLayout: NAdminLayout\DI\NAdminLayoutExtension

nadminLayout:
    title: My Admin
    brand:
        icon: bi-shop
        name: MyApp
    menu:
        - { section: Navigation }
        - { label: Dashboard, icon: bi-grid, link: ":Admin:Dashboard:default" }
        - { label: Products, icon: bi-box-seam, link: ":Admin:Product:default" }
        - { section: Settings }
        - { label: Users, icon: bi-people, link: ":Admin:User:default", permission: "user.view" }
    locales:
        - { code: cs, flag: "πŸ‡¨πŸ‡Ώ", label: Česky }
        - { code: en, flag: "πŸ‡¬πŸ‡§", label: English }

Usage in Latte

{* Brand *}
<i class="bi {$adminConfig->getBrandIcon()}"></i> {$adminConfig->getBrandName()}

{* Menu *}
{foreach $adminConfig->getMenuItems() as $item}
    {if isset($item['section'])}
        <div class="nav-section">{$item['section']}</div>
    {else}
        <a href="{plink $item['link']}">{$item['label']}</a>
    {/if}
{/foreach}

{* Locales *}
{foreach $adminConfig->getLocales() as $loc}
    <a href="{link switchLocale! locale => $loc['code']}">{$loc['flag']} {$loc['label']}</a>
{/foreach}

Requirements

  • PHP >= 8.2
  • Nette DI ^3.2

License

MIT