-
$item['isTrail']?
Hallo,
stehe im Moment vor folgendem Problem:
Ich möchte ein zweizeiliges Menu einrichten, bei dem die erste Zeile das Root-Menu und die zweite Zeile das Sub-Menu darstellt.
Im Grunde ja keine große Hexerei. Zur grafischen Untermalung verwende ich Hintergrundgrafiken. Dazu kann man ganz bequem innerhalb des PHP-Codes 'isAvtive' das eine oder andere DIV-Element hinzufügen.
Code:
<?php foreach ($this->items as $item): ?>
<?php if ($item['isActive']): ?>
...ACTIVE-CODE...
<?php else: ?>
...
<?php endif; ?>
<?php endforeach; ?>
Sobald man nun aber einen Sub-Menu-Link anklickt wird der Active-Link des Root-Menus zu einem Trail-Link. Damit verschwindet auch der ACTIVE-CODE und es bleibt lediglich die Klasse 'trail' für den Trail-Link zur Ansteuerung übrig.
Nun möchte ich aber, dass bei aktiviertem Sub-Menu-Link der Trail-Link weiterhin wie ein Active-Link dargestellt wird, also der ACTIVE-CODE auch für den Trail brauchbar ist. Dafür benötige ich eine PHP-Abfrage, die mir die gleichen Möglichkeiten wie 'isActive' erlaubt.
Gibt es soetwas wie 'isTrail'? Dann könnte ich einfach 'isActive' und 'isTrail' gleich behandeln.
Oder kennt jemand sonst eine Möglichkeit, Active und Trail gleich zu behandeln?
Vielen Dank schon mal im Voraus für jede Hilfe.
Schöne Grüße
Projecta
-
Hallo Projecta,
frag doch einfach den Zustand der Klasse von den Items ab.
Also if class enthält .trail
Ich kann das jetzt nur so theoretisch, fürs praktische müsste ich selber ewig rumprobieren, da ich kein phpler bin.
Aber vllt hilft dir das schon mal und du kannst uns allen zeigen wie das dann geht ;-)
Viele Grüße
-
PHP-Code:
<?php if(strpos($item['class'], 'trail') !== false): ?>
// hier trail-aktionen / code platzieren
<?php elseif($item['isActive']): ?>
// aktiv
<?php endif; ?>
Müsste deine Aufgabe erfüllen, oder? Die Dreifach-Abfrage !== muss so sein, weil strpos($item['class'], 'trail') auch 0 zurück geben kann, und in einfacher Logik ist 0 == false.
Gruß
Markus
-
Danke Markus,
Danke MacKP,
so hab ichs jetzt gemacht und es funktioniert.
Ein 'isTrail' wär vielleicht auch ganz gut, aber so hauts ebenfalls hin. Man wills halt immer einfacher haben ... :D
Danke Markus für deinen Code. Hab nämlich ursprünglich nur nen Stringabgleich gehabt, das hat auch funktioniert, aber hätte, sobald mehr als nur eine Klasse vorhanden wäre, nicht mehr mitgemacht.
Ich werde den gesamten Code noch nachbearbeiten und ihn dann die nächsten Tage samt CSS posten, da ich denke, dass das doch einige interessieren könnte.
Grüße
Projecta