mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Hmvc: Safer Code
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
<?php
|
||||
if (!isset($menu)) {
|
||||
$menu = [];
|
||||
if (property_exists($this->router, 'menu') && $this->router->menu && property_exists($this->router->menu, 'children')) {
|
||||
$menu = $this->router->menu->children;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<header id="cis-header" class="navbar-dark">
|
||||
<button id="nav-main-btn" class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#nav-main" aria-controls="nav-main" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
@@ -6,11 +14,13 @@
|
||||
<img src="<?= base_url('/public/images/logo-300x160.png'); ?>" alt="Logo">
|
||||
</a>
|
||||
<nav id="nav-main" class="offcanvas offcanvas-start bg-dark" tabindex="-1" aria-labelledby="nav-main-btn" data-bs-backdrop="false">
|
||||
<div id="nav-main-toggle" class="position-static d-none d-lg-block bg-dark">
|
||||
<button type="button" class="btn bg-dark text-light rounded-0 p-1 d-flex align-items-center" data-bs-toggle="collapse" data-bs-target="#nav-main-menu" aria-expanded="true" aria-controls="nav-main-menu">
|
||||
<i class="fa fa-arrow-circle-left"></i>
|
||||
</button>
|
||||
</div>
|
||||
<?php if ($menu) { ?>
|
||||
<div id="nav-main-toggle" class="position-static d-none d-lg-block bg-dark">
|
||||
<button type="button" class="btn bg-dark text-light rounded-0 p-1 d-flex align-items-center" data-bs-toggle="collapse" data-bs-target="#nav-main-menu" aria-expanded="true" aria-controls="nav-main-menu">
|
||||
<i class="fa fa-arrow-circle-left"></i>
|
||||
</button>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="offcanvas-body p-0">
|
||||
<fhc-searchbar id="nav-search" class="fhc-searchbar w-100" :searchoptions="searchbaroptions" :searchfunction="searchfunction"></fhc-searchbar>
|
||||
<button id="nav-user-btn" class="btn btn-link rounded-0" type="button" data-bs-toggle="collapse" data-bs-target="#nav-user-menu" aria-expanded="false" aria-controls="nav-user-menu">
|
||||
@@ -22,15 +32,17 @@
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><a class="btn btn-level-2 rounded-0 d-block" href="<?= site_url('Cis/Auth/logout'); ?>">Logout</a></li>
|
||||
</ul>
|
||||
<div id="nav-main-menu" class="collapse collapse-horizontal show">
|
||||
<div>
|
||||
<?php
|
||||
foreach($menu as $entry) {
|
||||
$this->load->view('templates/CISHMVC-Menu/Entry', ['entry' => $entry, 'menu_id' => 'menu']);
|
||||
}
|
||||
?>
|
||||
<?php if ($menu) { ?>
|
||||
<div id="nav-main-menu" class="collapse collapse-horizontal show">
|
||||
<div>
|
||||
<?php
|
||||
foreach ($menu as $entry) {
|
||||
$this->load->view('templates/CISHMVC-Menu/Entry', ['entry' => $entry, 'menu_id' => 'menu']);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
@@ -1,37 +1,57 @@
|
||||
<?php
|
||||
if (is_array($entry) && isset($entry['content_id']))
|
||||
$entry = (object)$entry;
|
||||
$menu_id .= '-' . $entry->content_id;
|
||||
|
||||
if (!isset($content_id))
|
||||
$content_id = $entry->content_id;
|
||||
|
||||
if (!isset($path))
|
||||
$path = '';
|
||||
|
||||
$menu_id .= '-' . $content_id;
|
||||
|
||||
// TODO(chris): remove! DEBUG
|
||||
#$entry->menu_open = false;
|
||||
|
||||
$link = $entry->url;
|
||||
$target = $entry->target;
|
||||
if (property_exists($entry, 'path')) {
|
||||
$lang = getUserLanguage();
|
||||
$link = $path . '/' . $entry->path[$lang];
|
||||
$active = in_array($content_id, $this->router->breadcrumb);
|
||||
$menu_open = $active ? true : (property_exists($entry, 'menu_open') ? $entry->menu_open : false);
|
||||
$target = '';
|
||||
$title = htmlspecialchars($entry->sprache[$lang]->titel);
|
||||
} else {
|
||||
$link = $entry->url;
|
||||
$active = false;
|
||||
$menu_open = $entry->menu_open;
|
||||
$target = $entry->target;
|
||||
$title = htmlspecialchars($entry->titel);
|
||||
$entry->children = $entry->childs;
|
||||
}
|
||||
|
||||
?>
|
||||
<?php if ($entry->childs) { ?>
|
||||
<?php if ($entry->children) { ?>
|
||||
<?php if (substr($link, 0, 1) == '#') { ?>
|
||||
<a href="#<?= $menu_id; ?>" data-bs-toggle="collapse" aria-expanded="<?= $entry->menu_open ? 'true' : 'false'; ?>" class="btn btn-default rounded-0 w-100 text-start dropdown-toggle btn-level-<?= substr_count($menu_id, '-'); ?><?= $entry->menu_open ? '' : ' collapsed'; ?>">
|
||||
<span><?= htmlspecialchars($entry->titel); ?></span>
|
||||
<a href="#<?= $menu_id; ?>" data-bs-toggle="collapse" aria-expanded="<?= $menu_open ? 'true' : 'false'; ?>" class="btn btn-default rounded-0 w-100 text-start dropdown-toggle btn-level-<?= substr_count($menu_id, '-'); ?><?= $menu_open ? '' : ' collapsed'; ?><?= $active ? ' active' : ''; ?>">
|
||||
<span><?= $title; ?></span>
|
||||
</a>
|
||||
<?php } else { ?>
|
||||
<div class="btn-group w-100">
|
||||
<a<?= $link ? ' href="' . $link . '"' : ''; ?><?= $target ? ' target="' . $target . '"' : ''; ?> class="btn btn-default rounded-0 text-start btn-level-<?= substr_count($menu_id, '-'); ?>">
|
||||
<?= htmlspecialchars($entry->titel); ?>
|
||||
<a<?= $link ? ' href="' . $link . '"' : ''; ?><?= $target ? ' target="' . $target . '"' : ''; ?> class="btn btn-default rounded-0 text-start btn-level-<?= substr_count($menu_id, '-'); ?><?= $active ? ' active' : ''; ?>">
|
||||
<?= $title; ?>
|
||||
</a>
|
||||
<a href="#<?= $menu_id; ?>" data-bs-toggle="collapse" aria-expanded="<?= $entry->menu_open ? 'true' : 'false'; ?>"class="btn btn-default rounded-0 dropdown-toggle dropdown-toggle-split flex-grow-0<?= $entry->menu_open ? '' : ' collapsed'; ?>" >
|
||||
<a href="#<?= $menu_id; ?>" data-bs-toggle="collapse" aria-expanded="<?= $menu_open ? 'true' : 'false'; ?>"class="btn btn-default rounded-0 dropdown-toggle dropdown-toggle-split flex-grow-0<?= $menu_open ? '' : ' collapsed'; ?><?= $active ? ' active' : ''; ?>" >
|
||||
<span class="visually-hidden">Toggle Dropdown</span>
|
||||
</a>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<ul id="<?= $menu_id; ?>" class="nav w-100 collapse<?= $entry->menu_open ? ' show' : ''; ?>">
|
||||
<?php foreach ($entry->childs as $child)
|
||||
$this->load->view('templates/CISHMVC-Menu/Entry', ['entry' => $child, 'menu_id' => $menu_id]);
|
||||
<ul id="<?= $menu_id; ?>" class="nav w-100 collapse<?= $menu_open ? ' show' : ''; ?>">
|
||||
<?php foreach ($entry->children as $id => $child)
|
||||
$this->load->view('templates/CISHMVC-Menu/Entry', ['content_id' => $id, 'entry' => $child, 'menu_id' => $menu_id, 'path' => $path]);
|
||||
?>
|
||||
</ul>
|
||||
<?php } else { ?>
|
||||
<a<?= $link ? ' href="' . $link . '"' : ''; ?><?= $target ? ' target="' . $target . '"' : ''; ?> class="btn btn-default rounded-0 w-100 text-start btn-level-<?= substr_count($menu_id, '-'); ?>">
|
||||
<?= htmlspecialchars($entry->titel); ?>
|
||||
<a<?= $link ? ' href="' . $link . '"' : ''; ?><?= $target ? ' target="' . $target . '"' : ''; ?> class="btn btn-default rounded-0 w-100 text-start btn-level-<?= substr_count($menu_id, '-'); ?><?= $active ? ' active' : ''; ?>">
|
||||
<?= $title; ?>
|
||||
</a>
|
||||
<?php } ?>
|
||||
|
||||
Reference in New Issue
Block a user