layout
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
</main>
|
||||
<footer class="site-footer">
|
||||
<div class="footer-left">© <?= date('Y') ?> Nexus</div>
|
||||
<div class="footer-right">Security first · Internal only</div>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
<footer class="site-footer">
|
||||
<div class="footer-left">© <?= date('Y') ?> Nexus</div>
|
||||
<div class="footer-right">Security first · Internal only</div>
|
||||
</footer>
|
||||
<?php asset_scripts('footer'); ?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,10 +7,16 @@ $theme = user_theme();
|
||||
$currentModule = current_module_name();
|
||||
$path = $app->request()->path();
|
||||
$moduleMenu = [];
|
||||
$moduleSidebar = [];
|
||||
if ($currentModule) {
|
||||
$module = modules()->get($currentModule);
|
||||
$moduleMenu = $module['menu'] ?? [];
|
||||
$moduleSidebar = $module['sidebar'] ?? [];
|
||||
}
|
||||
$sidebarEnabled = !empty($moduleSidebar['enabled']);
|
||||
$sidebarCollapsible = !empty($moduleSidebar['collapsible']);
|
||||
$sidebarDefault = ($moduleSidebar['default'] ?? 'collapsed') === 'open' ? 'open' : 'collapsed';
|
||||
$sidebarItems = $moduleSidebar['items'] ?? [];
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
@@ -24,83 +30,77 @@ if ($currentModule) {
|
||||
<body data-theme="<?= e($theme) ?>">
|
||||
<div class="bg-orb orb-a"></div>
|
||||
<div class="bg-orb orb-b"></div>
|
||||
<div class="app-shell">
|
||||
<header class="topbar card">
|
||||
<div class="topbar-left">
|
||||
<img src="/assets/images/logo.png" alt="Nexus Logo" class="topbar-logo">
|
||||
|
||||
<header class="site-header card">
|
||||
<div class="logo-wrap">
|
||||
<img src="/assets/images/logo.png" alt="Nexus Logo" class="site-logo">
|
||||
</div>
|
||||
<nav class="header-nav">
|
||||
<a class="nav-link" href="/">Dashboard</a>
|
||||
<div class="dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button">Module ▾</button>
|
||||
<div class="dropdown-menu">
|
||||
<?php foreach (modules()->all() as $m): ?>
|
||||
<?php if (!empty($m['enabled'])): ?>
|
||||
<a class="dropdown-item" href="/module/<?= e($m['name']) ?>"><?= e($m['title']) ?></a>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="/modules">Module Übersicht</a>
|
||||
<a class="dropdown-item" href="/modules/install">Modul installieren/aktivieren</a>
|
||||
<a class="dropdown-item" href="/settings">Settings</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topbar-actions">
|
||||
<a class="nav-link" href="/">Dashboard</a>
|
||||
<div class="dropdown">
|
||||
<button class="nav-link dropdown-toggle" type="button">Module ▾</button>
|
||||
<div class="dropdown-menu">
|
||||
<?php foreach (modules()->all() as $m): ?>
|
||||
<?php if (!empty($m['enabled'])): ?>
|
||||
<a class="dropdown-item" href="/module/<?= e($m['name']) ?>"><?= e($m['title']) ?></a>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="/modules">Module Übersicht</a>
|
||||
<a class="dropdown-item" href="/modules/install">Modul installieren/aktivieren</a>
|
||||
<a class="dropdown-item" href="/settings">Settings</a>
|
||||
<div class="dropdown">
|
||||
<?php if (auth_enabled() && auth_user()): ?>
|
||||
<button class="avatar-btn" type="button">
|
||||
<span class="avatar"><?= e(auth_initials()) ?></span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<div class="dropdown-header"><?= e(auth_display_name()) ?></div>
|
||||
<a class="dropdown-item" href="/settings">User-Settings</a>
|
||||
<a class="dropdown-item" href="/auth/logout">Logout</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown">
|
||||
<?php if (auth_enabled() && auth_user()): ?>
|
||||
<button class="avatar-btn" type="button">
|
||||
<span class="avatar"><?= e(auth_initials()) ?></span>
|
||||
</button>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<div class="dropdown-header"><?= e(auth_display_name()) ?></div>
|
||||
<a class="dropdown-item" href="/settings">Settings</a>
|
||||
<a class="dropdown-item" href="/auth/logout">Logout</a>
|
||||
</div>
|
||||
<?php elseif (auth_enabled()): ?>
|
||||
<a class="nav-link" href="/auth/login">Login</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php elseif (auth_enabled()): ?>
|
||||
<a class="nav-link" href="/auth/login">Login</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</header>
|
||||
<div class="layout-body">
|
||||
<aside class="app-sidebar">
|
||||
<div class="brand-text"></div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<button class="sidebar-toggle" data-sidebar-toggle aria-label="Menü ein-/ausklappen">
|
||||
<span class="sidebar-icon">☰</span>
|
||||
<span class="sidebar-collapse">»»</span>
|
||||
</button>
|
||||
<?php if ($moduleMenu): ?>
|
||||
<div class="module-subnav card">
|
||||
<?php foreach ($moduleMenu as $entry): ?>
|
||||
<a class="nav-link" href="<?= e($entry['href'] ?? '#') ?>">
|
||||
<?= e($entry['label'] ?? 'Link') ?>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<nav class="sidebar-nav">
|
||||
<a href="/" class="nav-link <?= $path === '/' ? 'is-active' : '' ?>">Dashboard</a>
|
||||
<div class="nav-section">Aktive Module</div>
|
||||
<?php foreach (modules()->all() as $m): ?>
|
||||
<?php if (!empty($m['enabled'])): ?>
|
||||
<?php $active = $currentModule === $m['name']; ?>
|
||||
<a href="/module/<?= e($m['name']) ?>" class="nav-link <?= $active ? 'is-active' : '' ?>"><?= e($m['title']) ?></a>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
<a href="/modules" class="nav-link <?= str_starts_with($path, '/modules') ? 'is-active' : '' ?>">Module</a>
|
||||
<a href="/users" class="nav-link <?= $path === '/users' ? 'is-active' : '' ?>">User</a>
|
||||
<a href="/settings" class="nav-link <?= $path === '/settings' ? 'is-active' : '' ?>">Einstellungen</a>
|
||||
</nav>
|
||||
<div class="layout-body <?= $sidebarEnabled ? 'has-sidebar' : 'no-sidebar' ?> <?= $sidebarDefault === 'open' ? 'sidebar-open' : 'sidebar-collapsed' ?>"
|
||||
data-sidebar-enabled="<?= $sidebarEnabled ? '1' : '0' ?>"
|
||||
data-sidebar-collapsible="<?= $sidebarCollapsible ? '1' : '0' ?>"
|
||||
data-sidebar-default="<?= e($sidebarDefault) ?>">
|
||||
|
||||
<?php if ($sidebarEnabled): ?>
|
||||
<aside class="sidebar card">
|
||||
<?php if ($sidebarCollapsible): ?>
|
||||
<button class="sidebar-toggle" data-sidebar-toggle aria-label="Menü ein-/ausklappen">»»</button>
|
||||
<?php endif; ?>
|
||||
<div class="sidebar-items">
|
||||
<?php foreach ($sidebarItems as $item): ?>
|
||||
<a class="nav-link" href="<?= e($item['href'] ?? '#') ?>"><?= e($item['label'] ?? 'Item') ?></a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="app-content">
|
||||
<button class="floating-toggle" data-sidebar-toggle aria-label="Menü einblenden">»»</button>
|
||||
<main class="main-content">
|
||||
<?php if ($sidebarEnabled && $sidebarCollapsible): ?>
|
||||
<button class="sidebar-fab" data-sidebar-toggle aria-label="Menü einblenden">»»</button>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($moduleMenu): ?>
|
||||
<div class="module-subnav">
|
||||
<?php foreach ($moduleMenu as $entry): ?>
|
||||
<a class="nav-link" href="<?= e($entry['href'] ?? '#') ?>">
|
||||
<?= e($entry['label'] ?? 'Link') ?>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<main class="site-main">
|
||||
<?php if (defined('APP_DEBUG_TOOL') && APP_DEBUG_TOOL): ?>
|
||||
<a class="debug-fab" href="/debug" title="Debug">
|
||||
🐞
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php if (defined('APP_DEBUG_TOOL') && APP_DEBUG_TOOL): ?>
|
||||
<a class="debug-fab" href="/debug" title="Debug">🐞</a>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user