/** * Ask the layoutHandler to get the layout for this object * * @param string $type Layout type * @return string HTML string of the layout to use for this element */ public function getLayout($type) { /** @var $layoutHandler \TYPO3\CMS\Form\Layout */ $layoutHandler = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Form\\Layout'); switch ($type) { case 'element': $layoutDefault = $this->layout; $objectClass = get_class($this); $type = \TYPO3\CMS\Form\Utility\FormUtility::getInstance()->getLastPartOfClassName($this, TRUE); if (strstr($objectClass, '_Additional_')) { $additionalModel = $this->model->getAdditionalObjectByKey($type); $layoutOverride = $additionalModel->getLayout(); } else { $layoutOverride = $this->model->getLayout(); } $layout = $layoutHandler->getLayoutByObject($type, $layoutDefault, $layoutOverride); break; case 'elementWrap': $layoutDefault = $this->elementWrap; $elementWrap = $layoutHandler->getLayoutByObject($type, $layoutDefault, $layoutOverride); $layout = str_replace('<element />', $this->getLayout('element'), $elementWrap); break; case 'containerWrap': $layoutDefault = $this->containerWrap; $layout = $layoutHandler->getLayoutByObject($type, $layoutDefault, $layoutOverride); break; } return $layout; }