[HTML/PHP]Navigation / Anzeige

wue

Mitglied
Grüezi miteinander

Ich bin auf der Suche nach einer eleganten HTML Lösung für meinen immer wieder wechselnden Navigationsbereich. So wechselt der Navigationsbereich (Thema / Unterthema) je nach Saison und Aktualität immer wieder respektive wird wieder eingeblendet oder ausgeblendet.

Dies auf allen Seiten immer wieder anzupassen ist sehr fehleranfällig und aufwendig.

Mir Schwebt eine Lösung vor, bei der ich zum Beispiel in einer steuerung.html nur all meine Thema und Unterthema aufgeführt habe und diese dann mit "aktiv" oder "passiv" markieren könnte, damit dann auf allen anderen Seiten dies entsprechend angepasst wird. Aktiv müsste das Thema eingeblendet sein und bei passiv müsste das entsprechende Thema oder Unterthema nicht ersichtlich sein (if "aktiv" "Thema anzeigen" else "Thema ausblenden").

Kann mir jemand einen Tipp oder Hinweis geben wie ich das im HTML oder ??? elegant lösen könnte.

Vielen Dank.
 

Dragonlord

PCtipp-Moderation
Teammitglied
Html

Also nur mit reinem HTML wirst Du in diesem Falle nicht weit kommen.

Dazu benötigst Du eine aktive Sprache wie PHP, CF oder ASP. Mit JAVASCRIPT würde es auch gehen, aber dies kann zu Problemen führen, da nicht alle Benutzer dies zulassen.

Was kannst Du alles auf Deinem Server einsetzen?

lg Roger
 

wue

Mitglied
Es ist Neuland für mich.

Ich habe aber in den letzten "Wochen" relativ viel gelernt und erfahren im Zusammenhang mit HTML und ..., dass ich natürlich gespannt bin auf deinen Lösungsansatz.

Vielen Dank schon jetzt.
 

Dragonlord

PCtipp-Moderation
Teammitglied
Xampp

Also, damit Du auf Deinem eigenen System entwickeln kannst, brauchst Du eine Serverumgebung. Eine komplette Umgebung enthaltet das XAMPP-Pakett. Diese kannst Du herunterladen und mit dem Installer installieren.

Nachher hast Du eine Serverumgebung mit PHP 5.x und MySQL 5.x. Es hat natürlich noch andere Tools im ganzen Pakett.

Bei der Installation kann es zu Problemen kommen, wenn Du Skype installiert hast. In den Optionen von Skype kannst Du ein Häckchen entfernen bei "Port 80 und 443 als Alternative für eingehende Verbindungen verwenden". Nachher hast Du keine Probleme mehr.

Und sonst einfach Fragen.

lg Roger
 

Stromer92

Stammgast
lol roger nich grad überbeissen, wegen dem muss er ja nich grad php lernen:p


du kannst ganz einfach die PHP-funktion include() nutzen und damit immer navigation.html einbinden, dann brauchst du nur 1 mal navigation.html anzupassen und es wird auf allen seiten angezeigt
 

sergey

Stammgast
lol roger nich grad überbeissen, wegen dem muss er ja nich grad php lernen:p


du kannst ganz einfach die PHP-funktion include() nutzen und damit immer navigation.html einbinden, dann brauchst du nur 1 mal navigation.html anzupassen und es wird auf allen seiten angezeigt

Hey,
ich dachte in PHP kann man keine HTML-Dateien includen?

@Stromer92: Es ist in PHP nun einmal am einfachsten, da man dort die Dinge auch in Variablen packen kann, um sie danach auszugeben.

Das ganze auf eine PHP Datei umwandeln und die Sache ist geritzt. Wenn du dann auch noch anzeigen möchtest welche Navigation gerade aktiv ist:

(Ein kurzes Beispiel einer Navigation aufgebaut auf PHP:)
PHP:
<?php
$menu = array(
  "Index" => "home.php",
  "Seite 1" => "page_1.php",
  "Seite 2" => "page_2.php"
);

echo "<ul>\n";

foreach ($menue as $eintrag => $page) {
  if ($page == basename($_SERVER['PHP_SELF'])) {
    echo "<li>".$eintrag."</li>\n";
  } else {
    echo "<li><a href='".$page."'>".$eintrag."</a></li>\n";
  }
}

echo "</ul>\n";

?>
Kurze Erklärung des hier ausgeführten Codes:
$menue wird als array initialisiert
Das Array wird in einer Schleife durchlaufen, dabei wird festgestellt, ob es sich beim aktuellen Menüpunkt um die Datei handelt, wenn ja wird nur ein Menüpunkt angezeit, wenn nein wird ein Link mit angezeigt.

@wue:

Um etwas über PHP zu lernen: http://www.selfphp.info/

Gruss

sergey
 

Stromer92

Stammgast
Hey,
ich dachte in PHP kann man keine HTML-Dateien includen?

@Stromer92: Es ist in PHP nun einmal am einfachsten, da man dort die Dinge auch in Variablen packen kann, um sie danach auszugeben.

sergey


ich bin mir jetzt nicht zu 100% sicher, aber die dateiendung spielt bei inlcude glaub keine rolle, es liest einfach das ganze wie aus einer txt-datei aus (kannst auch .abcdef als endung nehmen^^)



