Ergebnis 1 bis 4 von 4

Thema: Multiple Startpunkte plus Mehrsprachigkeit

  1. #1
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    5

    Standard Multiple Startpunkte plus Mehrsprachigkeit

    Hallo zusammen,
    da Cantao für mich noch neu ist und ich gerade eine etwas komplexere Aufgabenstellung habe, würde ich gerne von Euch erfahren, welche grundsätzliche Herangehensweise Eurer Erfahrung nach am sinnvollsten ist.

    Es geht um eine Website, die in der Basisversion bestimmte Inhalte enthält, aber insgesamt eher neutral gehalten ist. Jedes FE-Mitglied soll jedoch dieses Basisversion übernehmen und ein paar kleinere Details anpassen können. So dass es letztlich wie die individuelle Website dieses Mitglieds aussieht. Außerdem wird es es für jede Mitgliedversion einen eigenen Einstiegspunkt (eigene Subdomain oder Unterverzeichnis www.website.de/12356/).

    Also war mein erster Gedanke, die Grundstruktur im Seitenbaum aufzubauen und diese Basisversion dann für jedes FE-Mitglied zu duplizieren und mit eigenem Startpunkt zu versehen.

    So weit so gut. Doch nun stellt sich heraus, dass auch eine Mehrsprachigkeit gegeben sein muss!
    Und da stehe ich - als Contao-Neuling - vor der Frage, wie sich beides vereinbaren lässt.
    Denn diese multiplen Startpunkte im Seitenbaum werden ja für die Sprachversionen benötigt.

    Also habe ich darüber nachgedacht, ob nicht auch eine einzige Grundstruktur, mit eigenen Startpunkten und Unterbäumen für die jeweilige Sprache möglich wäre, und dafür grundsätzlich alle relevanten Inhalte innerhalb der Seiten und Module dieser Grundstruktur mit einer zusätzlichen Variable zu versehen, die darüber entscheidet, welche angepassten Inhalte des FE-Mitglieds angezeigt werden!?

    Also z.B. nach dem Schema ...

    www.website.de/home.html (Basisversion - deutsche Sprache)
    www.website.de/en/home.html (Basisversion - englische Sprache)

    www.website.de/12345/home.html (Version Mitglied 12345 - deutsche Sprache)
    www.website.de/12345/en/home.html (Version Mitglied 12345 -englische Sprache)

    oder ...

    12345.website.de/home.html (Version Mitglied 12345 - deutsche Sprache)
    12345.website.de/en/home.html (Version Mitglied 12345 -englische Sprache)


    Ich stehe also gerade vor der Frage, welcher Weg der sinnvollste ist, um Beides zu vereinen. Der Ansatz mit einem einzigen Seitenbaum, inklusive verschiedener Sprachstartpunkte und Mitgliedspezifischer Inhalte, erscheint mir momentan am übersichtlichsten. Zumal die dynamischen Inhalte sowieso aus neuen Datenbanktabellen kommen werden. Doch habe ich noch keinen Ansatz, wie sich dann zusätzlich eigene Mitgliedsnummer-Einstiegsstartseiten hinzufügen lassen.

    Aber vielleicht ist das ja auch gar nicht der sinnvollste Ansatz!?

    Daher würde ich mich über Tipps und Anregungen freuen!

    Viele Grüße

  2. #2
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Willkommen in der Contao-Community!

    So eine Anforderung hatte ich auch schon. Ich habe das gelöst mit einem Wildcard-Startpunkt (keine Domain eingetragen) und einem Hook, der die Subdomainenaufrufe checkt und weiterleitet auf die Hauptstruktur. In dem Projekt ging es um 200 bis 300 Subdomains.

    Im Backend habe ich dazu für jeden "Kunden" Informationen hinterlegt: Kontaktinformationen mit Foto, Logo, eigene CSS-Farben, usw.
    Wird nun eine solche Subdomain aufgerufen, werden im Hook die passenden "Kunden"daten in die Session geschrieben und bei der Ausgabe der Website entsprechend verwendet.

    Ich müßte mir aber heute Abend noch einmal genau ansehen, wie es funktioniert und ob ich den Code ggf. weitergeben kann/darf.

    Vielleicht gibt es ja hier im Forum noch andere Ideen der Realisierung?

  3. #3
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    5

    Standard

    Hallo do_while!

    Super - herzlichen Dank für die Idee! Wildcard-Domains und Seitenaufruf-Hook ... ja, das klingt gut. :-)

    Mir ist zwischenzeitlich vielleicht sogar noch ein weiterer Ansatz eingefallen. Und zwar wurde mir bewusst, dass ich mich bei allen Inhalten (sind gar nicht viele) auch in eigenen Datenbanktabellen aufhalten könnte - und dort dann halt die Mehrsprachigkeit auf andere Weise lösen. Damit hätte ich nur einen einzigen Seitenbaum für alle Sprachen.

    Allerdings bräuchte ich dann trotzdem noch einen Weg, wie sich Contao dazu "überreden" ließe, ein numerisches Unterverzeichnis in der URL als Variable auszulesen und durch alle Pfade "mitzuschleppen".

    Also z.B. website.de/12345/ -> website.de/12345/home.html .... oder website.de/12345/zweiteseite.html. Was wie website.de/home.html oder website.de/zweiteseite.html behandelt wird, aber irgendwie in der Extension dann einer Variable $mitgliedspfad = "12345" ausgelesen und zugeordnet werden kann.

    Soweit ich das bisher sehe, werden Variablen in der URL ja nach dem Schema "website.de/seite/variablenname/wert.html" übergeben. Also nach der Seite, und immer als Paar.
    Da weiß ich leider nicht, wo sich da bei Contao ansetzen ließe, um das zu umgehen ...

  4. #4
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    5

    Standard

    Hallo nochmal ...

    Okay, ich denke, die Sache ist entschieden. Nach einigem Hin- und Herprobieren habe ich mich für folgende Herangehensweise entschieden:

    1. Der Standard URL-Suffix ".html" wird durch ein "/" ersetzt. (Einstellungen und .htaccess entsprechend ändern)
    2. Jede Seite im Seitenbaum steht für ein FE-Mitglied. Wobei der Name der Seite dem Namen des FE-Mitglieds entspricht und der Seitenalias der Mitgliedsnummer.
    3. Alle Inhalte und virtuellen "Seiten" werden dynamisch von einer Extension geliefert.
    4. Sprachen werden als erster URL-Parameter übergeben.


    Auf diese Weise ist die neutrale Basisversion direkt unter der Domain erreichbar.
    www.domain.de/

    Die jeweiligen Mitgliederbereiche sind in scheinbaren Unterverzeichnissen aufrufbar.
    www.domain.de/12345/
    www.domain.de/67890/

    Sprache und "Seite" werden ebenfalls über die URL übergeben.
    www.domain.de/12345/de/start/
    www.domain.de/67890/en/detail/

    Es gibt also eine Variable für jede Sprache, die als Wert die jeweilige virtuelle Seite besitzt.

    Da sowohl die Anzahl an "Seiten" wie auch an "Sprachen" nur gering ist, und alle Inhalte in neu angelegten Tabellen liegen, sollten auf diese Weise eigentlich alle Anforderungen auf sehr einfache Weise gelöst sein. Und wenn ein neues Mitglied hinzukommt, dann sollte es auch völlig ausreichend sein, einfach nur die erste Basisseite im Seitenbaum zu kopieren und den Namen plus Seitenalias der neuen Seite auf das Mitglied anzupassen.

    Nur eine kleine Sache stört mich noch: Wenn nur die Domain, mit einer Nummer, aber ohne abschliessendes "/" übergeben wird - www.domain.de/12345 - , dann kann Contao keine Seite finden.

    Wahrscheinlich lässt sich das aber über eine Anpassung der .htaccess ändern, oder?
    Weiß jemand vielleicht, was genau man dort schreiben müsste, wenn man nur das allerletzte Zeichen der URL prüfen möchte, ob es ein "/" ist, und falls nicht, ein solches Zeichen automatisch anhängt?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •