Hallo Ihr,
habe folgendes Problem, bei dem ich nicht weiter komme:
Ich will eine Weiche für eine CSS Datei bauen, die in Abhängigkeit von einer Konstante eingebaut wird:
temp.logo = COA
temp.logo.10 {
if.value = quer
if.equals = {$Logo}
value = fileadmin/templates/css1.css
}
temp.logo.20 = TEXT
temp.logo.20 {
if.value = hoch
if.equals.field = {$Logo}
value = fileadmin/templates/css2.css
}
page.includeCSS {
file2 = temp.logo
}
Dies habe ich in einem ext Template eingefügt und es funktioniert nicht. Zumindest teilweise, die if Geschichte geht problemlos, aber das includeCSS nicht.
Wenn ich es so mache, funktioniert es problemlos:
page.includeCSS {
file2 = fileadmin/templates/css2.css
}
Es funktioniert also die Übergabe von temp.logo an das includeCSS nicht richtig. In temp.logo steht der richtige value drin, das habe ich mir an anderer Stelle einmal ausgeben lassen.
Könnt ihr mir helfen, wie ich es anders machen muss?
Vielen Dank
Gruß Max
Hi,
Du hast einen Syntaxehler im TS.
Du hast temp.logo.10 garnicht als TEXT definiert.
temp.logo.10 = TEXT
Müsste es auch nicht
file2 < temp.logo
lauten?
Und probier mal COA_INT statt COA, vielleicht liegt es auch am Cache.
sorry, dass ist bei copy und paste verloren gegangen. Steht drin.
Habe es nun in COA_INT geändert, hat leider auch nichts gebracht.
Habe nun einmal folgendes versucht:
temp.logo1.10 = TEXT
temp.logo1.10.value = fileadmin/templates/css2.css
page.includeCSS {
file2 = temp.logo1
}
Aber auch das funktioniert nicht ?! Mit < statt = bei der Zuweisung geht es auch nicht
Hi,
kopier doch mal bitte den kompletten Code rein.
Hast du das probiert:
Müsste es auch nicht
TYPOSCRIPT
file2 < temp.logo
Und alle Caches im BE gelöscht?
jepp, habe ich probiert.
Im Endeffekt ist das der ganze Quelltext:
temp.logo1.10 = TEXT
temp.logo1.10.value = fileadmin/templates/css2.css
page.includeCSS {
file2 < temp.logo1
}
Wenn diese geht, sollte in meinen Augen auch der andere Teil gehen. Aber leider funktioniert nicht einmal dies.
das hier geht:
page.includeCSS {
file2 = fileadmin/templates/css2.css
}
Somit kann es eigentlich nicht an der css Datei liegen oder an anderen Fehlern im TS
Cache habe ich auch gelöscht
falls jmd eine alternative Idee hat, probiere ich diese auch gerne aus.
Bedingung ist, dass ich über eine Konstante regeln kann, ob CSS-Datei 1 oder CSS-Datei 2 im Header der Seite ausgebe.
Vielen Dank schon jetzt für eure Hilfe!
Hallo Max,
ich hab dein Problem mal auf meinem Testsystem ausprobiert, es scheint nicht möglich zu sein, an page.includeCSS.file einen Wert zu übergeben, egal auf welche Weise...
max2504 schrieb
falls jmd eine alternative Idee hat, probiere ich diese auch gerne aus.
Hast du schon mal an Conditions gedacht? Vlt. könnten die bei deinem Problem die Lösung sein: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html
Was verbirgt sich denn hinter deiner Variablen $Logo?
Grüße Patrick
Hallo Patrick,
ich habe eine Typo3-Installation, in der ca. 150 Unter-Homepages installiert sind. Dieses sind vom Grundlayout gleich. Allerdings haben die einen ein Logo in Hochformat, die anderen in Querformat.
In der Variable $logo will ich eben hinterlegen, ob bei dem Partner ein Hochformat- oder Querformatlogo verwendet wird und in Abhängigkeit davon dann die CSS-Datei auswählen. Den Schritt, 2 unabhängige Templates zu nutzen, will ich wenn irgend möglich, vermeiden.
Gruß Max
Ok, dann probiers doch mal so (ungetestet):
# wenn $Logo gleich 1, dann nimm css1.css
[globalVar = LIT:1 = {$Logo}]
page.includeCSS {
file1 = fileadmin/templates/css1.css
}
# ansonsten css2.css
[else]
page.includeCSS {
file1 = fileadmin/templates/css2.css
}
[end]
Grüße Patrick
Super, genial, das funktioniert!
Jetzt noch den Punkt auf dem i:
Geht es, dass ich in eine temp.logo ein Feld aus einem FCE abfrage und dies dann in der Condition prüfe?
also in etwas so:
temp.logo = TEXT
temp.logo.field = field_logo
So steht in temp.logo der gleiche Wert, den ich in der Konstante habe. Das habe ich geprüft. Nur blicke ich leider nicht durch, wie ich das in der Condition prüfe.
vielen Dank Patrick!!!
max2504 schrieb
vielen Dank Patrick!!!
Bitte bitte, gern geschehen 😉
max2504 schrieb
temp.logo = TEXT
temp.logo.field = field_logo
Also willst du jetzt keine Konstante mehr benutzen, dann geht die vorherige Condition nicht mehr... Die geht nur bei Constants...
Ich benutze leider keine FCEs, daher kann ich jetzt nur vermuten, ob folgendes funktioniert:
[globalVar = TSFE:page|field_logo = 1]
Ansonsten bleibt dir wohl nur noch eine [userFunc]-Condition übrig, wie auf dieser Seits ganz unten beschrieben: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html
Grüße Patrick
Das Auslesen des Wertes aus dem FCE funktioniert problemlos. Diesen habe ich nun in der Variable temp.logo stehen.
Die Frage ist, kann ich über Conditions prüfen, ob die Variable temp.logo = quer, dann CSS1, wenn hoch, dann CSS 2.
Das mit der Konstante funktioniert, allerdings müsste ich dann die Seiten alle einzeln noch einmal bearbeiten. Den anderen Wert habe ich bereits eingetragen und müsste diesen nur auslesen und gegenprüfen.
Gruß Max
Ansonsten vielleicht noch jmd. eine Idee?
Wäre Klasse.
Gruß Max