[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