Ich bin gerade dabei eine Bootstrap Navigation zu bauen und bin dabei ein merkwürdiges Verhalten gestoßen und das sieht für mich aus als wenn es ein Fehler wäre.
Ich habe folgenden RT:
{NAV_LIST_UL:PB,0,2,|nav navbar-nav,active|nav-link}
Damit bekommt mein erstes
<ul>
die Klassen nav navbar-nav
zugewiesen. Das ist richtig.Im Quellcode sieht das dann so aus:
Code: Select all
<ul class="nav navbar-nav">
<li class="nav-item active"><a href="index-view.html" class="nav-link" title="Home">Home</a></li>
<li class="nav-item"><a href="test-1.html" class="nav-link" title="Test 1">Test 1</a></li>
<li class="nav-item"><a href="test-2.html" class="nav-link" title="Test 2">Test 2</a></li>
<li class="nav-item"><a href="test-3.html" class="nav-link" title="Test 3">Test 3</a></li>
</ul>
nav-item
wird über die conf.template_default.inc.php eingeschleust.Solange das Elternelement Home aktiv ist, ist alles ok.
Das Elternelemt bezieht die Klasse
nav-link
hierbei aus dem RT da sich diese Klasse nicht über die conf.template_default.inc.php einschleusen lässt.Bei den Unterebenen sieht das anders aus. Diese bekommen die Klasse aus der conf.template_default.inc.php :
'navlist-link-class' => 'nav-link',
Klicke ich nun aber auf einen Link, der eine Unterebene öffnet passiert folgendes:
Das Eleternelement verliert den active State, was ja auch richtig ist, aber es verliert ebenfalls die Klasse
nav-link
. Statt dessen wird diese Klasse nun beim aktiven Element zwei mal gerendert da scheinbar mit dem active State auch die Klasse "verschoben" wird. Jedoch hat das nichts mit dem State zu tun da die Klasse auch verschwindet wenn ich versuchsweise active
entferne.
Code: Select all
<ul class="nav navbar-nav">
<li class="nav-item"><a href="index-view.html" title="Home">Home</a></li>
<li class="nav-item active"><a href="test-1.html" class="nav-link nav-link" title="Test 1">Test 1</a></li>
<li class="nav-item"><a href="test-2.html" class="nav-link" title="Test 2">Test 2</a></li>
<li class="nav-item"><a href="test-3.html" class="nav-link" title="Test 3">Test 3</a></li>
</ul>
Entferne ich nun die Klasse aus dem RT....
{NAV_LIST_UL:PB,0,2,|nav navbar-nav,active}
, so habe ich auf normalem Wege keine Möglichkeit diese dem Elternelement zuzuweisen da dies über die conf.template_default.inc.php nicht umsetzbar ist.Der einzige Weg, der mir hier bleibt nennt sich Frontend-Render mit folgendem Script:
Code: Select all
$content['all'] = str_replace('<a href="index-view.html" title="Home">Home</a>', '<a href="index-view.html" class="nav-link" title="Home">Home</a>', $content['all']);
nav-link
auch dann gerendert wird, wenn das Elternelement nicht aktiv ist und damit bleibt dann auch das optische Erscheinungsbild bestehen.Ich denke dass hier ein Fehler vorliegt, denn ich kann mir beim besten Willen nicht vorstellen dass Oliver das absichtlich so aufgebaut hat.
Vielleicht hat ja jemand das gleiche Problem und sucht nach einer vorübergehenden Lösung.
@Oliver....
Wenn nötig erstelle ich gerne ein Issue.