Dynamisches PHP-Menü und kleine Webseitenvorlage

CMS Systeme sind schön, CMS Systeme sind gut – aber wie bei so vielen Trends gibt es eine Grenze von Sinn und Unsinn. Ein CMS macht Sinn, wenn entweder der Webseitenbetreiber gerne selber an seiner Webseite werkeln möchte oder wenn der Umfang über (meiner Einschätzung nach) ca. 15 Seiten hinausgehen würde. Unsinn ist es jedoch jede noch so kleine Webseite mit einem CMS auszustatten. Mit ein bisschen PHP kann man auch handgeskriptete Seiten tunen und die Bearbeitung vereinfachen.
Hier ein php Menü, welches für die aktive Seite kein Link-Element einfügt.

Begonnen habe ich mit einem Menü von [Jeenaparadies], dann aber das dortige Menü geändert und weiterentwickelt, so dass es nicht mehr notwendig ist, auf den Seiten, in denen das Menü eingesetzt werden soll, mehr Code als unebdingt notwendig einzufügen.

[Menü in Aktion]

[Download Menü + Webseitenvorlage]

UPDATE 12/07 Inzwischen gibt es noch eine Webseitenvorlage mit Untermenü zum Runterladen

inventur-free-template-kostenlose-webseitenvorlage/

UPDATE: 17.11.2009 Auf meiner Hauptseite zum Thema Webdesign gibt es jetzt noch ein verbessertes Menü

Der Code :

 array("Startseite", "./"),
"seite_1.php" => array("Seite 1", $pfad . "seite_1.php"),
"seite_2.php" => array("Seite 2", $pfad . "seite_2.php"),
"seite_3.php" => array("Seite 3", $pfad . "seite_3.php"),
"seite_4.php" => array("Seite 4", $pfad . "seite_4.php")
);

?>

'. $cr;

foreach ($menu_data as $key => $value) {

if($key != $current_page) {
$navi .= '
	
  • '; $navi .= ''; $navi .= $value[0]; $navi .= ''; $navi .= '
  • ' . $cr; } else { $navi .= '
  • '; $navi .= $value[0]; $navi .= '
  • ' . $cr; } } $navi .= ' '; echo $navi; ?>

    11 Gedanken zu „Dynamisches PHP-Menü und kleine Webseitenvorlage“

    1. Moin,

      tolles Script, da ich nicht so viel Ahnung von Arrays habe:
      Soweit ich das verstehe ist die erste Dimension das hier:
      („1.php“ =. Jenes sagt dem Script dann später für welche Seitennamen die Eigenschaften wie Fett usw zutreffen sollen. Wie bewerkstellige ich es das diese Eigenschaft dann auch für Seite 1.2, 1.3 zutrifft?
      Bsp so:
      („1.php“;“1.2.php“ => array(„Rubrik 1“, $pfad . „1.php“)
      Ich möchte halt das solange man unter einer Rubrik des Buttons 1 Klickt der Schriftzug „Rubrik 1“ fett bleibt.

      Wäre super wenn mir da jemand helfen kann.

      GNight!

    2. Hallo Martin,

      das Skript kann nur 1 Dimension, also nur Links der obersten Ebene. Wenn du Unterlinks zu den Oberpunkten hättest, dann müsstest du das Skript für jede Unternavigation erneut inkludieren und die Namen anpassen. Der entscheidende Schritt, dass ein Obermenüpunkt als aktiv angeklickt bleibt fehlt dann jedoch.

      Ich hätte mir zwar auch gewünscht, dass man es auf Unterpunkte erweitern könnte, aber ich da ich nach meinem damaligen PHP-Kurs beschlossen habe nicht zur PHP-Programmierfraktion zu wechseln und statt dessen bei meinem Leisten, dem Webdesign, zu bleiben, müsste dir hier jemand anderes helfen.

      Ich schau mal, was ich für dich tun kann …

      Schöne Grüße
      Jutta

    3. Martin, eine mehrdimensionale Navigation könnte in einem mehrdimensionalen Array abgebildet werden und eine Funktion zur Generierung einer Ebene rekursiv auch für weitere Ebenen aufgerufen werden. Allerdings stellen sich hierbei zwei Probleme:
      1. solche Arrays zu kodieren ist ziemlich unübersichtlich und fehlerabfällig und
      2. werden bei der sequenziellen Abarbeitung des Arrays die „aktiven“ ULs bzw. LIs noch nicht erkannt und können in einem ersten „Durchlauf“ noch nicht mit einer Klasse zur CSS-Formatierng versehen werden.

      Einfacher ist es da, das Menü in einer CSV-Datei zu notieren und die Struktur z.B. über ein vorgestelltes Sonderzeichen wie „>“ für jede weitere Ebene abzubilden.
      Ich habe für ein CMS, das so ähnlich arbeitet, ein kleines PHP-Script gebastelt, das direkt aus der CSV, ohne erst ein Array daraus zu bilden, eine verschachtelte Menüliste generiert. Sobald ich dazu komme, werde ich es mal verallgemeinern und bei meinen Tips&Tricks veröffentlichen.
      Ingo

    4. Hi Ingo,

      vielen Dank, bin für jede Hilfe dankbar und bin mal auf das Menü gespannt was du meinst.

      Dank auch an Jutta, tolles Angagement von Dir.

      Gruß
      Martin

    5. hallo
      der downloadlink für das menu funktioniert nicht mehr, kann mir jemand sagen wo ich diese menu kriege.

      besten dank
      gruss
      urs

    6. Hallo urs,

      bitte vielmals um Entschuldigung. Das Blog habe ich mehrfach bearbeitet, da sind einige Links auf der Strecke geblieben. Sorry. Jetzt geht es wieder.

      Viele Grüße

    7. Hallo.
      Erstmal vielen Danke, aber ich hab ein Problem, bzw eine Frage..
      Wie mach ich das mit meinem Programm? Also ich denke ich hab verstanden, wie das geht, aber wenn ich es in mein NVU einfüge kommt gar nichts, nur weiss :(.
      Wäre nett, wenn mir jemand helfen würde.
      Tut mir Leid, aber ich bin neu und jung ^^.

      Gruß

    8. Hallo Linus
      mit NVU kenne ich mich nicht so gut aus, weiß aber dass dieser Editor eine Webseite in der Vorschau anzeigt. Das geht nur in diesem Fall nicht, weil in der Datei ein php Code enthalten ist, der nur auf einem Server, auf welchem php installiert ist, ausgeführt werden kann – man sagt: „php Unterstützung“ hat.

      Um die Webseite zu sehen musst du dir entweder lokal auf deinem Rechner einen Webserver installieren (xampp für windows) oder die Seite auf einen Webspace (mit php Unterstützung) bei einem Webhoster via ftp hochladen.

    Kommentare sind geschlossen.