Bug #39138

sysEXT:form checkbox send as input field in EMail

Added by Christian Tauscher almost 10 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Must have
Category:
Form Framework
Target version:
-
Start date:
2012-07-20
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
4.7
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

Hi there.

I am not shure if this is the right place, but since tx_form ist shipped as sysext it could be the right place.
If not, please let me know...

I have checkboxes defined in my form:

20 = CHECKBOX
20 {
name = BSH_FICHTE
label = BSH BRETTSCHICHTHOLZ SKANDINAVISCH- UND HEIMISCHE FICHTE
}
...more checkboxes, more input....

there are rendered in FE as expected (mail-FE.jpg).

The sendt Email ist weired: normal txet-input is redered OK, but the checkboxes are all sent in the email an rendered unreadable.
(mail-html.jpg).

If I switch my Mailer (thunderbird) to show text-only, the embedded TXT version is shown, and this is perfectly OK.
(mail-text.jpg).

Using Typo3 4.7.2

Guess this should be fixed ASAP....

For now I am looking for the option to send forms as "Text Only Version...."

Christian.


Files

mail-FE.jpg (9.86 KB) mail-FE.jpg Christian Tauscher, 2012-07-20 18:54
mail-html.jpg (71.5 KB) mail-html.jpg Christian Tauscher, 2012-07-20 18:54
mail-txt.jpg (13.8 KB) mail-txt.jpg Christian Tauscher, 2012-07-20 18:54

Related issues

Related to TYPO3 Core - Bug #37349: Layout change modifies email outputClosed2012-05-21

Actions
Related to TYPO3 Core - Bug #32463: New Form ext throws error on missing wrapsClosed2011-12-12

Actions
Related to TYPO3 Core - Bug #31951: Own checkbox layout breaks HTML mailClosed2011-11-20

Actions
Related to TYPO3 Core - Bug #58598: tx_form breaks on custom labelClosed2014-05-07

Actions
#1

Updated by Christian Tauscher almost 10 years ago

  • % Done changed from 0 to 100

This is no Bug.
Behaves as expected.

I forgott that I have set

tt_content.mailform.20.layout {
checkbox = <input /> <label />
}

To force a different rendering (changed order input/label).
This forces wrong rendering in all views :-(

Christian.

#2

Updated by Ernesto Baschny almost 10 years ago

  • Status changed from New to Needs Feedback

Christian, so you are implying that this is not a bug? Maybe perhaps some feature that you might be missing?

Please specify if we can close this issue. Else you need to rephrase your question or request more precisely.

Thanks for your help!

#3

Updated by Franz Koch almost 10 years ago

I'd say it's a bug. And the bug itself is that the extension is using the FE rendering template also for the mail rendering. I also had this issue when I customized the form layout via TS (as far as it's possible with this limited templating "engine"). The only way to fix it for me was to XCLASS the form extension (class tx_form_View_Mail_Html) and overwrite the typoScript configuration passed to the constructor with email specific TS (if defined). Here is what I did in my XCLASS.

public function __construct(tx_form_Domain_Model_Form $model, array $typoscript) {
    // because the TypoScript Factory is singleton it currently holds the TS layout definitions
    // for the HTML form and not for mail output. Let's override this.
    $TsFactory = t3lib_div::makeInstance('tx_form_Domain_Factory_Typoscript'); // singleton
    if (isset($typoscript['email.']['html.']['layout.']) && count($typoscript['email.']['html.']['layout.'])) {
        $typoscript['layout.'] = $typoscript['email.']['html.']['layout.'];
    } else {
        $typoscript['layout.'] = array( 'foo' => 'bar'); // must not to be empty in order to overwrite the current settings, any values will work
    }
    $TsFactory->setLayoutHandler($typoscript);

    return parent::__construct($model, $typoscript);
}

Same happens for the confirmation view btw - but haven't figured out how to fix it there yet :(

#4

Updated by Ernesto Baschny almost 10 years ago

I've added Patrick to the "watchers" list, maybe he could give us some insight and feedback on what he thinks of it.

Thanks for your report and your additional input, Franz!

#5

Updated by Christian Tauscher almost 10 years ago

Christian, so you are implying that this is not a bug? Maybe perhaps some feature that you might be missing?

Yes my particular issue was not a bug, but franz pointed out that there is a bug, since mailing and FE Rendering uses the same setup.

So the subject sould be changed to something like. "BE/FE rendering and mail rendering uses same setup" or even Better new bugreport should be created (Franz?).

Thanks for your patience and your help,

Christian.

#6

Updated by Patrick Broens about 9 years ago

  • Status changed from Needs Feedback to Accepted
  • Assignee set to Patrick Broens
#7

Updated by Gernot Ploiner almost 9 years ago

I can confirm this Bug in TYPO3 6.1.1.

Use my TypoScript and send a mail - then you get an unreadable HTML mail with a HTML-form instead of the Text. I use Thunderbird. Thank you Christian for the hint to use the text-only-view in Thunderbird. This is a workaround, but i have to enable and disable it for reading each mail, because this is a global setting for all mails in Thunderbird.

The line 'label' must be disabled, because this shows an 'Uncaught TYPO3 Exception' after sending:

Uncaught TYPO3 Exception
#1: PHP Catchable Fatal Error: Argument 3 passed to TYPO3\CMS\Form\View\Mail\Html\Element\AbstractElementView::replaceNodeWithFragment() must be an instance of DOMNode, null given, called in /html/typo3/typo3_src-6.1.1/typo3/sysext/form/Classes/View/Mail/Html/Element/AbstractElementView.php on line 111 and defined in /html/typo3/typo3_src-6.1.1/typo3/sysext/form/Classes/View/Mail/Html/Element/AbstractElementView.php line 228

My TypoScript:

tt_content.mailform.20 {
stdWrap.wrap >
layout {
containerWrap = <div class="csc-form-containerwrap"><elements /></div>
elementWrap = <div class="csc-form-elementwrap"><element /></div>
#label = <label><labelvalue /><mandatory /><error /></label>
mandatory = <em><mandatoryvalue /></em>
error = <strong><errorvalue /></strong>
legend = <legend><legendvalue /></legend>
button = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
content = <div class="csc-form-contentwrap"><content /></div>
fieldset = <fieldset><legend /><containerWrap /></fieldset>
fileupload = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
form = <form class="csc-form-formwrap"><containerWrap /></form>
hidden = <input />
imagebutton = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
optgroup = <optgroup><elements /></optgroup>
option = <option />
password = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
radio = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
reset = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
submit = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
checkbox = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
select = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><select><elements /></select></div>
textarea = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><textarea /></div>
textline = <div class="csc-form-labelwrap"><label /></div><div class="csc-form-fieldwrap"><input /></div>
}
}

#8

Updated by Felix Nagel almost 8 years ago

This issue to be fixed in #31951.

#9

Updated by Frans Saris over 7 years ago

  • Status changed from Accepted to Resolved
  • Is Regression set to No
#10

Updated by Bjoern Jacob almost 7 years ago

  • Category changed from Form Framework to 1602
#11

Updated by Bjoern Jacob about 6 years ago

  • Category changed from 1602 to Form Framework
#12

Updated by Benni Mack over 3 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF