Navigation mit include() einbinden

Zur Einbindung einer Navigation in eine HTML Seite benötigt kann man den Befehl include() verwwenden. Voraussetzung ist, dass php auf dem Server läuft.

Der Vorteil – man erstellt nur einmal eine Navigationsdatei und kann diese in viele Seiten einbinden. Ändert sich das Menü, ist nur die Änderung einer Datei – nähmlich der ausgelagerten Navigationsdatei notwendig.

Im ersten Schritt erstellen wir die Navigationsdatei z.B.: mit dem Namen navigation.inc. Dabei ist jeder Namen und auch jede Änderung zulässig. Von den Endungen html und php rate ich aus Sicherheitsgründen ab. Jede Datei, in der die Navigation über den include Befehl eingebunden werden soll, muß die Dateiendung php haben! (eben nicht html)

Inhalt der Datei navigation.inc

<ul>
<li><a href=" http://www.beispiel.de">Home</a></li>
<li><a href="http://www.beispiel.de/tolleseite.php">Tolle Seite</a></li>
<li><a href="http://www.beispiel.de/urlaub/bilder.php"></a>Urlaubsbilder</li>
<li><a href="http://www.beispiel.de/impressum.php"></a>Impressum</li>
</ul>

Der zweite Schritt: In den Seiten, in denen ihr die Navigation einbauen wollt, braucht ihr dann nur noch die include-Funktion aufrufen:

Datei tolleseite.php

..
<?php include ("navigation.inc"); ?>
...

Änderungen der Navigation brauchen ab sofort nur noch in der navigation.inc erfolgen, damit sie auf allen Seiten erscheinen.

Seiten mit include() einbinden

Möchte man auf einer Indexseite index.php eine Navigation einbauen, welche dynamisch nur die Inhalte in diese Seite einträgt, kann man diese mit dem Befehl include() erledigen. Alternativ könnt man auch nur die Navigation in die einzelnen Seiten einbinden. Dann muß trotzdem jede Inhaltsseite einen Kopfbereich haben – eben den vollen Inhalt einer HTML Seite (nur die Navigation wird ergänzt).

Ich finde es schöner, wenn man eine index.php hat und dazu dann der Text des Inhaltes geladen wird. Das erspart Schreibaufwand, da nur der Inhalt in einer Textdatei ausgelagert werden muß – also keine Meta Daten, CSS Verweise,… Nachteilig ist allerdings, dass es dann nur den einen Medatdatensatz der index.php mit den Suchinformationen für die Crowler gibt.

Los gehts:

Wir erstellen die Datei index.php mit der Navigation und Fragen anschließend die Aktion. Die Variable $page erhält dann den Wert der Abfrage aus dem aktivierten Link.

Anschließend erfolgt eine Wenn – Dann Abfrage über den Befehl case. Falls der Fall zutrifft wird die entsprechende Seite aus dem Unterverzeichnis inc/ geladen. Der Break Befehl setzt nach dem Laden der Seite einen Stop. Sonst würde die Abfrage weiter laufen.

Der Befehl default: include (’inc/startseite.php’); break; legt die Startseite fest.

..
</head>
<body>
<div class="wrapper">
<div id="nav">
<ul>
                <li><a href="?action=startseite">Start</a></li>
         <li><a href="?action=grafiken">Grafiken</a></li>
<li><a href="?action=fotos">Fotos</a></li>
        <li><a href="?action=uebermich">Über mich</a></li>
</ul>
</div>

<div class="content">
                <?php $page = $_GET["action"] ?>
                    <?php
                       switch($page) {
                           default: include ('inc/startseite.inc'); break;
                              case 'startseite': include('inc/startseite.inc'); break;
                              case 'grafiken': include ('inc/grafik.inc'); break;
                              case "fotos": include ("inc/fotos.inc"); break;
                              case "uebermich": include ("inc/mich.inc."); break;
                         }?>
</div>

Der Inhalt einer Datei mich.inc könnte dann einfach so aussehen:

<h1>Über mich</h1>
Das iste eine Testseite über mich.

Mehr muß dann dort nicht stehen. CSS Verweise, Metadaten,… werden aus der index.php genutzt.

Fertig!

Seiten mit include() einbinden

Möchte man auf einer Indexseite index.php eine Navigation einbauen, welche dynamisch nur die Inhalte in diese Seite einträgt, kann man diese mit dem Befehl include() erledigen. Alternativ könnt man auch nur die Navigation in die einzelnen Seiten einbinden. Dann muß trotzdem jede Inhaltsseite einen Kopfbereich haben – eben den vollen Inhalt einer HTML Seite (nur die Navigation wird ergänzt).

Ich finde es schöner, wenn man eine index.php hat und dazu dann der Text des Inhaltes geladen wird. Das erspart Schreibaufwand, da nur der Inhalt in einer Textdatei ausgelagert werden muß – also keine Meta Daten, CSS Verweise,… Nachteilig ist allerdings, dass es dann nur den einen Medatdatensatz der index.php mit den Suchinformationen für die Crowler gibt.

Los gehts:

Wir erstellen die Datei index.php mit der Navigation und Fragen anschließend die Aktion. Die Variable $page erhält dann den Wert der Abfrage aus dem aktivierten Link.

Anschließend erfolgt eine Wenn – Dann Abfrage über den Befehl case. Falls der Fall zutrifft wird die entsprechende Seite aus dem Unterverzeichnis inc/ geladen. Der Break Befehl setzt nach dem Laden der Seite einen Stop. Sonst würde die Abfrage weiter laufen.

Der Befehl default: include (’inc/startseite.php’); break; legt die Startseite fest.

..
</head>
<body>
<div class="wrapper">
<div id="nav">
<ul>
                <li><a href="?action=startseite">Start</a></li>
         <li><a href="?action=grafiken">Grafiken</a></li>
<li><a href="?action=fotos">Fotos</a></li>
        <li><a href="?action=uebermich">Über mich</a></li>
</ul>
</div>

<div class="content">
                <?php $page = $_GET["action"] ?>
                    <?php
                       switch($page) {
                           default: include ('inc/startseite.inc'); break;
                              case 'startseite': include('inc/startseite.inc'); break;
                              case 'grafiken': include ('inc/grafik.inc'); break;
                              case "fotos": include ("inc/fotos.inc"); break;
                              case "uebermich": include ("inc/mich.inc."); break;
                         }?>
</div>

Der Inhalt einer Datei mich.inc könnte dann einfach so aussehen:

<h1>Über mich</h1>
Das iste eine Testseite über mich.

Mehr muß dann dort nicht stehen. CSS Verweise, Metadaten,… werden aus der index.php genutzt.

Fertig!