[TYPO3-german] if abfrage
Ralf-Rene Schröder
ralf.rene at online.de
Tue Nov 10 19:41:54 CET 2015
ich würde an deiner Stelle eher auf meinem Beispiel von 14:11 aufbauen,
denn hier wimmelt es von Fehlern
Am 10.11.2015 um 14:36 schrieb Ben Ner:
> diese habe ich absichtlich entfernt da html wird geparst wird.
>
> der ausschlaggebende teil ist dieser:
>
> 20 = CONTENT
> 20{
> table = tt_content
> # Dieses nur rendern wenn ein bodytext
> vorhanden ist
> if.isTrue.field = bodytext
> field = bodytext
die beiden vorigen Zeilen sind unsinn
CONTENT hat kein if und auch kein field (sieh in die TSREF)
also wäre es zumindest:
stdWrap.if.isTrue.field = bodytext
ABER
du könntest hier ein if auf bodytext erst NACH der Abfrage machen, also
beist sich hier die katze in den schwanz (oder hat dein übergeordnetes
element bodytext???)
außerdem fehlt hier jegliche selectabfrage
(mir wirklich nicht klar was du hier genau machen willst)
> wrap = <p class="content">|</p>
>
> renderObj = COA
> renderObj{
> 30 = CONTENT
> 30{
> table = tt_content
> select.pidInList.field = uid
> select.begin = 0
> select.max = 1
> where = colPos=0
> renderObj = COA
> renderObj{
> 50 = TEXT
> 50{
> field = bodytext
> stripHtml = 1
> crop = 30 | ... | 1
> wrap = <span>|</span>
> }
> }
> wrap = <p class="content">|</p>
> }
> }
> }
>
> nur wenn aus spalte 3 der bodytext leer ist (20), soll die 2. abfrage
> (30) ausgeführt werden und jeweils natürlich nur ein wrap ausgegeben werden
>
> solltest du dies zitieren, bitte nichts löschen da ich mit dem
> auskommentierten und (für mich) wild eingesetzten stdwrap nichts
> anfangen kann, ich muss den unterschied deutlicher sehen um es verstehen
> zu können
ich versuche es nochmal komplett mit deinen selects
(setzt die existenz des field uid beim Einstieg voraus):
stdWrap.dataWrap.cObject = COA
stdWrap.dataWrap.cObject {
dataWrap = <div class="teaser" name="tb{register:count_MENUOBJ}"> | </div
10 = CONTENT
10 {
table = tt_content
select{
pidInList.field = uid
where = colPos=3
}
stdWrap.outerWrap = <div class="inner"> | <div>
renderObj = COA
renderObj {
10 < tt_content.image
10 {
10.stdWrap.dataWrap = |
10.stdWrap.field = none
wrap = <div class="image"> | </div>
}
20 = TEXT
20 {
field = header
required = 1
wrap = <div class="header"> | </div>
}
30 = TEXT
30 {
field = bodytext
required = 1
stripHtml = 1
crop = 30 | ... | 1
wrap = <div class="content"> | </div>
}
50 = CONTENT
50 {
# Dieses nur rendern wenn kein bodytext vorhanden ist
stdWrap.if.isFalse.field = bodytext
table = tt_content
select.pidInList.field = uid
select.begin = 0
select.max = 1
where = colPos=0
wrap = |
renderObj = COA
renderObj {
30 = TEXT
30 {
field = bodytext
required = 1
stripHtml = 1
crop = 30 | ... | 1
wrap = <div class="content"> | </div>
}
}
}
}
}
}
PS: last try... bitte lies die Infos in der TSREF, informiere dich über
TypoScript allgemein, und versuche nicht auf deinem Vorgehen zu
beharren... TS ist keine Programmiersprache wo du beliebige
Abhängigkeiten aufbauen kannst... du konfigurierst damit ein großes
Array was nur in einer vorgegebenen Weise funktioniert und nicht anders.
PPS: übrigens, ich halte deine Vorgehensweise immer noch für
ungeschickt, weil störanfällig... noch wertest du sortierungen nicht
aus, und wenn es zufällig mal andere CEs wie irrgendwelche Plugins sind
klappt es ja auch nicht... ich hätte für solche teaser mir immer noch
die Daten aus den Seiteneigenschaften geholt (z.B.: image, header,
abstract) und nicht von den Seiteninhalten... aber das ist nur meine
persönliche Meinung...
--
image[FORMAT] - Ralf-René Schröder
http://www.image-format.eu ... Wir geben Ihrem Image das richtige Format
More information about the TYPO3-german
mailing list