Esempio n. 1
0
 /**
  * Set the htmlAttributes and the additionalAttributes
  * Remap htmlAttributes to additionalAttributes if needed
  *
  * @param ElementBuilder $elementBuilder
  * @param Element $element
  * @return void
  */
 protected function setAttributes(ElementBuilder $elementBuilder, Element $element)
 {
     $htmlAttributes = $this->typoScriptRepository->getModelDefinedHtmlAttributes($element->getElementType());
     $elementBuilder->setHtmlAttributes($htmlAttributes);
     $elementBuilder->setHtmlAttributeWildcards();
     $elementBuilder->overlayUserdefinedHtmlAttributeValues();
     $elementBuilder->setNameAndId();
     $elementBuilder->overlayFixedHtmlAttributeValues();
     // remove all NULL values
     $htmlAttributes = array_filter($elementBuilder->getHtmlAttributes());
     $elementBuilder->setHtmlAttributes($htmlAttributes);
     $elementBuilder->moveHtmlAttributesToAdditionalArguments();
     $elementBuilder->setViewHelperDefaulArgumentsToAdditionalArguments();
     $elementBuilder->moveAllOtherUserdefinedPropertiesToAdditionalArguments();
     $htmlAttributes = $elementBuilder->getHtmlAttributes();
     $userConfiguredElementTypoScript = $elementBuilder->getUserConfiguredElementTypoScript();
     $additionalArguments = $elementBuilder->getAdditionalArguments();
     $element->setHtmlAttributes($htmlAttributes);
     $additionalArguments = $this->typoScriptService->convertTypoScriptArrayToPlainArray($additionalArguments);
     $additionalArguments['prefix'] = $this->configuration->getPrefix();
     $element->setAdditionalArguments($additionalArguments);
     $this->handleIncomingValues($element, $userConfiguredElementTypoScript);
     if ($element->getElementType() === 'FORM' && $this->getControllerAction() === 'show') {
         if (empty($element->getHtmlAttribute('action'))) {
             if ($element->getAdditionalArgument('confirmation') && (int) $element->getAdditionalArgument('confirmation') === 1) {
                 $element->setAdditionalArgument('action', 'confirmation');
             } else {
                 $element->setAdditionalArgument('action', 'process');
             }
         } else {
             $element->setAdditionalArgument('pageUid', $element->getHtmlAttribute('action'));
             $element->setAdditionalArgument('action', null);
         }
     }
     // needed if confirmation page is enabled
     if ($this->sessionUtility->getSessionData($element->getName()) && $element->getAdditionalArgument('uploadedFiles') === null) {
         $element->setAdditionalArgument('uploadedFiles', $this->sessionUtility->getSessionData($element->getName()));
     }
 }