Webmastering

universelle Quelltextgenerierung einer Navigation mit php

Hier stelle ich meine neue (V1.0) Quellcode-Generierung einer Navigation vor.

Ich möchte mich hier vor allem bei Ingo Turski bedanken, der mir im homepage-forum viele Anregungen zur Verbesserung des Scriptes gegeben hat.

Beispiel ansehen

Download

Der Download enthält:
- pere-universal-navi_v10.php
- .htnavigation.txt
- .htpere-navigation_v10.cfg

in gezipter Form.



Übersicht

Diese Generierung bietet folgende Möglichkeiten an:

Für diese Quelltextgenerierung werden vier Dateien benötigt:


nach oben

Die Textdatei .htnavigation.txt

Beispiel-Textdatei eines 3-Ebenen Menü

1|Zur Hauptseite|link|wm-phpscript-navi02.php|Zur Navi-Startseite|z
1|Tierisches|hx|
1|Fisch|link|samples/fisch.php||f
1|Fleisch|link|samples/fleisch.php||l
1|Vegetarisches|hx|
1|Gemüse|em|samples/gemuese.php|verschiedene Gemüsesorten|
2|Blumenkohl|link|samples/blumenkohl.php|Blumenkohl|u
2|Rote Beete|link|samples/rotebeete.php|Rote Beete|o
1|Obst|em|samples/obst.php|
2|Orangen|link|samples/orangen.php|leckere Apfelsinen|r
2|Birnen|link|samples/birnen.php|eine Vielzahl an Birnen|i
2|Äpfel|em|samples/aepfel.php|verschiedene Äpfel|p|
3|Breburn|link|samples/breburn.php|der Apfel Breburn|b
3|Elstar|link|samples/elstar.php|der Apfel Elstar|e
1|Backwaren|link|samples/backwaren.php|Backwaren aller Art|a

In diese Datei werden alle Parameter der Navigation eingetragen. Es ist auch die einzige Datei die Sie als Anwender bearbeiten müssen, wenn neue Navigationspunkte dazu kommen, oder welche wegfallen, oder die Auszeichnung geändert werden soll.

In diese Textdatei werden folgende Parameter (in genau dieser Reihenfolge) eingetragen:

getrennt werden die einzelnen Eingaben durch einen senkrechten Strich "|". Es müssen nicht alle Punkte eingegeben werden (siehe Beispieldatei)

Die Elemente der .htnavigation.txt

Ebenenzahl:
Hier wird die Ebenenhirachie nummerisch festgelegt. Eine "1" sagt, dass der Menüpunkt in der ersten Ebene angezeigt wird und keinen übergeordneten anderen Menüpunkt hat. Besitzt ein Menüpunkt weitere Unterpunkte, müssen diese unmittelbar unter diesem Punkt eingetragen werden und die Ebenenzahl "2" bekommen. Diese Vorgehensart wiederholt sich für jede weitere Ebene, es gibt keine Ebenenbegrenzung.

der anzuzeigende Text:
Dieser Eintrag legt fest, was der Besucher sehen soll. Dabei können auch html-Elemente verwendet werden. Es kann sowohl einfacher Text als auch Grafiken/Bilder eingetragen werden. Bei Grafiken/Bildern muss der html-Quellcode der Grafik (des Bildes) standardkonform eingetragen werden ( <img src="pfad_zum_bild.jpg" alt="alternativtext" /> ).

die Auszeichnungsart:
Hier legen Sie fest, wie der anzuzeigende Text ausgezeichnet wird. Es stehen drei Alternativen zur Wahl:

  1. "link" -> Der Text wird als Hyperlink ausgezeichnet (<a href="zieldatei.php">Text</a>).
  2. "em" -> Der Text wird hervorgehoben ausgezeichnet (<em>Text</em>)
  3. "hx" -> Der Text wird als Überschrift ausgezeichnet. (<h3>Text</h3> Die Hirachie legen sie in der Konfigurationsdatei fest)

Standardmäßig werden Sie die Auszeichnungsart "link" verwenden. Eine Auszeichnung mit "em" bietet sich bei Menüpunkten an, die mehrere Unterpunkte haben und keine eigene Inhaltsseite. Die Auszeichnung "hx" kann verwendet werden, um Trennungen/Kategorisierungen innerhalb der Navigation zu realisieren. Geben Sie bei der Auszeichnungsart nichts ein, dann wird normaler Text generiert (<li>Text</li>)

der Link:
tragen Sie hier den Pfad zu der dem Link zugehörigen Zieldatei ein. Dieser Pfad muss immer vom Root Ihrer Website ausgehen!

der Titel:
Wenn Sie beim überfahren des Links mit der Maus einen Titel anzeigen wollen, tragen Sie hier den Text dieses Titels ein.

der Hot-Key:
Soll Ihre Navigation mit der Tastatur (Accsesskeys) bedienbar sein, können Sie hier einen Buchstaben festlegen, der den Link aufruft. Wenn Sie nichts eingeben werden bei der Aktivierung der Accsesskeys in der Konfigurationsdatei automatisch entsprechende Buchstaben vergeben.


nach oben


Die Datei .htpere-universal-navi_v10.cfg

