Navigation mit PHP

Grundprinzip ist, die Seiten in einzelne Bereiche aufzuteilen, immer wiederkehrende Bereiche in extra Dateien auszulagern und diese an entsprechender Stelle einzubinden.

Praktischerweise bastelt man sich erst einmal eine Seite zusammen, auf der alles schön aussieht, um diese dann zu „zerschneiden”.

Jede Seite wird durch eine eindeutige Variable gekennzeichnet, um damit in der Navigation diese Seite von der Verlinkung auszuschließen und farblich hervorzuheben. Sieht erstens besser aus und ist zweitens auch logisch, auf die aktuelle Seite nicht noch einmal zu verlinken.

Beispiel Schottland-Reisebericht

So sieht es für den Betrachter aus:
index.php im Verzeichnis /reisen/schottland2006/

Ein Blick in den Quelltext zeigt eine ziemlich umfängliche Navigation. Die auf jeder Seite einbinden? Und was ist, wenn noch was dazukommt? Alles wieder anfassen?

Natürlich nicht.

Aufteilen der Seite

index.php

<?php
$titel="Schottland 2006";
$menu="start";
require("head.php");
require("menu.php");
?>

Jetzt gehts los mit
<h1>Wir fahren nach Schottland!</h1>
bis zum letzten Absatz
<p class="c"><a class="linkr" href="anreise.php">Anreise</a><a href="#top">Nach oben</a></p> dann folgt noch das Seitenende:

<?php
require("footer.php");
?>

Erläuterungen


head.php

<?php
header('Content-type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
<head>
   <meta name="description" content="Eine Reise durch Schottland">
   <title><?php echo $titel ?></title>
   <link rel="stylesheet" type="text/css" href="scotch.css" media="screen, projection"> 
<!--[if IE ]>
<link rel="stylesheet" type="text/css" href="ie.css" >
<![endif]-->
   <link rel="shortcut icon" href="/favicon.ico">
</head>
<body>
<div id="main"><a id="top" name="top"></a>

Erläuterungen:

menu.php

<?php
if (!isset($hmenu)) $hmenu="";
function href ($seite, $menu, $hmenu) {
    if ($menu != $seite) echo "href='$seite.php'";
    if ($hmenu== $seite) echo ' class="akt"';
}
?>
<div id="nav">
<h3>Index</h3>
<ul>
<li><a <?php if ($menu != "start") {echo 'href="/reisen/schottland2006/"';} else {echo "class='akt'";} ?>>Schottland</a></li>
<li><a <?php href("anreise",$menu,$hmenu) ?>>Anreise</a></li>
<li><a <?php href("lochlomond",$menu,$hmenu) ?>>Loch Lomond</a></li>
<li><a <?php href("balloch",$menu,$hmenu) ?>>Balloch Park</a></li>
<li><a <?php href("mambeg",$menu,$hmenu) ?>>Mambeg</a></li>
<li><a <?php href("benmore",$menu,$hmenu) ?>>Benmore</a></li>
<li><a <?php href("tour1",$menu,$hmenu) ?>>Tour 1</a></li>
<li><a <?php href("glennevis",$menu,$hmenu) ?>>Glen Nevis</a></li>
<li><a <?php href("skye",$menu,$hmenu) ?>>Skye</a></li>
<li><a <?php href("glenfinnan",$menu,$hmenu) ?>>Glenfinnan</a></li>
<li><a <?php href("mallaig",$menu,$hmenu) ?>>Mallaig / Arsaig</a></li>
<li><a <?php href("fortwilliam",$menu,$hmenu) ?>>Fort William</a></li>
<li><a <?php href("bennevis",$menu,$hmenu) ?>>Ben Nevis</a></li>
<li><a <?php href("glenfinnanstation",$menu,$hmenu) ?>>Glenfinnan Station</a></li>
<li><a <?php href("highlandgames",$menu,$hmenu) ?>>Highland Games</a></li>
</ul>
<p>Fortsetzung ist in Arbeit...</p>
<div class="border"></div>
<p><a href="/reisen/">Mehr Reisen</a></p>
<p><a href="/"><img src="/homelogo2.gif" width="40" height="29" alt="4haus Startseite"></a></p>
<p><a href="/impressum.html">Impressum</a></p>
</div>

Erläuterungen


footer.php

<br class="cb">
</div>  <!-- main -->
</body>
</html>

Erläuterungen

Das break mit dem clear ist layoutbedingt und könnte hier gegebenenfalls entfernt werden, ebenso wie das Schließen des in head.php geöffneten DIVs.