13. 08. 2018, 14:17

Hallo,
ich würde bei einem Powermail-Formular gerne den Subheader des Plugins in einem Checkbox-Feld benutzen.
Beispiel: (im Formular, ein Feld vom Typ checkbox
[code]Daten zur Veranstaltung {ttContentData.subheader} werden vom Veranstalter und seinen Partnern verarbeitet[/code]

aber kann ich ttContentData in diesem Bereich überhaupt verwenden? ich habe auch schon versucht, das über eine {f:cObject(typoscriptObjectPath:'lib.dynText',data:'{ttContentData.subheader}')} zu lösen, klappt aber auch nicht, obwohl ich die Variable {ttContentData} bis in die Partials/Form/Fields/Check.html durchgereicht habe und dort auch debuggen kann.

Jetzt schicke ich den {setting.value} und das {setting.label} in der Check.html samt einem Platzhalter ###SUBHEADER### an den vhs-replacement-Viewhelper, aber das ist alles sehr hacky und ich bin mit der Lösung eher unzufrieden.

Partials/Form/Field/Check.html
[code]{namespace vh=In2code\Powermail\ViewHelpers}
{namespace v=FluidTYPO3\Vhs\ViewHelpers}

<div class="powermail_fieldwrap powermail_fieldwrap_type_check powermail_fieldwrap_{field.marker} {field.css} {settings.styles.framework.fieldAndLabelWrappingClasses}">
<label class="{settings.styles.framework.labelClasses}" title="{field.description}">
{field.title->vh:string.escapeLabels()}<f:if condition="{field.mandatory}"><span class="mandatory">*</span></f:if>
</label>
<div class="{settings.styles.framework.fieldWrappingClasses} col-sm-8 col-sm-offset-3">
<f:for each="{field.modifiedSettings}" as="setting" iteration="index">
<div class="{settings.styles.framework.checkClasses} {vh:Validation.ErrorClass(field:field, class:'powermail_field_error')}">
<f:variable name="settingWithSubheader">
{v:format.replace(content: setting.value, substring: '###SUBHEADER###', replacement: '{f:if(condition:ttContentData.subheader,then:ttContentData.subheader,else:\'\')}', count: 9, caseSensitive: 1)}
</f:variable>
<f:variable name="labelWithSubheader">
{v:format.replace(content: setting.label, substring: '###SUBHEADER###', replacement: '{f:if(condition:ttContentData.subheader,then:ttContentData.subheader,else:\'\')}', count: 9, caseSensitive: 1)}
</f:variable>
<label>
<f:form.checkbox
property="{field.marker}"
value="{settingWithSubheader->f:spaceless()}"
checked="{vh:Misc.PrefillMultiField(field:field, mail:mail, cycle:index.cycle)}"
id="powermail_field_{field.marker}_{index.cycle}"
additionalAttributes="{vh:Validation.ValidationDataAttribute(field:field, iteration:index)}"
class="powermail_checkbox powermail_checkbox_{field.uid}" />
{labelWithSubheader->vh:string.escapeLabels()}
</label>
</div>
</f:for>

<f:if condition="{settings.validation.client}">
<div class="powermail_field_error_container powermail_field_error_container_{field.marker}"></div>
</f:if>
</div>
</div>
[/code]
und im Form in der Checkbox bei den Optionen
Ich willige ein, dass meine Daten für die Veranstaltung ###SUBHEADER### und die zur Erbringung des Angebots erforderlichen Zwecke gespeichert und verarbeitet werden.

Habe ich etwas vergessen und es gibt die elegante Lösung doch, mit der ich im Form Werte aus dem Plugin verwenden kann?
viele Grüße, Sabine