Hallo,
ich hänge an einem Problem, und zwar möchte ich die Domain aus der Datenbank Tabelle sys_domain auslesen und anschließend dinge wie den HTML Base href dynamisch zu generieren. Der Grund dafür ist das für zahlreiche Plugins die Konfiguration der Domain notwendig ist und die Webseite mehrere Bäume für verschiedene Domains beinhaltet die ich alle von Hand ändern muss sobald ich irgendwie zwischen der Live oder Testumgebung wechsle bei welcher natürlich die Domains etwas anders sind (Passiert mindestens 1 mal pro Woche).
Gefunden habe ich bisher nur dieses Snippet.
lib.domain = COA
lib.domain {
10 = CASE
10.key.data = leveluid:0
10.default = TEXT
10.default.data = DB:sys_domain:2:domainName
10.52 = TEXT
10.52.data = DB:sys_domain:1:domainName
}
page.100 < lib.domain
Wenn ich nun testweise das ganze mit
page.headerData.101 = TEXT
page.headerData.101.value < page.100
ausgeben möchte erscheint im HTML nur der Text "COA"
Letztenendes möchte ich sowas nicht mehr von Hand anpassen
[globalString = _SERVER|HTTPS=on]
config.baseURL = https://www.domain.net/
[else]
config.baseURL = http://www.domain.net/
[global]
Kann mir jemand erklären was ich falsch mache?
Hallo,
kevinq schrieb
page.headerData.101 = TEXT
page.headerData.101.value < page.100
damit weist Du einem TEXT-Wert ein COA zu. Das kann nicht gut gehen.
Richtig wäre es gewesen:
page.headerData.101 < lib.domain
oder einfach:
page.headerData.101 = COA
page.headerData.101 {
10 = CASE
10.key.data = leveluid:0
10.default = TEXT
10.default.data = DB:sys_domain:2:domainName
10.52 = TEXT
10.52.data = DB:sys_domain:1:domainName
}
VG,
LuP
Danke für die Hilfe, ich bin schonmal etwas weiter aber leider nicht am ziel.
das einfache ausgeben mit page.headerData funktioniert soweit schonmal. Aber da wo ich es eigentlich hinnein haben will gibt er mir immernoch nur COA aus. #angry#
lib.domain = COA
lib.domain {
10 = CASE
10.key.data = leveluid:1
10.default = TEXT
10.default.data = DB:sys_domain:1:domainName
10.52 = TEXT
10.52.data = DB:sys_domain:1:domainName
}
domain.host < lib.domain
domain.http = COA
domain.http {
10 = TEXT
10.value = http://
20 < domain.host
}
domain.https = COA
domain.https {
10 = TEXT
10.value = https://
20 < domain.host
}
[globalString = _SERVER|HTTPS=on]
config.baseURL < domain.https
[else]
config.baseURL < domain.http
[global]
wie setze ich denn nun ein COA in die config Variable?
Hallo,
probiere es mal hiermit:
lib.domain = COA
10 = CASE
10.key.data = leveluid:1
10.default = TEXT
10.default.data = DB:sys_domain:1:domainName
10.52 = TEXT
10.52.data = DB:sys_domain:1:domainName
}
[globalString = _SERVER|HTTPS=on]
lib.domain.wrap = https://|
[else]
lib.domain.wrap = http://|
[global]
config.baseURL < lib.domain
VG,
LuP
Mein vorheriger Ansatz dürfte auch nicht funktionieren, weil baseURL eine Konstante erwartet.
Wie wäre es die einzelnen Domains in Constants zu prüfen?
- Constants:
config.domain = http://www.defaultdomain.tld/
[globalString = ENV:HTTP_HOST=www.domain1.tld]
config.domain = http://www.domain1.tld/
[globalString = ENV:HTTP_HOST=www.domain1.tld] AND [globalString =_SERVER|HTTPS=on]
config.domain = https://www.domain1.tld/
[global]
- Setup:
config.baseURL = {$config.domain}
VG,
LuP
Mein Ziel ist es aber beim wechsel zwischen Live und Testumgebung nicht das Typoscript anpassen zu müssen. beim syncroniesieren kann ich ziemlich einfach eine Datenbank Tabelle ausschließen. Änerungen am Typoscript sind da deutlich aufwändiger, zumal ich hier derzeit 4 Bäume mit je einer Domain habe, tendenz steigend.