Zum Inhalt springen

dynamisches Contentelement

Erstellt am 17. Juni 2014 · 16 Antworten · letzte Antwort am 25. Juni 2014

Tags: TYPO3 6.x, Frage

jenses ·

Das Öffnen und Schließen der geschweiften Klammern sollte man schon korrekt durchführen,
schau dir dein TS noch mal selbst dahingehend an...

typo3_hp ·

Vielen Dank!

Leider funktioniert es aber immer noch nicht. Der Contentverweis wird in jedem Fall angezeigt, nicht nur - wie gewollt - donnerstags.

    10 = TEXT
    10.value = HEUTE
    10.if {
    value.data = date:N
    equals = 4
    }
     
    20 = CONTENT
    20 {
    table = tt_content
    select {
    # Seite mit ID X ist Quelle
    pidInList = 13
    #languageField = sys_language_uid
    orderBy = sorting
    # colPos=2 ist Spalte 'RECHTS'
    where = colPos=0
     
    }
    
    if {
    value.data = date:N
    equals = 4
    negate = 1
    }

}

Danke und LG

jenses ·

CONTENT hat keine Eigenschaft if,
wohl aber stdWrap,
also:

20 = CONTENT
20 {
   ...
   stdWrap.if {
   ...
   }
}
typo3_hp · · Beste Antwort

Vielen dank,

irgendwie tue ich mir schwer mit dem Script:

Habe es so:

20 = CONTENT
    20 {
    table = tt_content
    select {
    # Seite mit ID X ist Quelle
    pidInList = 13
    #languageField = sys_language_uid
    orderBy = sorting
    # colPos=2 ist Spalte 'RECHTS'
    where = colPos=0
      }
      
    20.stdWrap.if {
    value.data = date:N
    equals = 4
    negate = 1
    }

und so:

20 = CONTENT
    20 {
    table = tt_content
    select {
    # Seite mit ID X ist Quelle
    pidInList = 13
    #languageField = sys_language_uid
    orderBy = sorting
    # colPos=2 ist Spalte 'RECHTS'
    where = colPos=0
    }
      
    stdWrap.if {
    value.data = date:N
    equals = 4
    negate = 1
    }
    }

versucht, jedoch wird immer noch in allen Fällen das Contentelement angezeigt.

Was mache ich falsch?

Danke und LG

Chrissli ·

Ich lasse mich gerne korrigieren, aber die If-Bedingung sagt doch gerade aus "zeige den Inhalt wenn der Tag nicht '4' ( Donnerstag? ) ist ".

War das denn der Plan? So kommt der Inhalt der Seite mit der ID 13 ja an allen Tagen ausser Donnerstags, oder nicht?

Edit: Gibt es date:N überhaupt? Analog zur PHP-Formatierung aus strftime sollte das doch vermutlich date:u sein?

jenses ·

Variante 2 ist korrekt und funktioniert (getestet).
Cache gelöscht?
Sicher, daß das TS auch ausgeführt wird?
Wird es eventuell später irgendwo überschrieben?

jenses ·
Chrissli schrieb

Ich lasse mich gerne korrigieren, aber die If-Bedingung sagt doch gerade aus "zeige den Inhalt wenn der Tag nicht '4' ( Donnerstag? ) ist ".

Ja, genau das macht sie.
Entfernt man das negate = 1, ist die Funktionsweise umgekehrt.

Chrissli ·
jenses schrieb
Chrissli schrieb

Ich lasse mich gerne korrigieren, aber die If-Bedingung sagt doch gerade aus "zeige den Inhalt wenn der Tag nicht '4' ( Donnerstag? ) ist ".

Ja, genau das macht sie.
Entfernt man das negate = 1, ist die Funktionsweise umgekehrt.

Ok, ich hab den Gesprächsverlauf nämlich so interpretiert, dass eigentlich der Content Donnerstags ( in diesem Fall jetzt ) angezeigt werden soll, entsprechend wäre das negate=1 dann ja fehl am Platz, oder seh ich das falsch?

typo3_hp ·

Suupi ;-)

das war es tatsächlich!
Habe das negate nun entfernt und für jeden Tag der Woche ein Block angelegt.
PASST!

Lieben Dank noch einmal!

Chrissli ·

Als kleiner Tipp für die Übersichtlichkeit:

temp.heute = COA
    #montag
    10 = CONTENT
    10 {
        table = tt_content
        select {
            # Seite mit ID X ist Quelle
            pidInList = 13
            #languageField = sys_language_uid
            orderBy = sorting
            # colPos=2 ist Spalte 'RECHTS'
            where = colPos=0
        }
     
        stdWrap.if {
            value.data = date:N
            equals = 1            
        }
    }
    # dienstag
    20 < .10
    20.select.pidInList = 14
    20.stdWrap.if.equals = 2
    
    # mittwoch
    30 < .10
    30.select.pidInList = 15
    30.stdWrap.if.equals = 3
    
    ...
}

Aber das kennst du ja sicher 😃

Und dann den Thread als gelöst markieren XD