- Affected Version
- WoltLab Suite 5.4
- Affected App
- WoltLab Suite Core
WSC 5.4.10
PHP: MyForm.class.php
/**
* @inheritDoc
*/
protected function createForm() {
parent::createForm();
$this->form->appendChildren([
FormContainer::create('foo')
->appendChildren([
TitleFormField::create()
->label('foo')
->maximumLength(255)
->i18n()
->languageItemPattern('foo.bar.baz\d+')
->required(),
]),
]);
/** @var TitleFormField|TI18nFormField $titleField */
$titleField = $this->form->getNodeById('title');
$titleField->value('bar');
}
Display More
Smarty: __textFormField.tpl (Debug)
{$field->getValue()|var_dump}<br>
{$field->isI18n()|var_dump}<br>
{$field->hasI18nValues()|var_dump}<br>
{$field->getValue()|var_dump}<br>
{$field->getSaveValue()|var_dump}<br>
Smarty: myForm.tpl
{include file='header' pageTitle='foo.bar.baz'}
{@$form->getHtml()}
{include file='footer'}
Dumpe ich $titleField->getValue() direkt nach dem ->value()-Call, erhalte ich das gewünschte Resultat.
Das Feld ist bei der Anzeige im Template aber wieder leer:
Zum Testen habe ich alles aus dem Formular entfernt außer das eine Feld und die Referenzen auf die Klassen, die die FormBuilder-API braucht um irgendwelche Aufrufe von mir auszuschließen, die warum auch immer dazu führen könnten, dass der I18nHandler oder die Werte darin zurückgesetzt werden.