In der Konfigurationsdatei werden die grundlegenden Einstellungen definiert. In den meisten Fällen ist keine Änderung notwendig, wer aber will kann hier eigene Namen für die Klassifikatoren und Identifikatoren vergeben.

Achtung!: Es dürfen nur die Werte zwischen den doppelten Doppelpunkten (::wert::) verändert werden. Bei numerischen Eingaben dürfen nur die in der Beschreibung stehenden Werte eingetragen werden.

Folgende Angaben sind in dieser Datei konfigurierbar:

Pfad zur ".htnavigation.txt" vom Root ausgehend:
Default-Einstellung: "navigation/.htnavigation.txt"

ID der Navigation:
Default-Einstellung: "navigation"

ID des Listenpunktes der aktuellen Seite:
Default-Einstellung: "akt_li"

Klasse der der aktuellen Seite übergeordneten Listenpunkte:
Default-Einstellung: "opkt_li"

Hirachie für Zwischenüberschriften der ersten Menüebene festlegen:
Default-Einstellung: "h3"

Ein-/Ausschalten der Accsesskey-Vergabe:
Default-Einstellung: "0"

Anhang an Listenpunkte, die weitere Unterpunkte enthalten:
Default-Einstellung: "&raquo;"

Ein-/Ausschalten der Vergabe von unterschiedlichen Klassifikatoren für alle Links:
Default-Einstellung: "0"


nach oben


Die Datei pere-universal-navi_v10.php

Die Quelltextgenerierung erfolgt in der Datei "pere-universal-navi_v10.php". Ich werde den Quellcode hier nicht weiter erläutern. Die Elemente, die ich in meiner "einfachen Navigation" erklärt habe, sind hier natürlich auch vertreten. Dazu kommt nur noch das auslesen der ".htnavigation.txt" und der .htpere-navigation_v09.cfg und das zusammensetzen der Listenpunkte gemäß den Eintragungen in die Textdatei.

Aus der oben gezeigten Beispieldatei erzeugt meine Datei folgenden Quelltext
(die aktive Seite ist "breburn.php" und die Accsesskeys sind aktiviert.):

<ul id="navigation">
    <li><a href="../wm-phpscript-navi02.php" title="Zur Navi-Startseite" accesskey="z" ><span class="hotkey">Z</span>ur Hauptseite</a></li>
    <li><h3>Tierisches</h3></li>
    <li><a href="../samples/fisch.php" accesskey="f" ><span class="hotkey">F</span>isch</a></li>
    <li><a href="../samples/fleisch.php" accesskey="l" >F<span class="hotkey">l</span>eisch</a></li>
    <li><h3>Vegetarisches</h3></li>
    <li><em>Gemüse »</em>
        <ul>
            <li><a href="../samples/blumenkohl.php" title="Blumenkohl" accesskey="u" >Bl<span class="hotkey">u</span>menkohl</a></li>
            <li><a href="../samples/rotebeete.php" title="Rote Beete" accesskey="o" >R<span class="hotkey">o</span>te Beete</a></li>
        </ul>
    </li>
    <li class="opkt_li"><em>Obst »</em>
        <ul>
            <li><a href="../samples/orangen.php" title="leckere Apfelsinen" accesskey="r" >O<span class="hotkey">r</span>angen</a></li>
            <li><a href="../samples/birnen.php" title="eine Vielzahl an Birnen" accesskey="i" >B<span class="hotkey">i</span>rnen</a></li>
            <li class="opkt_li"><em>Äpfel »</em>
                <ul>
                    <li id="akt_li"><strong><span class="hotkey">B</span>reburn</strong></li>
                    <li><a href="../samples/elstar.php" title="der Apfel Elstar" accesskey="e" ><span class="hotkey">E</span>lstar</a></li>
                </ul>
                </li>
        </ul>
    </li>
    <li><a href="../samples/backwaren.php" title="Backwaren aller Art" accesskey="a" >B<span class="hotkey">a</span>ckwaren</a></li>
</ul>


nach oben


Die CSS-Datei

Der Formatierung einer Navigation sind keine Grenzen gesetzt, deswegen gibt es auch keine allgemeingültige CSS-Datei. Da soll jeder seine eigenen Vorstellungen verwirklichen.
So könnte z. B. die oben gezeigte Liste formatiert werden: Beispielformatierung einer 3-Ebenen-Navigation


nach oben


Die Installation

Installation für eine Navigation auf der Website:

Jetzt brauchen Sie nur noch Ihre Navigation mit CSS zu formatieren.


Installation für mehrere Navigation auf der Website:

Erstellen Sie für jede Navigation die gewünschten CSS-Anweisungen. Das Programm erweitert die ID- und Klassennamen jeder Navigation um den entsprechenden Navigationsnamen (z. B.: ul#navigation_top und ul#navigation_left), so das jede Navigation vollkommen unabhängig formatiert werden kann.

nach oben


Lizenz

Dieses Script ist kostenlos und für den Einsatz in privaten und/oder komerziellen Websites unter folgenden Voraussetzungen freigegeben:

Das Script darf bearbeitet, verändert und erweitert werden. Entsprechende Einträge (Name, Datum, Kontaktmöglichkeit, Bemerkungen) sollten in den Dateien unter dem Urhebereintrag vermerkt werden.

nach oben