[Frage] Select bzw. Checkboxes in Powermail-Formularen füllen und vorbelegen TYPO3-Version: 8.7.19

  • c27e27com c27e27com
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    20. 09. 2018, 17:32

    Ich habe ein paar Powermail-Formulare erstellt, die Selects und Checkboxen enthalten, deren Zeilen ich über Typoscript fülle, etwa mit Werten aus der sys_category-Tabelle. Nun möchte ich abhängig vom angemeldeten Nutzer und der Einträge in der (von mir erweiterten fe_users-Tabelle) einige der Werte vorauswählen (checked oder selected). Das versuche ich, indem ich in den Text für die einzelnen Werte ein |* einfüge für die Zeilen, die eine Vorauswahl erhalten sollen. Allerdings klappt das leider gar nicht. Hier mein Versuch:

    [code]powermail.options {
    category = CONTENT
    category {
    table = sys_category
    select.pidInList = 41
    renderObj = COA
    renderObj {
    10 = TEXT
    10.field = title

    20 = TEXT
    20.value = |

    30 = TEXT
    30.field = uid

    # !TODO hier müsste noch rausgekriegt werden, was vorausgewählt sein soll
    # ABER HIMMEL-ARSCH-UND-ZWIRN NOCH EINS -- ES FUNKTIONIERT EINFACH NICHT!
    40 = TEXT
    40.value = |*
    40.if.isInList.field = uid
    40.if.value = CONTENT
    40.if.value {
    table = fe_users
    select {
    pidInList = 41
    where.dataWrap = uid = {TSFE:fe_user|user|uid}
    }
    renderObj = TEXT
    renderObj.field = category
    }
    # !TODO hier müsste noch rausgekriegt werden, was vorausgewählt sein soll
    stdWrap.wrap = |[\n]
    }
    }
    }
    [/code]

    Hat jemand eine Idee, wo der Fehler liegen könnte?


  • 1
  • c27e27com c27e27com
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    21. 09. 2018, 08:30

    Jetzt versuche ich grade, das in einer einzigen Datenbankabfrage mit LEFTJOIN zu machen ...

  • c27e27com c27e27com
    TYPO3-Anwärter
    0 x
    4 Beiträge
    0 Hilfreiche Beiträge
    21. 09. 2018, 09:19

    Habs hingekriegt. Im Select steht nun

    [code]selectFields = sys_category.uid, sys_category.title, fe_users.category
    pidInList = 41
    leftjoin = fe_users ON 1=1
    where.dataWrap = fe_users.uid = {TSFE:fe_user|user|uid}
    [/code]

    und im renderObj

    [code]40 = TEXT
    40.value = |*
    40.if.value.field = category
    40.if.isInList.field = uid
    [/code]

  • 1