Aktives Menüelement
- Edi
- Site Admin
- Posts: 3121
- Joined: Sun Aug 09, 2015 5:01 pm
- Location: Zurich
- Has thanked: 54 times
- Been thanked: 78 times
- Contact:
Beispiele dafür enthält das Plugin "Menü aller Seiten".
Als Klasse für einen aktiven Hauptmenüpunkt beispielsweise wird definiert:
Als Klasse wird bei einem aktiven Hauptmenüpunkt also die Klasse "active" mit (($parent->key()==$Url->slug())?' active':'') hinzugefügt.
Als Klasse für einen aktiven Hauptmenüpunkt beispielsweise wird definiert:
Code: Select all
$html .= '<a class="parent'.( ($parent->key()==$Url->slug())?' active':'').'" href="'.$parent->permalink().'">'.$parent->title().'</a>';
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
Wo genau muss ich diesen Code nun in meiner Navigation einsetzen?
Code: Select all
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<?php
$parents = $pagesParents[NO_PARENT_CHAR];
foreach($parents as $Parent) {
echo '<li><a href="'.$Parent->permalink().'">'.$Parent->title().'</a></li>';
}
?>
</ul>
</div>
- Edi
- Site Admin
- Posts: 3121
- Joined: Sun Aug 09, 2015 5:01 pm
- Location: Zurich
- Has thanked: 54 times
- Been thanked: 78 times
- Contact:
Versuche es einmal so:
Und nicht vergessen, im CSS die Klasse "active" zu definieren.
Code: Select all
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<?php
$parents = $pagesParents[NO_PARENT_CHAR];
foreach($parents as $Parent) {
echo '<li><a class="parent'.( ($parent->key()==$Url->slug())?' active':'').'" href="'.$parent->permalink().'">'.$parent->title().'</a></li>';
}
?>
</ul>
</div>
Clickwork - Websites mit Bludit | Planet Bludit - Tipps und Snippets
Ich habe den Code so eingesetzt. Merkwürdigerweise erhalte ich den Error, dass 'parent' nicht definiert ist. Eigentlich verwende ich diese doch bereits?
Notice: Undefined variable: parent in C:\MAMP\htdocs\bludit\bl-themes\cleanblog2\php\navbar.php on line 21
Fatal error: Uncaught Error: Call to a member function key() on null
Notice: Undefined variable: parent in C:\MAMP\htdocs\bludit\bl-themes\cleanblog2\php\navbar.php on line 21
Fatal error: Uncaught Error: Call to a member function key() on null
Hallo liebe Community!
Verzeihung das ich diesen alten Topic wieder hochhole. In der Version 3.10.0 ist der beschriebene Codeschnippsel nicht mehr zu finden. Ich selbst, bin leider nicht befähigt, das in die neue Version zu übersetzen.
Mag mir da jemand helfen?
Viele Grüße
planlos
Verzeihung das ich diesen alten Topic wieder hochhole. In der Version 3.10.0 ist der beschriebene Codeschnippsel nicht mehr zu finden. Ich selbst, bin leider nicht befähigt, das in die neue Version zu übersetzen.
Mag mir da jemand helfen?
Viele Grüße
planlos
-
- Sr. Bludit
- Posts: 33
- Joined: Tue Jun 11, 2019 11:36 am
- Has thanked: 2 times
- Been thanked: 2 times
Eine Möglichkeit: Such dir in deinem Theme im Ordner /php die navbar.php.
Dort findest du meist:
Das ergänzt du dann zB. zu diesem Code:
Immer wenn der pageKey mit dem urlSlug übereinstimmt, wird der nav-link-Klasse eine active-Klasse hinzugefügt. So mach ich das bei mir. Die active-Klasse kannst du dann nach Wunsch mit css stylen.
Dort findest du meist:
Code: Select all
<!-- Static pages -->
<?php foreach ($staticContent as $staticPage): ?>
<li class="nav-item">
<a class="nav-link " href="<?php echo $staticPage->permalink(); ?>"><?php echo $staticPage->title(); ?></a>
</li>
<?php endforeach ?>
Code: Select all
<!-- Static pages -->
<?php foreach ($staticContent as $staticPage): ?>
<li class="nav-item">
<?php $active = ($staticPage->key() == $url->slug())? 'active': ''; ?>
<a class="nav-link <?php echo $active; ?>" href="<?php echo $staticPage->permalink(); ?>"><?php echo $staticPage->title(); ?></a>
</li>
<?php endforeach ?>