Auf dem BarCamp in Berlin wurde eine Multi-Domain Konfiguration mit RealURL vorgestellt. Problem war, dass die einzelnen Domains unterschiedliche Startpunkte hatten. Nachteil der vorgestellten Lösung war, dass zwar für jede Anfrage die passende rootpage_id genommen wurde, aber man keine individuellen Änderungen vornehmen konnte. Mit diesem Scheduler Task ist dies anders.
Der Scheduler Task legt parallel zur „localconf.php“ eine „localhost_AutoRealURLDomainConfiguration.php“-Datei ab. In dieser werden automatisch (im Intervall des Scheduler Tasks) alle Domains, welche keine Weiterleitungen sind, mit der passenden rootpage_id konfiguriert (Achtung: Syntax-Highlightig funktioniert nicht richtig).
class Tx_Extension_Scheduler_RealUrlDomainConfiguration extends tx_scheduler_Task { public function execute() { $nl = "\n"; $phpCode = '<?php'.$nl; $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*','sys_domain','hidden=0 AND redirectTo=""','','',1000); while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)){ $phpCode .= '$TYPO3_CONF_VARS[\'EXTCONF\'][\'realurl\'][\''.$row['domainName'].'\'] = $TYPO3_CONF_VARS[\'EXTCONF\'][\'realurl\'][\'_DEFAULT\'];'.$nl; $phpCode .= '$TYPO3_CONF_VARS[\'EXTCONF\'][\'realurl\'][\''.$row['domainName'].'\'][\'pagePath\'][\'rootpage_id\'] = '.$row['pid'].';'.$nl; } $phpCode .= '?>'; // write $path = PATH_site.'typo3conf/localhost_AutoRealURLDomainConfiguration.php'; return file_put_contents($path, $phpCode); } } |
Der Aufruf der neuen RealURL-Konfigurationdatei findet dann HINTER euren normalen RealURL Konfiguration (in der „localconf.php“) statt.
// normale RealURL Config hier (_DEFAULT) $autoRealConf = dirname(__FILE__).'/localhost_AutoRealURLDomainConfiguration.php'; if(file_exists($autoRealConf)) require_once($autoRealConf); // Besonderheiten für Domains hier (Domain) |
Vorteil dieser Lösung ist, dass man im Backendmodul „Konfiguration“ alle Domains in der RealURL Konfiguration wiederfindet und auch die Änderungen passend sichtbar sind. Habt ihr eine andere, vielleicht leichtere/bessere Lösung?