Navigation/Menue dynamisch in HP einbinden
Hallo zusammen!
Plane die Umgestaltung einer Website. Diese hat mittlerweile sehr viele Seiten und es kommen ständig neue hinzu.
Die Navigation/das das Menü befindet sich wie so oft an der linken Seite angeordnet (wie auch hier bei supportnet).
Das neue Menü soll ein DropDownMenü werden mit html und css.
Da es nun sehr viele Seiten sind möchte ich das Menü gerne "dynamisch" einbinden - soll heißen einmal programmieren und speichern und dann über irgendeinen Befehl an der entsprechenden Stelle einer jeden Seite einbinden.
Das erleichtert die aktualisierung der Menüstruktur bestimmt enorm, da nicht immer alle Seiten aktualisiert werden müssen.
Gibt es da eine Möglichkeit? Bin nicht wirklich Web-Profi
freue mich über eine Antwort
Antwort schreiben
Antwort 1 von rfb vom 18.06.2019, 23:04 Options
wenn dein Webspace PHP-fähig ist, wäre
PHP-include eine gute Wahl
Antwort 2 von ansgar72 vom 18.06.2019, 23:38 Options
Hm... mit PHP hab ich mich bisher noch gar nicht beschäftigt.
Wie sieht so eine php Datei aus?
Habe bisher nur mittelmäßige Erfahrung in HTML und CSS.
Ist der vorgeschlagene Weg über PHP include auch ohne große Vorkenntnisse zu bewerkstelligen?
vielen Dank
Antwort 3 von rfb vom 19.06.2019, 07:55 Options
Zitat:
Ist der vorgeschlagene Weg über PHP include auch ohne große Vorkenntnisse zu bewerkstelligen?
Ja.
Du schreibst an die Stelle, wo bislang dein Menü war:
<?php readfile("menue.php"); ?>
*
und alles was bisher dort stand steht in der Datei
menue.php.
Wichtig ist dass, die Dateiendungen statt htm(l) dann php lauten müssen.
Und dass der Webspace was damit anfangen kann, das sollte aber aus deinem Vertrag ersichtlich sein, sonst frag den Anbieter.
*wenn in der Datei, die eingebunden wird, selbst kein weiterer PHP-Code enthalten ist, ist
readfile sinnvoller als das eigentliche
include
Antwort 4 von ansgar72 vom 19.06.2019, 12:08 Options
@rfb
OK, werde es dann demnächst versuchen umzusetzen - so schwer hört es sich denn ja nicht an.
Sammle gerade alles zusammen, was ich so brauchen werde, um dann alles zusammen neu umzusetzen - will ja nicht irgendwas doppelt machen weil ich vorher was nicht bedacht habe...
Vielen Dank jedenfalls und falls dann irgendwas nicht klappen sollte, werde ich nochmal posten.
Bis denn
Antwort 5 von ansgar72 vom 19.06.2019, 12:12 Options
Ach so, eine Frage habe ich dann doch noch:
Die CSS-Datei welche für das Menü gebraucht wird - muß diese in der php-datei geladen werden oder in der HTML-Datei, in der das PHP-File aufgerufen wird?
Anmerkung: Für andere Layout und Design-Geschichten auf der restlichen Website gibts natürlich auch noch weitere CSS-Richtlinien als nur für das Menü.
Vielen Dank
Antwort 6 von rfb vom 19.06.2019, 13:01 Options
zum Prinzip.
die Datei index.php beinhalte die Anweisung
<?php readfile("menue.php"); ?>
Wenn der User nun in seinem Browser die index.php vom Server anfordert liest dieser die Datei durch, führt die darin enthaltenen PHP-Anweisungen aus, fügt also die menue.php an der entsprechenden Stelle ein, und liefert dies als komplette HTML-Datei an den Browser. Dieser widerum liest diese HTML-Datei und fordert alle Dateien, die darin referenziert werden (JavaScript, CSS, Bidler, ...) vom Server und gibt das zusammen aus.
Fazit: Wenn die menue.php nur das Menü enthält, wäre die Referenz auf die CSS-Datei sinnvoller in der index.php aufgehoben, da die ja den head-Bereich der HTML-Datei beinhaltet.
Vereinfacht: PHP-Dateien sind (in der Regel) keine vollständigen HTML-Dateien sondern beinhalten nur Bausteine davon und Anweisungen wie diese zusammenzusetzen sind. Die vollständige HTML-Seite entsteht erst dadurch. Der Browser merkt keinen Unterschied zwischen von-Hand-geschriebenen und per-PHP-erzeugten Seiten.
Antwort 7 von ansgar72 vom 19.06.2019, 14:54 Options
OK, glaube ich habs verstanden!
Die menue.php ist also keine komplette HTML-Datei im PHP-Gewand, sondern lediglich ein Teil davon (der Body ohne Head).
Wird die menue.php dann in der index.php aufgerufen, wird die menue.php als ein Teil des Bodys von index.php erkannt.
CSS-Files, die von der index.php aus aufgerufen werden, gelten demzufolge auch für die über readfile/include integrierte menue.php.
Vielen Dank nochmal