$this->request
недоступно в пользовательском режиме. Как говорит Гаутамсинь Мори, вы должны использовать \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('email');
, однако я не уверен, что вы понимаете, что делает f:cObject
ViewHelper.
С этим кодом ваш HTML перед отправкой формы будет:
<form action="<div></div>" method="post">
<input type="text" name="email" placeholder="Ihre E-Mail-Adresse">
<input type="submit" name="send" value="Jetzt registrieren" class="submit" />
</form>
Ваш HTML после отправки будет:
<form action="<div>filledInEmail</div>" method="post">
<input type="text" name="email" placeholder="Ihre E-Mail-Adresse">
<input type="submit" name="send" value="Jetzt registrieren" class="submit" />
</form>
Я бы порекомендовал сделать для этого расширение, но если вы действительно хотите / должны сделать это так, я думаю, что вы ищете что-то вроде:
<f:cObject typoscriptObjectPath="lib.mynlreg" />
<form action="{uri.page(addQueryString: 1)}" method="post">
<input type="text" name="email" placeholder="Ihre E-Mail-Adresse">
<input type="submit" name="send" value="Jetzt registrieren" class="submit" />
</form>
Это создаст форму с действием для текущей страницы (включая любую строку запроса). Затем вам нужно изменить userFunc, чтобы он возвращал пустую строку, если форма не была отправлена. Что-то вроде:
class myClass {
public function myFunction($content, $conf) {
$formEmail = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('email');
if (empty($formEmail)) {
return '';
}
return '<div>' . $formEmail . '</div>';
}
}