Da meiner Meinung nach jetzt zwei unterschiedliche Fragen mit teilweise gemeinsamen Kontext hier zusammengefasst wurden, hier ein kleines Menü:
Die Frage, "Sicherheitslücke in Contao (Ja oder Nein)?" findet sich ab Beitrag #25.
Die Überlegung, wie eine Vorschau auch für Multidomain-Betrieb realisert werden könnte folgt direkt im Anschluss.
#################################################
Aktualisierter Patch für TL-Version 2.8.2 ist weiter unten hinzugefügt.
siehe Betrag #24
Dieser enthält entgegen den ersten Versionen auch eine erweiterte Rechteprüfung. Details siehe auch im PDF im Beitrag #13.
TYPOlight besitzt eine sinnvolle und gute Möglichkeit mit nur einer Installation mehrere Internetseiten mit unterschiedlichen Domains (oder auch Subdomains) zu unterstützen.
Leider kann beim Aufruf der Vorschau bisher immer nur die Internetseite angeschaut werden, welche mit dem Domain-Namen des Backend übereinstimmt.
Die nachfolgende Anleitung beschreibt, wie in die Vorschau eine Auswahlmöglichkeit der zu überprüfenden Domain ergänzt werden kann und hierbei die Funktionen „Frontend User simulieren“, sowie „Unveröffentliche Elemente Anzeigen“ genutzt werden kann, ohne eine Neuanmeldung.
Diese Funktion wurde schon mehrfach gewünscht. (u.a. http://https://contao.org/issues/show/1384)
ACHTUNG: Es werden drei Dateien des TYPOlight-Core verändert. Bei einem Update geht diese Funktion wieder verloren!
Das Prinzip des Domain-Wechsels beruht auf der Tatsache, dass im Frontend an sehr wenigen Stellen der aufgerufene Domain-Name (gespeichert in Enviroment->host) zur Auswahl der zugehörigen Seite genutzt wird.
An genau diesen Stellen wird, falls ein zusätzliches Cookie gesetzt wurde, statt des aufgerufenen Domain-Namens der gewählte Domain-Namen der Vorschau eingesetzt. Die Änderungen am TYPOlight-core sind mit ein paar Zeilen Code erreicht. Der Hauptaufwand ist mal wieder die GUI um die Auswahl der Domain in die Vorschau zu bringen.
Die Anpassungen im Detail bezogen auf die Versionen 2.8.RC2 und 2.7.6 (Zeilennummer stimmen in beiden Versionen an den genannten Stellen noch überein!):
index.php im TL_ROOT-Verzeichnis:
Nach der Zeile 99 sind die folgenden beiden Zeilen einzufügen
Code:
if ($this->Input->cookie('FE_HOST') != "")
$strHost = $this->Input->cookie('FE_HOST');
Weiterhin sind die Zeilen 152-155 durch folgende zu ersetzen:
Code:
$strHost = $this->Environment->host;
if ($this->Input->cookie('FE_HOST') != "")
$strHost = $this->Input->cookie('FE_HOST');
if ($strDomain != $strHost)
{
$objHandler = new $GLOBALS['TL_PTY']['error_404']();
$objHandler->generate($objPage->id, $strDomain, $strHost);
frontend.php im Verzeichnis TL_ROOT/system/modules/frontend:
Nach der Zeile 123 sind folgende Zeilen einzufügen:
Code:
if ($this->Input->cookie('FE_HOST') != "")
$host = $this->Input->cookie('FE_HOST');
Zusätzlich werden noch die Dateien switch.php im TL_ROOT/typolight Verzeichnis und ein neues Template be_switch.tpl benötigt für die GUI. Die Dateien sind als Anlage beigefügt und enthalten umfangreichere Änderungen (zusammen 30 Zeilen Code). Als letztes wird noch ein Label in der langconfig.php angelegt.
PS: Ich hoffe, dass diese Änderung später noch einmal in das core einfließen.
Lesezeichen