Пример #1
0
 /**
  * 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;
 }