t3sports - Spielfrei aus nächstes Spiel entfernen [Gelöst]

  • gonzales_maierle gonzales_...
    Padawan
    0 x
    61 Beiträge
    0 Hilfreiche Beiträge
    24. 09. 2011, 23:06

    Hi zusammen!

    Aus meiner Anzeige für das nächste Spiel würde ich gerne die spielfreien Partien entfernen, da diese ja eigentlich kein "nächstes Spiel" sind, sondern erst das Match danach.

    Mein (nicht funktionierender) Ansatz sieht folgendermaßen aus:

    1. plugin.tx_cfcleaguefe_competition.matchtable.fields {
    2. MATCH.GUEST.OP_IN_INT != ANY(SELECT uid FROM tx_cfcleague_teams WHERE dummy = 1)
    3. }

    Das Problem ist halt, dass er
    1. mit dem != nicht zurechtkommt oder alternativ ein OP_OUT_INT nicht kennt und
    2. den SQL-Part dahinter eh nicht ausführt.

    Andere Ideen sind ebenso willkommen wie Korrekturen oder Weiterentwicklungen meines Ansatzes. ;)

    Danke und Gruß
    Gonzales


  • 1
  • bastians bastians
    Sternenflotten-Admiral
    0 x
    225 Beiträge
    0 Hilfreiche Beiträge
    27. 09. 2011, 18:21

    Hi Gonzales,

    hilft es nicht, einfach im Template den Subpart für "spielfrei" mit den Markern wegzulassen?

  • gonzales_maierle gonzales_...
    Padawan
    0 x
    61 Beiträge
    0 Hilfreiche Beiträge
    27. 09. 2011, 19:10

    Hi Bastian,

    die Hoffnung hatte ich auch, jedoch hilft das nicht weiter.
    Das Entfernen der Marker hat nur zur Folge, dass die spielfreie Partie ausgeblendet wird. Die Folgebegegnung rückt aber leider nicht nach.

    Gruß Gonzales

    [b]Edit:[/b] Beim Anzeigen eines kompletten Spielplans würde das Marker-Entfernen helfen, jedoch nicht wenn [b]nur die nächste Partie[/b] angezeigt werden soll

  • bastians bastians
    Sternenflotten-Admiral
    0 x
    225 Beiträge
    0 Hilfreiche Beiträge
    05. 10. 2011, 09:13

    Das ist seltsam, denn wenn der Marker ja nicht gesetzt ist, zieht er ja keine Daten. Wie rufst du das nächste Spiele ab? Über die Angabe der Tage, bis wann Spiele angezeigt werden sollen? Hast du diesen Zeitraum mal erhöht?

  • gonzales_maierle gonzales_...
    Padawan
    0 x
    61 Beiträge
    0 Hilfreiche Beiträge
    05. 10. 2011, 12:23

    Im Spielplan lasse ich mir x Spiel der nächsten 365 Tage anzeigen.
    Wenn ich den Marker für Spielfrei rauslasse und die x Spiele y spielfreie Begegnungen enthalten, bekomme ich nur x-y Spiele angezeigt.

    Gruß
    Gonzales

  • digedag digedag
    Jedi-Ratsmitglied
    0 x
    584 Beiträge
    3 Hilfreiche Beiträge
    06. 10. 2011, 22:16

    Also der Ansatz das ganze per TS zu steuern, war schon nicht ganz verkehrt. Allerdings stimmt die Umsetzung nicht ganz...

    1. plugin.tx_cfcleaguefe_competition.matchtable.fields {
    2. MATCH.GUEST.OP_IN_INT != ANY(SELECT uid FROM tx_cfcleague_teams WHERE dummy = 1)
    3. }

    Mit MATCH.GUEST greifst du auf die Spalte "guest" der Tabelle tx_cfcleague_games zu. Da steht aber nur die UID der Mannschaft drin. Die taugt nichts für den Vergleich. Du benötigst die Spalte dummy in der Tabelle tx_cfcleague_teams. Also ist ein JOIN notwendig. Auf die Mannschaften greift man beim Spielplan über die Aliase TEAM1 und TEAM2 zu. (HOME und GUEST wäre sicher besser gewesen, aber das ist mir damals nicht eingefallen...)
    Okay. Zusammen mit der Spalte ergibt das TEAM1.DUMMY und TEAM2.DUMMY. Das OP_IN_INT ist der Vergleichsoperator. Das OP steht für Operator.
    Aus TEAM1.DUMMY.OP_IN_INT = 1 wird TEAM1.dummy IN (1). Da wir nur einen Vergleichswert haben ist OP_EQ_INT besser. Das INT sorgt übrigens dafür, daß wirklich nur Zahlen verwendet werden. Mit dem Operator OP_EQ kann man auch Strings vergleichen. Hier nun die funktionierende Lösung:

    1. plugin.tx_cfcleaguefe_competition.matchtable.fields {
    2. TEAM1.DUMMY.OP_EQ_INT = 0
    3. TEAM2.DUMMY.OP_EQ_INT = 0
    4. }

    Neben den beiden Teams hat man bei der Suche nach Spielen noch Zugriff auf die Wettbewerbstabelle mit dem Alias COMPETITION. Die JOINs auf diese Tabellen werden automatisch erstellt, sobald einer der Aliase in den Fields auftaucht.

    Übrigens kann man auch eigenen SQL-Code einbringen. Dafür nimmt man dann [b]fields.CUSTOM = t1.dummy = 0[/b]. Hier muss man aber aufpassen, daß der SQL-Code genau in die Anfrage paßt. Also am besten mit der Option debug arbeiten. :)

  • gonzales_maierle gonzales_...
    Padawan
    0 x
    61 Beiträge
    0 Hilfreiche Beiträge
    06. 10. 2011, 23:59

    Hi digedag,

    vielen, vielen Dank für die Hilfe! Funktioniert einwandfrei.
    Da hätte ich noch Tage rumprobieren können und wäre vermutlich so schnell nicht drauf gekommen. ;)

    Aber gut, wieder was gelernt.

    Also nochmal Danke und Gruß
    Gonzales

    PS: Einen hätte ich dann aber noch für dich, wenn du mal wieder etwas Zeit hast. ;)
    http://www.typo3.net/forum/beitraege/diverse_sonstige_module/107508/ ist die letzten Tage etwas nach hinten gerutscht.

  • 1