natürlich ist der gebrauch von PHP praktischer, aber ob es wirklich sinnvoll ist für son detail gleich PHP zu lernen... (bringt ja auch nichts ihm das fertige script zu geben ohne dass er ne ahnung hat wie ers editieren kann)
 

FloHoCH

Stammgast
natürlich ist der gebrauch von PHP praktischer, aber ob es wirklich sinnvoll ist für son detail gleich PHP zu lernen... (bringt ja auch nichts ihm das fertige script zu geben ohne dass er ne ahnung hat wie ers editieren kann)

Ja, ich finde es auch nicht sinnvoll, ihm einfach ein Script zu geben, das er nicht versteht, aber er muss ja nicht viel lernen. Das Script mit Array und Schlaufe finde ich IMHO schon eher überfordernd zum Einstieg. Ich würde mich an seiner Stelle erstmal mit Variabeln, dem Include und allenfalls noch mit Funktionen & Überprüfungen (IF) auseinandersetzen, mehr braucht er vorerst gar nicht. Wenn er das erstmal begriffen hat ist der Weg zum Array und zur Schlaufe auch nicht mehr weit. Eine Einstiegsseite, mit "Lehrgang" ist sicher nicht schlecht, bald wird er aber (hoffentlich) auf php.net umsteigen.
 
A

abu

Guest
Ja, ich finde es auch nicht sinnvoll, ihm einfach ein Script zu geben, das er nicht versteht...

Ach, der FloHoCH schon wieder... ;) *duck*
Nein, im Ernst, in dem Punkt muss ich dir voll recht geben. OTOH, wenn im Web nur Sachen laufen würden, welche der Ersteller auch wirklich versteht, wäre das Web wahrscheinlich ein riesiges schwarzes Loch.
 

sergey

Stammgast
Logisch ist es nicht die richtige Lösung, ihm ein Script bereit zu stellen.
Es war auch nicht gedacht als Direktlösung, sondern mehr zum aufzeigen, wie die ganze Sache funktionieren könnte.

Seit mir bitte nicht böse, wenn ich es so reingestellt habe.

Gruss

sergey
 

wue

Mitglied
Vielen Dank

Grüezi miteinander

Vielen Dank für all die Anregungen. Ich sehe schon, es gibt noch viel zu tun. Ich bin absolut damit einverstanden, dass ich kein fertiges Skript erhalte. Es bringt nichts da ich nicht verstehen werde was passiert.
Ihr alle hab mir aber wichtige Inputs gegeben die ich mir nun detailliert ansehen werde.

Nochmals vielen Dank und bis zur nächsten Herausforderung.
 

Stromer92

Stammgast
Grüezi miteinander

Vielen Dank für all die Anregungen. Ich sehe schon, es gibt noch viel zu tun. Ich bin absolut damit einverstanden, dass ich kein fertiges Skript erhalte. Es bringt nichts da ich nicht verstehen werde was passiert.
Ihr alle hab mir aber wichtige Inputs gegeben die ich mir nun detailliert ansehen werde.

Nochmals vielen Dank und bis zur nächsten Herausforderung.


noch einen letzten tipp von mir ;)

www.schattenbaum.net/php
 

NiCa

Stammgast
ich bin mir jetzt nicht zu 100% sicher, aber die dateiendung spielt bei inlcude glaub keine rolle, es liest einfach das ganze wie aus einer txt-datei aus (kannst auch .abcdef als endung nehmen^^)



natürlich ist der gebrauch von PHP praktischer, aber ob es wirklich sinnvoll ist für son detail gleich PHP zu lernen... (bringt ja auch nichts ihm das fertige script zu geben ohne dass er ne ahnung hat wie ers editieren kann)

..bringt aber bestimmt mehr, wenn er ein Startbeispiel hat, als wenn er sich erst alles anlesen und dann selber zusammenfrickeln muss. So verwenden kann man es ja sowieso nicht, also ist doch dennoch ein Lerneffekt vorhanden.

Include funktioniert im besten Fall wenn der Server das unterstützt mit SSI (Server Side Includes). Allenfalls muss die Datei stat *.html in *.shtml umbenannt werden. Wird das nicht unterstützt, dann bleibt wohl doch nur PHP oder ASP als einigermassen einfache Lösung übrig.
 

Stromer92

Stammgast
..bringt aber bestimmt mehr, wenn er ein Startbeispiel hat, als wenn er sich erst alles anlesen und dann selber zusammenfrickeln muss. So verwenden kann man es ja sowieso nicht, also ist doch dennoch ein Lerneffekt vorhanden.

Include funktioniert im besten Fall wenn der Server das unterstützt mit SSI (Server Side Includes). Allenfalls muss die Datei stat *.html in *.shtml umbenannt werden. Wird das nicht unterstützt, dann bleibt wohl doch nur PHP oder ASP als einigermassen einfache Lösung übrig.


ich dachte bei meiner idee tatsächlich an die Include-funktion von PHP (OP sagte ja, dass sein server PHP unterstütze), die ja in einer zeile erledigt ist und relativ schnell klar sein sollte.
 
Oben