Seite 1 von 1
Navigation - Auswahl hervorheben
Verfasst: 07.10.2007 13:39
von TomW
Hallo,
Ich verwende das Framework YAML in Verbindung mit phpbb, jetzt möchte ich in der Navigation die Auswahl entsprechend hervorheben. Meine Navigation sieht so aus.
Code: Alles auswählen
<div id="nav_main">
<ul>
<li><a href="layout.php">Home</a></li>
<li id="current"><a href="index.php">Forum</a></li>
<li><a href="vor-ort.html">Vor-Ort</a></li>
<li><a href="online.html">Online-Sitzung</a></li>
<li><a href="lexikon.php">Lexikon</a></li>
<li><a href="downloads.php">Downloads</a></li>
<li><a href="boardregeln.php">Regeln</a></li>
<li><a href="team.php">Team</a></li>
</ul>
</div>
Die Auswahl wird hier mit "id="current"" hervorgehoben, jetzt steht dieser Code aber in der overall_header, und wie schaffe ichs da dass wenn ich z.B. auf Team klicke das "id="currend"" nach " <li><a href="team.php">Team</a></li>" wandert?
TomW
Verfasst: 07.10.2007 14:37
von mad-manne
Hallo Tom,
dazu sind mehrere Schritte notwendig, die ich hier mal
exemplarisch skizziere ...
- 1. Aktives Modul "bekannt" machen ...
Zunächst einmal musst du in jedem "Hauptmodul" eine Variable setzen. Dazu suchst du in jedem Modul den Aufruf der includes/page_header.php, der meist inetwa so aussehen sollte:
Code: Alles auswählen
//
// Generate page
//
$page_title = 'foo';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
Nun fügst du vor der Zeile mit der $page_title-Zuweisung folgendes ein:
Dadurch kannst du der includes/page_header.php aus jedem Modul "mitteilen", welches gerade aktiv ist.
- 2. Aktives Modul erkennen ...
Dies musst du dann logischerweise in der includes/page_header.php prüfen und entsprechend den nächsten Schritt vorbereiten. Dazu öffnest du die includes/page_header.php und suchst eine geeignete Stelle um diese Abfrage einzufügen. Denkbar wäre z.b. der Bereich direkt vor der Übergabe der Variablen an die Template-Engine. Dazu suchst du folgende Stelle:Code: Alles auswählen
$template->assign_vars(array(
'SITENAME' => $board_config['sitename'],
Davor kannst du dann folgendes einfügen:
Code: Alles auswählen
// Aktives Modul in Navigation hervorheben
// Zunächst alle Modul-Indikatoren löschen ...
$nav_indicator_index = '';
$nav_indicator_modul1 = '';
$nav_indicator_modul2 = '';
$nav_indicator_modul3 = '';
// jetzt aktives Modul "markieren" ...
switch ($nav_current)
{
case 'modul1':
$nav_indicator_modul1 = 'id="current"';
break;
case 'modul2':
$nav_indicator_modul2 = 'id="current"';
break;
case 'modul3':
$nav_indicator_modul3 = 'id="current"';
break;
default:
$nav_indicator_index = 'id="current"';
}
- 3. Markierung ans Template übergeben
Nun etwas weiter unten in der includes/page_header.php z.B. vor folgendes einfügen:
Code: Alles auswählen
// NAVIGATIONS-HERVORHEBUNG
'NAV_INDICATOR_INDEX' => $nav_indicator_index,
'NAV_INDICATOR_MODUL1' => $nav_indicator_modul1,
'NAV_INDICATOR_MODUL2' => $nav_indicator_modul2,
'NAV_INDICATOR_MODUL3' => $nav_indicator_modul3,
- 4. Markierung im Template anwenden
Nun musst du nur noch in der templates/DEIN_TEMPLATE/overall_header.tpl etwas in der Art einbauen ...
Code: Alles auswählen
<div id="nav_main">
<ul>
<li {NAV_INDICATOR_INDEX}><a href="index.php">Home</a></li>
<li {NAV_INDICATOR_MODUL1}><a href="modul_1.php">Modul 1</a></li>
<li {NAV_INDICATOR_MODUL2}><a href="modul_2.php">Modul 2</a></li>
<li {NAV_INDICATOR_MODUL3}><a href="modul_3.php">Modul 3</a></li>
</ul>
</div>
Viel Spass und Erfolg bei der konkreten Umsetzung

Manne
Verfasst: 07.10.2007 14:45
von TomW
Danke werde das mal probieren
TomW
Verfasst: 07.10.2007 14:58
von TomW
GENIAL!!!
Danke!!!
TomW