TS in Abhängigkeit von Anzahl der Content-Elemente in einer Spalte [Gelöst]

  • Michaelh74 Michaelh7...
    Jedi-General
    0 x
    1519 Beiträge
    0 Hilfreiche Beiträge
    28. 05. 2009, 20:49

    Hallo zusammen,

    jetzt muss ich mal wieder selbst fragen und hoffe auf Eure Hilfe.

    Hintergrund: Ich setzte tt_news ein und möchte aus Platzgründen je nachdem ob ein bestimmtes Element in der gleichen Spalte hidden oder eben nicht ist 3 bzw. 5 News-Einträge anzeigen.

    Mein Gedanke war ein Abfrage wieviele NumRows es in der bestimmten Spalte gibt. Das klappt mehr oder weniger. Aber wie mache ich nun eine condition bzw. if Abfrage in der ich mein latestNews.limit entsprechend setzen. Dafür bin ich anscheinend nicht TS-Künstler genug...

    Vielen Dank schon mal für jeden Tipp!

    Gruß
    Michael


  • 1
  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    28. 05. 2009, 20:56

    hallo,

    mach ein cObject case und beim key nimmst du das numrows, dann kannst du auf jede anzahl reagieren

    lg georg

  • Michaelh74 Michaelh7...
    Jedi-General
    0 x
    1519 Beiträge
    0 Hilfreiche Beiträge
    29. 05. 2009, 10:58

    Hallo Georg,

    danke für Deine Hilfe!

    In diese Richtung hatte ich es schon mal versucht, aber sicher mit falsche Syntax.

    [TS]### Check if more than 1 CE is active in border column and overwrite news latest limit ###
    plugin.tt_news = CASE
    plugin.tt_news.key.numRows {
    table = tt_content
    select {
    select.pidInList = this
    where = uid=1251 AND hidden=0
    }
    }
    [/TS]

    oder auch schon so:
    [TS]### Set default news limit ###
    plugin.tt_news.latestLimit = 3

    ### Check if more than 1 CE is active in border column and overwrite news latest limit ###
    plugin.tt_news.latestLimit = 2
    plugin.tt_news.latestLimit.if.isTrue.numRows {
    table = tt_content
    select {
    select.pidInList = this
    where = uid=1251 AND hidden=0
    }
    }

    plugin.tt_news.latestLimit = 4
    plugin.tt_news.latestLimit.if.isFalse.numRows {
    table = tt_content
    select {
    select.pidInList = this
    where = uid=1251 AND hidden=0
    }
    }
    [/TS]

    Da ist sicher noch irgendwie der Wurm drin. Bin mir mit den cObject auch überhaupt nicht sicher wie ich das hier ansetzen muss.

    Vielen Dank noch mal!

    Gruß
    Michael

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    29. 05. 2009, 11:16

    nö das is mal totaler quatsch, sorry ;)

    das musst du so aufziehen

    [TS]lib.foo = CASE
    lib.foo {

    key.numrows {
    table = tt_content
    }

    3 < plugin.tt_news
    3 {
    konfiguration bei 3
    }

    }[/TS]

    ansonsten könnte man auch ein if machen, damit man nur ein größer/kleiner hat

    lg georg

  • Michaelh74 Michaelh7...
    Jedi-General
    0 x
    1519 Beiträge
    0 Hilfreiche Beiträge
    29. 05. 2009, 13:40

    nö das is mal totaler quatsch, sorry ;)

    Das hatte ich ehrlich gesagt bereits erwartet #giggle#

    Danke für den Denkanstoß. Auch wenn ich mich schon einige Jahre sehr intensiv mit T3 beschäftige ist mir TS immer wieder ein Rätsel...

    Nur kurz zum Verständnis.
    Das Objekt lib.foo wird je nach CASE numrows gefüllt.
    Bei CASE 3 wird da plugin tt_news kopiert.
    Muss ich innerhalb von 3 das dann so zuweisen
    [TS]3.plugin.tt_news.latestLimit = 2
    [/TS]
    oder
    [TS]3.latestLimit = 2
    [/TS]

    Am Ende muss ich dann wohl wieder
    [TS]plugin.tt_news.latestLimit < lib.foo
    [/TS]
    damit das wieder allgemeingültig für die News wird, richtig?

    Vielen Dank für Deine Hilfe!
    Vielleicht kann dann doch mal Licht in meine dunklen Weiten des TS.

    Liebe Grüße
    Michael

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    29. 05. 2009, 14:19

    nö falsch.
    lib.foo enthält bereits das tt_news element

    im key wird aufgeschlüsselt nach was unterschieden wird, hier nach der anzahl und anschlie0end muss man angeben was mit dem ergebnis passiert

    also bei 3 als ergebnis
    3 < plugin.tt_news
    3.latestLimit = 2

    bei 2
    2 < <plugin.tt_news
    2.liatestLimit = 3

    verständlich?

    lg georg

  • Michaelh74 Michaelh7...
    Jedi-General
    0 x
    1519 Beiträge
    0 Hilfreiche Beiträge
    29. 05. 2009, 19:35

    Ok, den ersten Part mit CASE verstehe ich nun.
    Vielen Dank schon mal dafür!

    Um das Plugin auf der Seite in dieser Form bzw. mit dieser limit Konfiguration zu verwenden muss ich das doch z.B. so lösen:
    [TS]page.10.subparts.NEWS < lib.foo
    [/TS]

    Aber wenn ich meine News auf dieser Seite per normalem Content Element mit Plugin News einbinde, weiss dieses doch vom meinem limit nix. Deshalb dachte ich ich könnte das Plugin einfach mit meinem lib überschreiben.

    Vielen Dank für Deine Erläuterung. Werde sobald ich das komplett verstanden habe mein Wissen auch hier im Forum gerne weiter gehen ;-)

    Liebe Grüße
    Michael

  • Michaelh74 Michaelh7...
    Jedi-General
    0 x
    1519 Beiträge
    0 Hilfreiche Beiträge
    30. 05. 2009, 18:50

    Ok, hier die Lösung. So hab ich es Dank den Tipps von Georg hinbekommen:

    [TS]### News Limit depending Content element count ###
    temp.NEWS = CASE
    temp.NEWS {
    key.numRows {
    table = tt_content
    select {
    pidInList = 29
    where = colpos=3
    }
    }

    1 < plugin.tt_news
    1.latestLimit = 4

    2 < plugin.tt_news
    2.latestLimit = 3
    }

    plugin.tt_news < temp.NEWS

    [/TS]

    Vielen Dank noch mal an Georg!

    Gruß
    Michael

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    30. 05. 2009, 19:18

    jo das schaut doch schön aus ;)

    lg georg

  • kobi kobi
    Padawan
    0 x
    41 Beiträge
    0 Hilfreiche Beiträge
    10. 10. 2011, 15:39

    Hi meine Lieben,

    ich hab mir auch etwas gebastelt mit folgendem Ziel. Jedes CE sollte einen Wrap bekommen, mit der Anzahl der Contente Elemente dieser Spalte. Das funzt soweit auch, sofern ich nur Text-Elemente benutze. Sobald aber ein textpic verwendet wird, zeigt er mir davon Bild und Bodytext nicht mehr an.

    Hier mein TS:

    1. #######################################################
    2. ## Content Elemente zählen
    3. temp.TEASER_COUNTER = CASE
    4. temp.TEASER_COUNTER {
    5. key.numRows {
    6. table = tt_content
    7. where = colpos = 0
    8. }
    9. }
    10.  
    11. 1 < tt_content
    12. 1.stdWrap.outerWrap = <div class="count_1">|</div><div class="spacer"></div>
    13.  
    14. 2 < tt_content
    15. 2.stdWrap.outerWrap = <div class="count_2">|</div><div class="spacer"></div>
    16.  
    17. 3 < tt_content
    18. 3.stdWrap.outerWrap = <div class="count_3">|</div><div class="spacer"></div>
    19.  
    20. 4 < tt_content
    21. 4.stdWrap.outerWrap = <div class="count_4">|</div><div class="spacer"></div>
    22.  
    23. 5 < tt_content
    24. 5.stdWrap.outerWrap = <div class="count_5">|</div><div class="spacer"></div>
    25.  
    26. 6 < tt_content
    27. 6.stdWrap.outerWrap = <div class="count_6">|</div><div class="spacer"></div>
    28.  
    29. 7 < tt_content
    30. 7.stdWrap.outerWrap = <div class="count_7">|</div><div class="spacer"></div>
    31.  
    32. 8 < tt_content
    33. 8.stdWrap.outerWrap = <div class="count_8">|</div><div class="spacer"></div>
    34.  
    35. 9 < tt_content
    36. 9.stdWrap.outerWrap = <div class="count_9">|</div><div class="spacer"></div>
    37.  
    38. 10 < tt_content
    39. 10.stdWrap.outerWrap = <div class="count_10">|</div><div class="spacer"></div>
    40.  
    41. }
    42.  
    43.  
    44.  
    45. tt_content < temp.TEASER_COUNTER

  • 1