Zum Inhalt springen

Standard Mailform - hiddenFields geht nicht?

Erstellt am 26. Februar 2016 · 1 Antwort · letzte Antwort am 26. Februar 2016

Tags: Fluid, TYPO3 6.x, Frage

fuzz ·

Hi,

ich möchte im TYPO3 7.6 Standard Mailform grundsätzlich ein Hidden-Field einbinden, wenn ein Nutzer das Inhaltselement einbindet.

Folgendes habe ich versucht:

tt_content.mailform = COA_INT
tt_content.mailform.20.hiddenFields.test = TEXT
tt_content.mailform.20.hiddenFields.test.data = TSFE:id

Jedoch wird das nicht in das Form eingefügt.
Was mache ich falsch, oder geht so etwas generell nicht?

Danke vorab!

fuzz · · Beste Antwort

Da die neue Mailform Extension hiddenFields offenbar nicht mehr kennt habe ich es nun so gelöst:

# Alternativen Partial Pfad um Hidden Elemente mit TypoScript zu vereinen
plugin.tx_form {
  view.partialRootPaths.20 = mypath/templates/ext/form/html/
  settings.registeredElements.HIDDEN.visibleInMail = 1
}

# Wohnungsdaten auslesen
lib.form.wohnungsdaten = RECORDS
lib.form.wohnungsdaten {
  source.data = GP:wohnung

  tables = tx_bnwa_domain_model_wohnungsangebot
  
  conf.tx_bnwa_domain_model_wohnungsangebot = COA
  conf.tx_bnwa_domain_model_wohnungsangebot {
    10 = TEXT
    10.field = wie_nummer
    10.noTrimWrap = ||, |

    20 < .10
    20.field = objekt_schluessel
    
    30 < .10
    30.field = ve_nummer
    
    40 < .10
    40.field = ueberschrift
    40.noTrimWrap = |||
    
  }
}

# Spezielles Rendering des Formulars
tt_content.mailform = COA_INT
tt_content.mailform {

  # Überschrift anzeigen wenn eine Wohnungs ID da ist
  15 = RECORDS
  15 {
    source.data = GP:wohnung
    
    tables = tx_bnwa_domain_model_wohnungsangebot
    
    conf.tx_bnwa_domain_model_wohnungsangebot = TEXT
    conf.tx_bnwa_domain_model_wohnungsangebot {
      field    = ueberschrift
      wrap     = <h2><strong>Wohnung: </strong>|</h2><p>&nbsp;</p>
      required = 1
    }
  }

  # In dem Hidden.html partial wird das TypoScript nun gerendert
  20.10 = HIDDEN
  20.10 {
    name = wohnung
    value = lib.form.wohnungsdaten

    # self made hook (schau in das alternative partial die if condition in der value)
    renderValueAsTypoScript = 1
  }

  25 = RESTORE_REGISTER
}

Hidden.html Partial

<li class="csc-form-{model.elementCounter} csc-form-element csc-form-element-{model.elementTypeLowerCase}">
    <f:form.hidden
        class="{model.additionalArguments.class}"
        dir="{model.additionalArguments.dir}"
        id="{model.additionalArguments.id}"
        lang="{model.additionalArguments.lang}"
        style="{model.additionalArguments.style}"
        title="{model.additionalArguments.title}"
        accesskey="{model.additionalArguments.accesskey}"
        tabindex="{model.additionalArguments.tabindex}"
        onclick="{model.additionalArguments.onclick}"

        name="{model.additionalArguments.prefix}[{model.additionalArguments.name}]"
        value="{f:if(condition:'{model.additionalArguments.renderValueAsTypoScript}',then:'{f:cObject(typoscriptObjectPath:\'{model.additionalArguments

        additionalAttributes="{model.htmlAttributes}"
    />
</li>

Ggf. müssen noch 2 Partials für den Mailversand angepasst werden. Einfach die Partials aus der form sysext "/Default/PostProcessor/Mail/Html" (und text) für das Textfield.html kopieren als Hidden.html

Dann klappt es auch mit dem Mail Versand der versteckten Felder, dynamisch mit TypoScript.