27. 08. 2015, 08:53

Hallo,

Ich möchte innerhalb eines Fluid Template (Formular) Elemente nachladen (Zb. bei 1:n Relationen ein neues Object zum ObjectStorage hinzufügen). Ich rufe dafür mit dem mehrfach beschriebenen AjaxDispatcher die NewAction auf im entsprechenden Controller auf. Funktioniert auch soweit. Das Problem habe ich beim Absenden des neu generierten Formulars.

  • Mit dem AjaxDispatcher funktioniert dies nicht, da die InternalArguments (TrustedProperties) nicht mitgegben werden
  • bei einem direkten Aufruf der CreateAction wird das gesamte Layout zurück geworfen und nicht nur das Partial
  • Beim Versuch die StandaloneView renderPartial()/renderSector() zu verwenden gibt es einen Error im CORE ( https://forge.typo3.org/issues/54509)

Hat jemand eine elegante Extension in der dies elegant gelöst wird?

P.S.: Der Ansatz über die StandaloneView ergibt für mich am meisten Sinn:

  1. $extbaseFrameworkConfiguration = $this->configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK);
  2.  
  3.  
  4. $this->view = $this->$objectManager->get('PCON\\Congress\\Utilities\\StandaloneViewMultiplePaths', $this->configurationManager->getContentObject());
  5.  
  6. $templateRootPath = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($extbaseFrameworkConfiguration['view']['templateRootPath']);
  7. $this->view->setLayoutRootPath(\TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($extbaseFrameworkConfiguration['view']['layoutRootPath']));
  8. $this->view->setPartialRootPath(\TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($extbaseFrameworkConfiguration['view']['partialRootPath']));
  9. $this->view->setTemplatePathAndFilename($templateRootPath . 'Authors/NewAjax.html');
  10. $this->view->setFormat("html");
  11. // Not working CORE Error https://forge.typo3.org/issues/54509
  12. $this->view->renderSection('main',array());


Im oben genannten Bsp. ist der renderingContext immer NULL, daher auch der ERROR.
Aber wie setzte ich bei einem AJAX Call folgendes:
$this->getCurrentRenderingContext(); //<-- immer NULL