Contao-Extensions vorgestellt: Domainspezifische Insert-Tags mit IIT

Die Problematik könnte bekannt sein: Eine Webseite soll für die Länder Deutschland, Österreich und die Schweiz unterschiedliche Informationen vorhalten. Beispielsweise ein unterschiedliches Impressum oder andere Kontaktdaten. Im Prinzip ist das dank der Multidomain-Fähigkeit von Contaokein großes Problem, wenn man sich daran hält, unterschiedliche Module für die einzelnen Länder vorzuhalten. Bei komplexen Layouts, deren Module dann allerdings auch mal mittels Insert-Tags auf verschiedene Inhalte referenzieren bekommt man allerdings schnell ein Problem, wenn es für die Domains DE, AT und CH unterschiedliche Seitenbäume gibt.

Was durchaus praktisch sein kann - eine Anwendung dafür sind beispielsweise Seiten für landesspezifische Angebote, die es in Deutschland wohl, in einem der anderen Länder aber nicht gibt und vice versa.

In in allen drei Ländern wird deutsch gespochen und eine Auswahl nach eingestellter Browsersprache fällt damit leider flach, weil auch Userinnen und User aus den Alpenländern in vielen Fällen die Sprachkombination de-de (anstelle von de-at oder de-ch) eingestellt haben könnten. Vorgeschaltet wird also erst einmal eine Geolocation-Funktion, die aus dem HTTP_REFERRER die IP-Adresse des Nutzers herausdestilliert und dann fallweise auf die Startpunkte unter domain.de, domain.at und domain.ch leitet. Ansätze dafür bieten diverse GEO-IP-Dienste die beispielsweise über eine Kombination von JS und PHP angesprochen werden können. Das soll hier aber nicht das Thema sein. Alternativ gibt es dafür auch (kommerzielle) Apache-Module.

Auf diese Art und Weise verteilt man Userinnen und User also auf ihre landesspezifischen Domains und Seitenbäume - schön, das wollten wir. Im nächsten Schritt möchten wir dann beispielsweise domainspezifische Inhalte mittels Contao-Insert-Tags einbinden. Diese Aufgabe ist schon anspruchsvoller, denn Contao stellt nur sprachspezifische Tags (mit { {iflng:xx} } oder { {ifnlng::yy} } zur Verfügung. Man könnte zwar auch über den Einsatz von { {env::http_host} } nachdenken, hat dann aber das Problem, dass man damit zwar eine Abfrage machen kann, unterschiedliche Inhalte jedoch nur mit etlichen Tricks danach unterbringen kann.

Man benötigt also am Besten Insert-Tags, die ihre Wirkung auf jeweils einem einzigen Seitenbaum entfalten und den Rest entweder nicht beachten oder (besser) dort etwas anderes bewirken. Geht nicht? Doch, das geht. Mit der kleinen Extension 'inherit_insert_tags' , die der Kollege Leo Unglaub dankenswerterweise zur Verfügung gestellt hat. Die erlaubt es nämlich, für Seitenbäume eigene Insert-Tags zu definieren.

Angewandt auf unser Problem der unterschiedlichen Impressums-Seiten würde das dann so aussehen: Man erstellt ein Modul (oder einen Artikel, eine News, was auch immer), dass die benötigten (unterschiedlichen) Inhalte ausgibt - also für eine Telefonnummer nach dem Muster { {iit::telefon} }, für eine Adresse vieleicht { {iit::strasse} } { {iit::hausnummer} } { {iit::plz} } { {iit::ort} } und { {iit::land} }.

Im nächsten Schritt trägt man diese InheritInsertTags in die Einstellungen für die Seite des Startpunkts der jeweiligen Website ein - und schon gibt Contao im schweizerischen, österreichischen oder liechtensteinischen Seitenbaum an entsprechender Stelle die korrekte Adresse aus. Man kann das includen wo immer man will.

So einfach ist das - und man hat dann noch die Möglichkeit, über diese Extension viel mehr an seitenbaumspezifischen Informationen unterzubringen. Kataloge mit landesspezifischen Ausgaben sind dann auch kein Thema mehr.

Zurück

Einen Kommentar schreiben

Hast Du Fragen oder Anregungen? Dann nutze die Kommentarfunktion.

Die Verarbeitung Ihrer Daten erfolgt im Rahmen unserer Datenschutzerklärung.