195 lines
6.4 KiB
Plaintext
195 lines
6.4 KiB
Plaintext
@namespace SZUAbsolventenverein.Theme.Website
|
|
@inherits ThemeBase
|
|
@inject ISettingService SettingService
|
|
|
|
<main role="main">
|
|
<nav class="navbar navbar-dark bg-primary fixed-top app-navbar">
|
|
<!-- Logo links -->
|
|
<div class="d-flex align-items-center gap-2 app-navbar-left">
|
|
<Logo />
|
|
</div>
|
|
|
|
<!-- Versteckte Checkbox zum Steuern des Menüs (nur HTML, kein Blazor) -->
|
|
<input type="checkbox" id="nav-toggle" class="nav-toggle" />
|
|
|
|
<!-- Burger-Icon, das die Checkbox toggelt -->
|
|
<label for="nav-toggle" class="nav-toggle-label">
|
|
<span></span>
|
|
<span></span>
|
|
<span></span>
|
|
</label>
|
|
|
|
<!-- Menü-Container, der per :checked ein-/ausgeblendet wird -->
|
|
<div class="app-menu">
|
|
<div class="app-menu-items">
|
|
@if (PageState?.Pages != null)
|
|
{
|
|
// Diese Seitennamen sollen NICHT im Menü erscheinen
|
|
var hiddenNames = new[]
|
|
{
|
|
"Login", "Register", "Reset", "Profile",
|
|
"Search", "Privacy", "Terms", "Not Found", "NotFound"
|
|
};
|
|
|
|
@foreach (var page in PageState.Pages
|
|
.Where(p => p.ParentId == null
|
|
&& p.IsNavigation
|
|
&& !p.IsDeleted
|
|
&& !hiddenNames.Contains(p.Name)))
|
|
{
|
|
<div class="nav-item">
|
|
<a class="nav-link text-white" href="@(@page.Path)">
|
|
@(@page.Name)
|
|
</a>
|
|
</div>
|
|
|
|
var children = PageState.Pages
|
|
.Where(c => c.ParentId == page.PageId
|
|
&& c.IsNavigation
|
|
&& !c.IsDeleted
|
|
&& !hiddenNames.Contains(c.Name));
|
|
|
|
if (children.Any())
|
|
{
|
|
<div class="app-submenu">
|
|
@foreach (var child in children)
|
|
{
|
|
<div class="nav-item">
|
|
<a class="nav-link text-white" href="@child.Path">
|
|
@child.Name
|
|
</a>
|
|
</div>
|
|
}
|
|
</div>
|
|
}
|
|
}
|
|
}
|
|
</div>
|
|
|
|
<!-- WICHTIG: Footer jetzt AUßERHALB von app-menu-items -->
|
|
<div class="app-menu-footer ">
|
|
<UserProfile ShowRegister="@_register" />
|
|
<Login ShowLogin="@_login" />
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Rechts: ControlPanel + User + Login -->
|
|
<div class="d-flex align-items-center gap-2 app-navbar-left">
|
|
<div class="d-flex align-items-center gap-2">
|
|
<ControlPanel/>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<div class="content">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<Pane Name="@PaneNames.Admin" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<Pane Name="Top Full Width" />
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<Pane Name="Top 100%" />
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<Pane Name="Left 50%" />
|
|
</div>
|
|
<div class="col-md-6">
|
|
<Pane Name="Right 50%" />
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<Pane Name="Left 33%" />
|
|
</div>
|
|
<div class="col-md-4">
|
|
<Pane Name="Center 33%" />
|
|
</div>
|
|
<div class="col-md-4">
|
|
<Pane Name="Right 33%" />
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<Pane Name="Left Outer 25%" />
|
|
</div>
|
|
<div class="col-md-3">
|
|
<Pane Name="Left Inner 25%" />
|
|
</div>
|
|
<div class="col-md-3">
|
|
<Pane Name="Right Inner 25%" />
|
|
</div>
|
|
<div class="col-md-3">
|
|
<Pane Name="Right Outer 25%" />
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<Pane Name="Left 25%" />
|
|
</div>
|
|
<div class="col-md-6">
|
|
<Pane Name="Center 50%" />
|
|
</div>
|
|
<div class="col-md-3">
|
|
<Pane Name="Right 25%" />
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<Pane Name="Left Sidebar 66%" />
|
|
</div>
|
|
<div class="col-md-4">
|
|
<Pane Name="Right Sidebar 33%" />
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<Pane Name="Left Sidebar 33%" />
|
|
</div>
|
|
<div class="col-md-8">
|
|
<Pane Name="Right Sidebar 66%" />
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<Pane Name="Bottom 100%" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<Pane Name="Bottom Full Width" />
|
|
</div>
|
|
<CookieConsent />
|
|
</main>
|
|
|
|
|
|
@code {
|
|
public override string Name => "Theme1";
|
|
|
|
public override string Panes => PaneNames.Admin + ",Top Full Width,Top 100%,Left 50%,Right 50%,Left 33%,Center 33%,Right 33%,Left Outer 25%,Left Inner 25%,Right Inner 25%,Right Outer 25%,Left 25%,Center 50%,Right 25%,Left Sidebar 66%,Right Sidebar 33%,Left Sidebar 33%,Right Sidebar 66%,Bottom 100%,Bottom Full Width";
|
|
|
|
private bool _showDropdown = false;
|
|
private bool _login = true;
|
|
private bool _register = true;
|
|
|
|
protected override void OnParametersSet()
|
|
{
|
|
try
|
|
{
|
|
var settings = SettingService.MergeSettings(PageState.Site.Settings, PageState.Page.Settings);
|
|
_login = bool.Parse(SettingService.GetSetting(settings, GetType().Namespace + ":Login", "true"));
|
|
_register = bool.Parse(SettingService.GetSetting(settings, GetType().Namespace + ":Register", "true"));
|
|
}
|
|
catch
|
|
{
|
|
// error loading theme settings
|
|
}
|
|
}
|
|
|
|
|
|
}
|