Erstellen von Dropdown-Menüs mittels Parent/Child-Beziehung

Post Reply
ste4x4
Jr. Bludit
Posts: 1
Joined: Fri Apr 28, 2023 11:55 pm

Hallo zusammen,

aktuell habe ich Bludit mit dem "sea point"-Theme laufen.
Das Theme fügt statische Seiten automatisch in die Navbar ein, was an sich auch in Ordnung ist.

Allerdings hätte ich, da die Webseite einige statische Seiten hat und das ganze so schnell unübersichtlich wird, gerne die Möglichkeit dropdown-Menüs zu erstellen. Am besten in dem ich der Seite die die "Wurzel" des Menüs darstellen soll die Menüeinträge (also sprich andere statische Seiten) als Child-Objekt zuordne. Meines Wissens (und nach einem Tests) unterstützt das Theme das ich verwende dies nicht von Haus aus.

Falls jemand von euch zufällig eine Idee haben sollte wie ich das am geschicktesten anstellen kann währe ich sehr dankbar :)

Grüße
ste4x4
User avatar
arakel2
Ssr. Bludit
Posts: 24
Joined: Sun Mar 28, 2021 11:14 am
Has thanked: 1 time

Hallo ste4x4,

unter bl-themes\sea-point-master\php die alte navbar.php sichern, eine neue erstellen mit:

Code: Select all

<nav class="navbar navbar-expand-lg navbar-light" id="mainNav"> <!-- add fixed-top to the style for fun-->
    <div class="container">
        <a class="navbar-brand" href="<?php echo $site->url() ?>"><?php echo $site->title() ?></a>
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <?php echo $language->get('Menu') ?><i class="fa fa-bars"></i>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ml-auto">

            <?php
            foreach ($staticContent as $staticPage){
                if ($staticPage->isParent() && $staticPage->hasChildren()) {
                    echo '<li class="nav-item dropdown">';
                    echo '<a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-expanded="false">'.$staticPage->title().'</a>';
                    echo '<div class="dropdown-menu">';
                    $children = $staticPage->children();
                        foreach($children as $child){
                           echo '<a class="dropdown-item" href="'.$child->permalink().'">'.$child->title().'</a>';
                        }
                        echo '</div></li>';
                    }
                    else {
                        if ($staticPage->isParent()){
                            echo '<li class="nav-item';
                            if  ($page->title() == $staticPage->title()) echo ' active';
                            echo '"><a class="nav-link" href="'.$staticPage->permalink().'">'.$staticPage->title().'</a></li>';
                        }
                    }
                }
                ?>
            </ul>
        </div>
    </div>
</nav>
Hoffe das funktioniert wie gewünscht.
Ist ggf. noch etwas fummeln, damit es mit Bootstrap gut ausschaut.
Gruß Arakel
Post Reply