2 namespace TYPO3\CMS\Backend\Form\Container;
37 $table = $this->data[
'tableName'];
38 $row = $this->data[
'databaseRow'];
39 $fieldName = $this->data[
'fieldName'];
40 $flexFormFormPrefix = $this->data[
'flexFormFormPrefix'];
41 $flexFormContainerElementCollapsed = $this->data[
'flexFormContainerElementCollapsed'];
42 $flexFormContainerTitle = $this->data[
'flexFormContainerTitle'];
43 $flexFormFieldIdentifierPrefix = $this->data[
'flexFormFieldIdentifierPrefix'];
44 $parameterArray = $this->data[
'parameterArray'];
47 $flexFormFieldIdentifierPrefix = $flexFormFieldIdentifierPrefix .
'-' . GeneralUtility::shortMd5(uniqid(
'id',
true));
50 $toggleIcons =
'<span class="t3js-flex-control-toggle-icon-open" style="' . ($flexFormContainerElementCollapsed ?
'display: none;' :
'') .
'">'
51 . $iconFactory->getIcon(
'actions-view-list-collapse',
Icon::SIZE_SMALL)->render()
53 $toggleIcons .=
'<span class="t3js-flex-control-toggle-icon-close" style="' . ($flexFormContainerElementCollapsed ?
'' :
'display: none;') .
'">'
54 . $iconFactory->getIcon(
'actions-view-list-expand',
Icon::SIZE_SMALL)->render()
57 $flexFormContainerCounter = $this->data[
'flexFormContainerCounter'];
58 $actionFieldName =
'_ACTION_FLEX_FORM'
59 . $parameterArray[
'itemFormElName']
60 . $this->data[
'flexFormFormPrefix']
62 .
'[' . $flexFormContainerCounter .
']';
63 $toggleFieldName =
'data[' . $table .
'][' . $row[
'uid'] .
'][' . $fieldName .
']'
65 .
'[' . $flexFormContainerCounter .
']'
68 $moveAndDeleteContent = array();
70 if ($userHasAccessToDefaultLanguage) {
71 $moveAndDeleteContent[] =
'<span class="btn btn-default t3js-sortable-handle"><span title="' . $this->
getLanguageService()->sL(
'LLL:EXT:lang/locallang_core.xlf:sortable.dragmove',
true) .
'">' . $iconFactory->getIcon(
'actions-move-move',
Icon::SIZE_SMALL)->render() .
'</span></span>';
72 $moveAndDeleteContent[] =
'<span class="btn btn-default t3js-delete"><span title="' . $this->
getLanguageService()->sL(
'LLL:EXT:lang/locallang_common.xlf:delete',
true) .
'">' . $iconFactory->getIcon(
'actions-edit-delete',
Icon::SIZE_SMALL)->render() .
'</span></span>';
76 $options[
'flexFormFieldIdentifierPrefix'] = $flexFormFieldIdentifierPrefix;
78 $options[
'flexFormFormPrefix'] = $flexFormFormPrefix .
'[' . $flexFormContainerCounter .
'][' . $this->data[
'flexFormContainerName'] .
'][el]';
79 $options[
'renderType'] =
'flexFormElementContainer';
80 $containerContentResult = $this->nodeFactory->create($options)->render();
83 $html[] =
'<div id="' . $flexFormFieldIdentifierPrefix .
'" class="t3-form-field-container-flexsections t3-flex-section t3js-flex-section">';
84 $html[] =
'<input class="t3-flex-control t3js-flex-control-action" type="hidden" name="' . htmlspecialchars($actionFieldName) .
'" value="" />';
85 $html[] =
'<div class="panel panel-default panel-condensed">';
86 $html[] =
'<div class="panel-heading t3js-flex-section-header" data-toggle="formengine-flex">';
87 $html[] =
'<div class="form-irre-header">';
88 $html[] =
'<div class="form-irre-header-cell form-irre-header-icon">';
89 $html[] = $toggleIcons;
91 $html[] =
'<div class="form-irre-header-cell form-irre-header-body">';
92 $html[] =
'<span class="t3js-record-title">' . $flexFormContainerTitle .
'</span>';
94 $html[] =
'<div class="form-irre-header-cell form-irre-header-control">';
95 $html[] =
'<div class="btn-group btn-group-sm">';
96 $html[] = implode(LF, $moveAndDeleteContent);
101 $html[] =
'<div class="panel-collapse t3js-flex-section-content"' . ($flexFormContainerElementCollapsed ?
' style="display:none;"' :
'') .
'>';
102 $html[] = $containerContentResult[
'html'];
105 $html[] =
'class="t3-flex-control t3js-flex-control-toggle"';
106 $html[] =
'id="' . $flexFormFieldIdentifierPrefix .
'-toggleClosed"';
107 $html[] =
'type="hidden"';
108 $html[] =
'name="' . htmlspecialchars($toggleFieldName) .
'"';
109 $html[] =
'value="' . ($flexFormContainerElementCollapsed ?
'1' :
'0') .
'"';
114 $containerContentResult[
'html'] =
'';
116 $resultArray[
'html'] = implode(LF, $html);