[TYPO3-german] ifEmpty und warp: required defekt?
Gero - WebGears.de
support at webgears.de
Fri Mar 20 19:05:48 CET 2009
JoH asenau schrieb:
>> switchdefault_header_logo.if.isTrue.field = field_header_logo
>>
> switchdefault_header_logo.ifEmpty=fileadmin/templates/images/header_logo.gif
>
> Damit würde ifEmpty nicht mehr ziehen, weil if.isTrue das Element komplett
> abschaltet.
stimmt, da hatte ich jetzt gar nicht dran gedacht...
>
>> switchdefault_header_logo.wrap = uploads/tx_templavoila/|
>>
> switchdefault_header_logo.ifEmpty=fileadmin/templates/images/header_logo.gif
>
> In dem Fall ist wrap immer der Mindestinhalt und ifEmpty kommt deswegen
> nicht zum Tragen.
>
Hm, wie ist das dann wenn ich den wrap mit in
die if abfrage stecke? Sollte doch klappen, wenn
ich mich nicht täusche.
Ich kann das im moment leider nicht testen.
switchdefault_header_logo = COA
switchdefault_header_logo.10 = TEXT
switchdefault_header_logo.10.if.isTrue.field = field_header_logo
switchdefault_header_logo.10.if.wrap = uploads/tx_templavoila/|
switchdefault_header_logo.10.if.insertData = 1
switchdefault_header_logo.10.ifEmpty=fileadmin/templates/images/header_logo.gif
Deine lösung klappt 100%, aber nur mal so zum verständnis.
Es führen ja bekanntlich viele wege nach Rom :)
> Das Zaubermittel heißt hier fieldRequired + COA. Damit kann man
> sicherstellen, daß sowohl override als auch ifEmpty einwandfrei
> funktionieren, weil der wrap "uploads/tx_templavoila|" in jedem Fall mit
> abgeschaltet wird, wenn das Feld keinen Inhalt hat.
>
Danke für den Hinweis :) Wie gesagt war mein TS eigendlich so gedacht,
dass im CSS ein default Header vorgegeben ist. (siehe erster post von
mir unten). Aber hier mal komplett:
---- default.css ----
#content {
background-color: #000000;
}
#header {
background-image: url(fileadmin/user_files/logos/default.jpg);
}
---
----- template.css ----
#content {
###BC_CONTENT###
}
#header {
###TOPLOGO###
}
---
# CSS Dynamic
css = PAGE
css {
typeNum = 100
config {
disableAllHeaderCode = 1
additionalHeaders = Content-type: text/css
}
10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/css/mod/template.css
#content css
10.marks.BC_CONTENT=TEXT
10.marks.BC_CONTENT.value = background-color: #FFFFFF;
# topLogo
10.marks.TOPLOGO = TEXT
10.marks.TOPLOGO.data = levelmedia: -1, slide
10.marks.TOPLOGO.if.isTrue.data = levelmedia: -1, slide
10.marks.TOPLOGO.if.value = {page:media}
10.marks.TOPLOGO.if.insertData = 1
10.marks.TOPLOGO.wrap = background-image: url(/uploads/media/|);
}
einbinden tu ich das ganze im Main-Template mit:
page.headerData.20 = HTML
page.headerData.20.value = <link rel="stylesheet" type="text/css"
href="index.php?id={field:uid}&type=100" />|
page.headerData.30 = TEXT
page.headerData.30.dataWrap = <link rel="stylesheet" type="text/css"
href="index.php?id={field:uid}&type=100" />|
somit darf 10.marks.TOPLOGO nichts zurück geben, sonst gibt´s salat im
geparsten template.css
die values fütter ich normal mit constanten:
10.marks.BC_CONTENT.value = {$background.color.content}
die man dann per MOD_TS:EDITABLE_CONSTANTS klickibunti editieren kann ;)
> Das COA wird benötigt, damit man ifEmpty bzw. override auf den gesamten
> Container anwenden kann, währen der Wrap sich nur in einem Unterelement
> davon befindet. Ansonsten hätte man nämlich den Effekt, dass der Wrap immer
> gezogen wird, auch wenn der Inhalt von ifEmpty geliefert wird.
>
einen COA brauch ich in dem fall nicht,
da ich ja ein css PAGE Objekt erstelle, type=100
> HTH
>
> Joey
>
Gruss Gero
More information about the TYPO3-german
mailing list