Navigation einbinden

  • Hallo

    Ich habe eine komplexe Navigation via Layern erstellt und dort auch schon eine externe .css Datei eingebunden.

    Und da ich auf Frames verzichten möchte,nun die Frage:

    kann ich diese extern in eine Datei abspeichern und in weiteren html Seiten (allenfalls auch php) wieder einbinden?

    Grüsschen

    Wenn man Dummheiten macht, müssen sie wenigstens gelingen.
    (Napoleon)

  • .. dafür brauchst Du Dich nicht zu entschuldigen.. *smile*

    Ich habe eine Navigation in Layern erstellt mit allen Links drauf(html-code). Möchte diese Nav in allen weiteren Html-Dokumenten einbinden. Kann aber gut sein dass ich da mal was ändere in der Nav, und dann möchte ich sie nur einmal änderen, dh. auf allen anderen Seiten möchte ich sie mit script src oder was auch immer einbinden.

    .. besser rübergekommen?

    ..vielleicht tue ja auch ich kompliziert...

    Wenn man Dummheiten macht, müssen sie wenigstens gelingen.
    (Napoleon)

  • Hi,

    ich hatte ien artverwandetes Problem:

    Ichhabe eine viersprachige HP.
    Die Navigation habe ich als Template angelegt, die Links und die dazugehörigen Texte liegen in einer Textdatei. und zwar so, daß jeder Datensatz saus einem Sprachkürzel, dem Linktext und dem Link selbst besteht. Als Trennzeichen verwende ich den langen Strich "|".
    Das sieht dann etwa so aus:

    Wenn die Navigation aufgerufen wird, lädt ein PHP Script die Textdatei und filtert die Datensätze nach der gewählten Sprache.

    Dann läuft eine Schleife ab und erstellt zu jedem verblieben Datensatz einen Link und die richtige Beschriftung, das ganze wird (inclusiv der Zeilenwechsel) in eine Variable eingelesen.

    Anschließend wird das Template (die HTML-Datei der Navigation) geladen und der dort befindliche Platzhalter durch die Variable ersetzt - voila ;)


    Das jetzt hier alles ganz detailiert zu erklären ist natürlich sehr aufwendig.
    Aber es funktioniert fehlerfrei.

    Ich habe die HP inzwischen komplett auf PHP umgestellt. Dadurch habe ich für selbst bei 4 Sprachen für jede ubrik nur einmal ein HTML-Gerüst inclusiv aller Bilder, Grafiken pp. Die Texte werden entsprechend der gewählten Sprache erst beim Aufruf der HP erstellt, dazu dann auch die grafischen Überschriften in der jeweiligen Sprache geladen.

    Änderungen in der HP sind nun ein Kinderspiel: Es wird nichts mehr im HTML geändert, sondern nur noch in der jeweiligen Textdatei.

    Zurück zur Navigation:

    Auf einer anderen meiner HPs habe ich mehrere Administratoren, die verschieden Rechte haben. Im Admin-Bereich erhält jeder eine persönliche Navigation, entsprechend seiner jeweiligen Rechte. Auch hier werden die Links und Bezeichnungen aus Textdateien eingelesen. Demnächst wird es dort auch einen Editor geben, dann können sie meine Admin ihre persönliche Navigationsleiste selbst zusammenstellen und die persönliche Startseite innerhalb des Admin-Bereiches festlegen.

    Gruß aus der Marsch!

    Ronald

  • Hallo Ronald

    .. ja das hört sich alles sehr logisch an.. doch ist auch komplex.. und ich als Laie in der Sprache php.. Zeit.. mich daran zu machen.. :roll:

    Nun, in meinem Fall geht es ja "nur" um eine Navigation.
    Wie gehe ich vor !? :

    Ich schreibe meine Navigation, welche momentan in html geschrieben ist, in eine text-datei (.txt ? ) und rufe diese via php code (include oder dergleichen? ) an der gewollten Stelle im Dokument auf.. das ist alles..? Bin ich da auf der richtigen Fährte?
    Natürlich ist Voraussetztung, dass ich die .html in .php umwandle..!?

    Gruss aus der CH..

    Wenn man Dummheiten macht, müssen sie wenigstens gelingen.
    (Napoleon)

  • Puh...

    das ist nicht mal eben schnell erklärt ;)

    Also ich habe für die Navigation 3 Dateien:
    1. nav.php .............. (da wird alles zusammengesetzt, gefiltert, pp)
    2. nav.html ............. (da steht nicht viel drinnen, eben nur das HTML-Gerüst, link zu den CSS, Hintergrundfarben und ein Platzhalter)
    3. nav.txt ................ (da sind alle Daten drinnen, die in die verschiedenen Navigationen eingetragen werden sollen).

    Zuerst solltest du mit einem beliebigen Editor die Textdatei erstellen, also z.B.

    Als nächstes fertigst du dir eine Blanko-Navigation an mit den üblichen Tags, wie z.B. auch einem Link-Tag für die Stylesheets. Sinnvoll ist da auchein Tag "<base target="haupt">, wobei "haupt" dann der Name deines Hauptfensters aus dem frameset sein sollte.

    zwischen <body> und </body> muß dann irgendwo der Platzhalter auftauchen. Am Besten setzt du als Platzhalter einen logischen Begriff ein, den du durch Sonderzeichen optisch gut kennzeichnest, also z.B.

    Code
    <body>
    ...
    [NAV]
    ...
    </body>

    Hier ist "[NAV]" der Platzhalter, davor und danach kannst du beliebige ANgaben machen, wie Grafiken oder Texte, was du willst und was HTML-Konform ist.

    Jetzt brauchst du noch das PHP-Script, damit aus der Sache auch was wird. Mit dem selben Script kannst du natürlich vieles andere auch noch machen, z.B. Statistiken füttern, pp.

    Ich habe hier mal eine Kurzversion erstellt, damit sollte es aber schon laufen:

    Das sollte für eine einfache variable Navigation schon ausreichen.

    Good Luck ;)

    Ronald

  • ...danke vielmals für Deine Mühe, wirklich toll von Dir!

    Und trotzdem habe ich noch viele Fragen, da mir noch nicht wirklich alles klar ist.
    Die "Blanco Navigation" wie Du schreibst, ist ja ersteinmal ein html-gerüst, einfach das, was die Navigation beinhaltet. (meine Nav besteht zum Beispiel aus Layern)

    ..hier die Frage: mit den Links oder nicht?


    .weiter zur Textdatei:
    Also ich habe ja nur eine einzige Navigation. Was bedeuten genau wie Du schreibst " n1|startseite|home.htm" ?

    Im weiteren: den Php-code, den Du geschrieben hast, was macht der genau, bzw. was ruft der genau auf, dh. auch, wo rufe ich diesen auf, bzw. in was für ein Dokument schreibe ich den..?

    Hmm.. ich habe den Durchblick wohl wirklich noch nicht.. fehlt noch das "aha" Erlebnis.. *gg*

    Wenn man Dummheiten macht, müssen sie wenigstens gelingen.
    (Napoleon)

  • Zitat von Ronald


    Auf einer anderen meiner HPs habe ich mehrere Administratoren, die verschieden Rechte haben. Im Admin-Bereich erhält jeder eine persönliche Navigation, entsprechend seiner jeweiligen Rechte. Auch hier werden die Links und Bezeichnungen aus Textdateien eingelesen. Demnächst wird es dort auch einen Editor geben, dann können sie meine Admin ihre persönliche Navigationsleiste selbst zusammenstellen und die persönliche Startseite innerhalb des Admin-Bereiches festlegen.

    Gruß aus der Marsch!

    Ronald

    Das hört sich ja wieder toll an und ich glaube auch ich weiß welche du meinst. ;)
    Na ich lass mich dann mal Überraschen, was uns nach deinem Urlaub erwartet und bin schon ganz gespannt. :warten:
    Aber vergesse diesmal nicht die Bedienungsanleitung mit dazu zulegen. :pfeif:
    Du lässt dir wirklich viel und auch immer wieder etwas neues Einfallen, was den Admins deiner HPs die Arbeit erleichtert. :smilie176:

    LG Shila

  • Du bist mir einer. :lach-hand:
    Durch mich bist du auf das Forum hier aufmerksam geworden und dann hast du doch glatt vergessen, daß ich hier mit lese. :ätsch:

    Kein Angst meine Lippen sind versiegelt. :pflaster:

    LG Shila

  • Hi!

    Zitat von BuntesAllerlei

    ...danke vielmals für Deine Mühe, wirklich toll von Dir!

    Und trotzdem habe ich noch viele Fragen, da mir noch nicht wirklich alles klar ist.
    Die "Blanco Navigation" wie Du schreibst, ist ja ersteinmal ein html-gerüst, einfach das, was die Navigation beinhaltet. (meine Nav besteht zum Beispiel aus Layern)

    Dürfte keine Rolle spielen, wichtig ist, daß an der Stelle, an der später die Links stehen sollen, HTML-Text möglich ist und das dort der Platzhalter wie ein normaler Text im HTML geschrieben steht.

    Zitat von BuntesAllerlei

    ..hier die Frage: mit den Links oder nicht?


    keine Links, keine weiteren Texte (stören aber nicht), nur der Platzhalter "[NAV] " selbst. Wenn du die nav.html aufrufst, muß da tatsächlich "[NAV]" stehen.

    Zitat von BuntesAllerlei

    .weiter zur Textdatei:
    Also ich habe ja nur eine einzige Navigation. Was bedeuten genau wie Du schreibst " n1|startseite|home.htm" ?

    Das waren nur Beispieldateien:
    "n1" = dieser Link soll in meiner 1. Navigation angezeigt werden,
    "startseite" = Titel des 1. Links in der Navigation,
    "home.html" = URL zum 1. Link in der Navigation

    u.s.w.

    Noch einmal zum 'n1': In der Textdatei habe ich auch 'n2' und 'n3' notiert.
    Du kannst in einer einzigen Textdatei damit die Texte und Links verschiedener Navigationen festlegen (falls erforderlich), d.h. wenn du z.B. auf der Start-Navigation einen Link "Bilder" hast, dann kann nach Anklicken des Links eine 2. Navigation die erste Ersetzen und dort gezielt andere Links anbieten. Als letzter Link sollte dann aber wieder ein verweis auf die 1. Navigation erfolgen, damit man auch wieder zurück kommt.

    Zitat von BuntesAllerlei

    Im weiteren: den Php-code, den Du geschrieben hast, was macht der genau, bzw. was ruft der genau auf, dh. auch, wo rufe ich diesen auf, bzw. in was für ein Dokument schreibe ich den..?

    Das Script liest die Textdatei aus und erstellt die Links mit Beschriftung, puffert das alle in einer Variablen ($NAV). Am Schluß des Scrptes wird die HTML-Seite geladen, auf der die Links angezeigt werden sollen. In dieser HTML-Seite steht irgendwo "[NAV]" - dieser Begriff wird durch die Linkliste ersetzt, bevor der Browser es auf den Monitor schreibt.

    Ich war dabei davon ausgegangen, daß du mit Frames arbeitest - scheint aber nicht sozu sein (hab Deinen Eingangsthread falsch gelesen).
    In diesem Fall muß das PHP-Script und auch die Textdateien komplett umgestrickt werden - mal sehen, ob ich das noch schaffe, es ist nämlich bald WE und dann geht es in den Urlaub.

    Zitat von BuntesAllerlei

    Hmm.. ich habe den Durchblick wohl wirklich noch nicht.. fehlt noch das "aha" Erlebnis.. *gg*

    Das kommt.

    Erstelle die doch einfach einmal 3 Dateien "nav.php", "nav.html" (HTML-Struktur muß mit rein) und "nav.txt", packe die Beispieldateien (s.o.) rein und und lade sie in ein beliebiges Verzeichnis auf den Server (der muß PHP unterstützen). Dann rufst du mit dem Browser die "nav.php" auf und schaust einmal, was passiert - vielleicht bekommst du es ja dannselbst hin oder jemand anders hier hilft dir weiter, bis ich wieder da bin (Ende Juli).

    Gruß aus der Marsch!

    Ronald

  • ..dada..

    ..habe die drei Dateien nun mal erstellt, auf Server geladen und die nav.php aufgerufen.. dann kommt dieses hier:

    Warning: file(nav.html) [function.file]: failed to create stream: No such file or directory in /home/sites/site73/web/nav.php on line 19
    Warning: join() [function.join]: Bad arguments. in /home/sites/site73/web/nav.php on line 19


    ..was n'dass..??? Muss ich da noch irgend welche Rechte vergeben..? *amKopfkratz*

    Wenn man Dummheiten macht, müssen sie wenigstens gelingen.
    (Napoleon)

  • ..hola.. ja genau.. das war's.. danke.. :)

    Nun aber Frage: Wie gehe ich vor, um diese Navigation nun in den weiteren und verschiedensten weiteren Seiten einzubinden?

  • .. so.. nun habe ich ein bisschen probiert.. und siehe da.. :D

    Also muss ich im Prinzip für jedes Template auch eine .php Datei erstellen, welche dann das, was ich will, also auch andere Navigation usw. ausgibt..!?
    Kann ich das auch direkt einbinden?

    Im weiteren, dies ist ja nun mal eine einfache Navigation.
    Kann ich auch mehrere Navigationen aufrufen? Das heisst, zum Beispiel links und rechts einer Tabelle?

    Danke.. und Gruss aus der CH

    Wenn man Dummheiten macht, müssen sie wenigstens gelingen.
    (Napoleon)

  • Ganz kurze Antwort:

    1. Man kommt (bei richtiger Konfiguration) mit einer PHP-Datei für alles aus.
    2. Es sind auch ohne Probleme mehrere Navigationsleisten mit nur einer PHP- und einer Textdatei möglich.

    Leider habe ich heute sehr viel zu tun, morgen gehts in den Süden (Mittelmeer). Deshalb kann ich dir -sorry- im Augenblick nicht weiter helfen.

    Aber das Prinzip hast du sicherlich schnell verstanden, dann mußt du nur ein wenig nachdenken und ableiten ;)

    Tip:
    2. Navigation = die Schleife im PHP-Script wiederholen, nur anders filtern: if ($Navpage != "n2") continue;

    Ciao,

    Ronald