Автономная форма просмотра Typo3

У меня возникла проблема с автономным представлением в extbase.

Проблема в том, что когда представление генерируется с автономным представлением, формы неверны. Если я использую генератор по умолчанию, форма выглядит так:

<form role="form" name="user" id="validateEmailForm" action="index.php?id=2&amp;tx_registration_userregistration%5Buser%5D=&amp;tx_registration_userregistration%5Baction%5D=validateEmail&amp;tx_registration_userregistration%5Bcontroller%5D=User&amp;cHash=b608ba14aff3a034be5e58a0402b96c0" method="post">
    <div>
        <input name="tx_registration_userregistration[__referrer][@extension]" value="Registration" type="hidden">
        <input name="tx_registration_userregistration[__referrer][@vendor]" value="Whmcs" type="hidden">
        <input name="tx_registration_userregistration[__referrer][@controller]" value="User" type="hidden">
        <input name="tx_registration_userregistration[__referrer][@action]" value="test" type="hidden">
        <input name="tx_registration_userregistration[__referrer][arguments]" value="YToyOntzOjY6ImFjdGlvbiI7czo0OiJ0ZXN0IjtzOjEwOiJjb250cm9sbGVyIjtzOjQ6IlVzZXIiO30=0fea5b97636b178cebbb4da9ed487d5e77f205ae" type="hidden">
        <input name="tx_registration_userregistration[__trustedProperties]" value="a:1:{s:4:&quot;user&quot;;a:2:{s:12:&quot;eMailAddress&quot;;i:1;s:13:&quot;eMailVerified&quot;;i:1;}}bbc1e3377150a6976a7dbec4197d034951d29ef0" type="hidden">
    </div>

    <div class="form-group">
        <label>E-Mail Adresse</label>
        <input class="form-control" name="tx_registration_userregistration[user][eMailAddress]" type="text">
    </div>

    <div class="form-group">
        <label>Verifizierungs Code</label>
        <input class="form-control" name="tx_registration_userregistration[user][eMailVerified]" type="text">
    </div>

    <button type="button" class="btn btn-primary" onclick="validateEmailForm();">Bestätigen</button>
    <input class="small button" name="" value="Bestaetigen!" type="submit">
    <a class="small button" href="index.php?id=2&amp;tx_registration_userregistration%5Baction%5D=resendValidationCodeForm&amp;tx_registration_userregistration%5Bcontroller%5D=User&amp;cHash=89f3a9885d968a1cc58b78afeb462156">Code erneut anfordern</a>
</form>

Если я использую автономный генератор представлений, форма выглядит так:

<form role="form" name="user" id="validateEmailForm" action="index.php?id=2&amp;tx_registration_%5Buser%5D=&amp;tx_registration_%5Baction%5D=validateEmail&amp;tx_registration_%5Bcontroller%5D=Standard&amp;cHash=1342195ecb09bfaa3eaaed53b5b6ca94" method="post">
    <div>
        <input name="__referrer[@extension]" value="Registration" type="hidden">
        <input name="__referrer[@controller]" value="Standard" type="hidden">
        <input name="__referrer[@action]" value="index" type="hidden">
        <input name="__referrer[arguments]" value="YTowOnt932be2d0043f353815075d39b8a8dcae00ef10469" type="hidden">
        <input name="__trustedProperties" value="a:2:{s:4:&quot;user&quot;;a:2:{s:12:&quot;eMailAddress&quot;;i:1;s:13:&quot;eMailVerified&quot;;i:1;}i:0;i:1;}34e733be32be90328d34d6e089e19ec1e4f4a54a" type="hidden">
    </div>

    <div class="form-group">
        <label>E-Mail Adresse</label>
        <input class="form-control" name="user[eMailAddress]" type="text">
    </div>

    <div class="form-group">
        <label>Verifizierungs Code</label>
        <input class="form-control" name="user[eMailVerified]" type="text">
    </div>

    <button type="button" class="btn btn-primary" onclick="validateEmailForm();">Bestätigen</button>
    <input class="small button" name="" value="Bestaetigen!" type="submit">
    <a class="small button" href="index.php?id=2&amp;tx_registration_%5Baction%5D=resendValidationCodeForm&amp;tx_registration_%5Bcontroller%5D=Standard&amp;cHash=0d47678ecec458d7283b92e15bd9d1d4">Code erneut anfordern</a>
</form>

Как видите, например, во входных элементах в названии тег "tx_registration_userregistration" отсутствует, и контроллер не может с этим работать.

Я генерирую код с помощью автономного генератора представлений следующим образом:

$View = $this->objectManager->get('TYPO3\\CMS\\Fluid\\View\\StandaloneView');   
$extbaseFrameworkConfiguration = $this->configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK);
$templateRootPath = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($extbaseFrameworkConfiguration['view']['templateRootPath']);
$templatePathAndFilename = $templateRootPath . 'tabControl/' . $templateName . '.html';
$View->setTemplatePathAndFilename($templatePathAndFilename);
$View->assignMultiple($variables);
$renderedView = $View->render();

return $renderedView;

Кто-нибудь знает проблему и может знать, как я могу это исправить?


person Marcel    schedule 13.01.2015    source источник


Ответы (1)


Представление действия использует контекст контроллера, но автономное представление по умолчанию не имеет никакого контекста. Вам нужно передать его самостоятельно, т.е. сразу после создания объекта представления:

$View = $this->objectManager->get('TYPO3\\CMS\\Fluid\\View\\StandaloneView'); 
$View->setControllerContext($this->controllerContext);
person biesior    schedule 13.01.2015