Basiert auf:
TL 2.8.RC2
nav_default.tpl
Kurzbeschreibung:
In Anlehnung an Ticket CSS class for menuitems with subpages hier die Umsetzung. Mit diesem Template-Mod wird dann im Element LI die Klasse hasSub|noSub generiert, mit welcher man die Menüpunkte welche Unterseiten besitzen anders formatieren kann, obwohl die Untermenüpunkte noch nicht generiert sind. Für Einschränkungen bitte im Ticket Punkt 11 von Leo lesen.
Beschreibung/Sonstige Infos:
Direkt nach öffnen der foreach-Schleife wird die Variable $classSub in Abhängigkeit der Variable $items['subpages'] erzeugt.
PHP-Code:
<?php $classSub = $item['subpages'] > 0 ? 'hasSub' : 'noSub'; ?>
Mit folgendem Term wird die Klasse an den Entsprechenden Stellen ins Template generiert:
PHP-Code:
<?php echo $classSub; ?>
Dazu musste ich die ursprüngliche Generierung der CSS-Klasse class="" ein wenig umstellen, damit die Klasse auf jeden Fall generiert wird und die Leerzeichen bei Mehfachklassen richtig gesetzt werden.
Hier das kompl. Template nav_default_mod.tpl etwas eingerückt für leichtere Lesbarkeit. Im Anhang dann ohne diese Einrückung:
PHP-Code:
<ul class="<?php echo $this->level; ?>">
<?php foreach ($this->items as $item): ?>
<?php $classSub = $item['subpages'] > 0 ? 'hasSub' : 'noSub'; ?>
<?php if ($item['isActive']): ?>
<li class="active <?php echo $classSub; ?><?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><span class="active<?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><?php echo $item['link']; ?></span><?php echo $item['subitems']; ?></li>
<?php else: ?>
<li class="<?php echo $classSub; ?><?php if ($item['class']): ?> <?php echo $item['class']; ?><?php endif; ?>"><a href="<?php echo $item['href']; ?>" title="<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>"<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?php echo $item['accesskey']; ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?php echo $item['tabindex']; ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?><?php echo $item['target']; ?>><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
Gruß Andreas
Die Screenshots zeigen das Ergebniss formatiert mit:
Code:
.hasSub a:after { content: " hasSub"; }
.noSub a:after { content: " noSub"; }
.active span:after { content: " active"; }
Ihr könnt sehen, dass die Seite Courses mit hasSub ausgezeichnet ist, obwohl keine Unterseiten vorhanden sind. Das liegt an der Einschränkung (siehe Ticket), da Courses geschützte Unterseiten hat. Screeshot 2 zeigt dieselbe Seite mit Stoplevel = 1.
Lesezeichen