contao/import — Issue #3453: Rootpage wird bei Sprachenfallback nicht korrekt erkannt
Author: importer
Created: 2011-11-29 21:36:34+00:00
State: open
Labels: Defect, frontend

Seit 2.10 wurde die Abfrage der Root-Page in der Frontend.php in Zeile 130 geändert und um die Nutzung der MySQL-Funktion "FIND IN SET" erweitert. Sobald die Sprache, die als Fallback konfiguriert ist, nicht als Sprache vom Browser übermittelt wird, liefert "FIND IN SET" 0 zurück und gibt die Fallbacksprache in der Reihenfolge vor der eigentlichen Browsersprache aus. So wird also eine englische Seite ausgegeben, obwohl eine deutsche Variante existiert. Dies tritt z.B. im Safari unter Mac OS X auf, der lediglich die Systemsprache als Browsersprache übermittelt. Nachvollziehbar ist das Problem auch auf conto.org. Hier wird neuerdings in einem deutschen Safari die englische Website ausgegeben. Abhilfe schafft folgender Query:

$objRootPage = $this->Database->prepare("SELECT id, dns, language, fallback FROM tl_page WHERE type='root' AND (language IN (?) OR fallback=1) AND (dns=? OR dns='') AND (start='' OR startexecute(implode(',', $accept_language), $host);

Funktional ist dieser verkürzte Query identisch mit jenem aus < 2.10, lediglich das zusätzliche Berücksichtigen des "www"-Aliases wurde entfernt.

[Download the attachments](http://www.contao.org/tl_files/tickets/3453.zip "Download the attachments of this ticket")

--- _Originally created by r00xster on September 9th, 2011, at 05:42pm (ID 3453)_