Zum Inhalt springen

Navigation in externer Seite einbinden?

Erstellt am 24. März 2010 · 2 Antworten · letzte Antwort am 26. März 2010

Tags: Frage

derralf ·

Hallo Community,

vielleicht ist folgendes schon mal jemandem begegnet, der spontan einen Tip für mich hat.

1) Haupt-Website läuft auf Typo3. Diese betreue ich.
2) Weitere Angebote (es ist kein Shop, aber nennen wir es der Einfachheit halber mal so) laufen auf einem anderen System/CMS. Wird von jemand anderem betreut, liegt aber möglicherweise auf dem selben Server.

Wie bekomme ich nun am geschicktesten meine Typo-Navigation (Hauptnavi, Hilfsnavi mit Impressum, etc) im Shop abgebildet, bzw. dort ins Theme integriert.
Ich arbeite mit einem Dropdown-Menü, d.h. die Navigation ändert sich von Zeit zu Zeit, weshalb ein hart codiertes Menü - nur mit dem ersten Level - erstmal nicht in Frage kommt (habe auch keinen Zugriff auf den Shop-Webspace, um das Menü upzudaten).

Hat evtl. jemand eine Idee für mich?

LG,
Ralf

Julian.​Hofmann ·

Hallo Ralf.

Ich sehe da grob zwei Möglichkeiten:

1. Menü regelmäßig in Shop importieren
2. Menü mit jedem Aufruf nachladen

Für beides müsstest Du auf TYPO3-Seite eine aufbereitetet Version des Menüs in XML-Form oder JSON odgl. bereitsstellen. Im 1. Fall könnte diese dann via Cronjob regelmäßig abgeholt und vom Shop in seinem Verzeichnis gespeichert, aufbereitet und eingebunden werden als wären es seine Daten. In 2. Fall würde bei jedem Seitenaufruf des Shops das Menü via Ajax vom TYPO3-Auftritt geholt und in den Shop integriert.

Was einfacher ist oder überhaupt machbar, hängt sicherlich stark vom Shop ab.

Viele Grüße
Julian

derralf ·

Viel Dank Julian,
inzwischen hab auch eine Lösung gefunden:

1)
in Typo eine spezielle Seite ausgeben, die nur die Navigation-UL enthält. Ohne html, head und body tags und soweiter.

2)
im Shop per DOMDocument und loadHTMLFile diese Seite einlesen und im Template wieder ausgeben.

Ich filtere da noch ein bisschen nach IDs, um für andere Situationen flexibler zu bleiben oder auch noch Hilfs- oder Footer-Menü importieren zu können und konvertiere eingelesene relative Pfade in absolute (Links, Bildpfade, etc), aber stark vereinfacht habe ich es so gelöst.

$externalFileName = "http://www.domain.com/exportmenu";
$doc = new DOMDocument();
$doc->loadHTMLFile($externalFileName);
echo $doc->saveHTML();