2 declare(strict_types = 1);
40 'renderType' =>
'tcaDescription',
50 'localizationStateSelector' => [
51 'renderType' =>
'localizationStateSelector',
53 'otherLanguageContent' => [
54 'renderType' =>
'otherLanguageContent',
56 'localizationStateSelector'
59 'defaultLanguageDifferences' => [
60 'renderType' =>
'defaultLanguageDifferences',
62 'otherLanguageContent',
74 $this->iconRegistry = GeneralUtility::makeInstance(IconRegistry::class);
82 public function render(): array
88 if ($this->data[
'parameterArray'][
'fieldConf'][
'config'][
'readOnly']) {
92 $items = $this->data[
'parameterArray'][
'fieldConf'][
'config'][
'items'];
94 $numberOfItems = count($items);
95 if ($numberOfItems === 0) {
99 $formElementValue = (int)$this->data[
'parameterArray'][
'itemFormElValue'];
100 $cols = (int)$this->data[
'parameterArray'][
'fieldConf'][
'config'][
'cols'];
103 $elementHtml .=
'<div class="checkbox-row row">';
106 foreach ($items as $itemKey => $itemDefinition) {
107 $label = $itemDefinition[0];
109 '<div class="checkbox-column ' . $colClass .
'">'
113 if ($counter < $numberOfItems && !empty($colClear)) {
114 foreach ($colClear as $rowBreakAfter => $clearClass) {
115 if ($counter % $rowBreakAfter === 0) {
116 $elementHtml .=
'<div class="clearfix ' . $clearClass .
'"></div>';
121 $elementHtml .=
'</div>';
124 foreach ($items as $itemKey => $itemDefinition) {
125 $label = $itemDefinition[0];
126 $elementHtml .= $this->
renderSingleCheckboxElement($label, $counter, $formElementValue, $numberOfItems, $this->data[
'parameterArray'], $disabled);
131 $elementHtml .=
'<input type="hidden" name="' . htmlspecialchars($this->data[
'parameterArray'][
'itemFormElName']) .
'" value="' . htmlspecialchars((
string)$formElementValue) .
'" />';
135 $fieldInformationHtml = $fieldInformationResult[
'html'];
139 $fieldWizardHtml = $fieldWizardResult[
'html'];
143 $html[] =
'<div class="formengine-field-item t3js-formengine-field-item">';
144 $html[] = $fieldInformationHtml;
145 $html[] =
'<div class="form-wizards-wrap">';
146 $html[] =
'<div class="form-wizards-element">';
147 $html[] = $elementHtml;
149 if (!$disabled && !empty($fieldWizardHtml)) {
150 $html[] =
'<div class="form-wizards-items-bottom">';
151 $html[] = $fieldWizardHtml;
157 $resultArray[
'html'] = implode(LF, $html);
172 protected function renderSingleCheckboxElement($label, $itemCounter, $formElementValue, $numberOfItems, $additionalInformation, $disabled):
string
174 $config = $additionalInformation[
'fieldConf'][
'config'];
175 $inline = !empty($config[
'cols']) && $config[
'cols'] ===
'inline';
176 $invert = isset($config[
'items'][0][
'invertStateDisplay']) && $config[
'items'][0][
'invertStateDisplay'] ===
true;
178 $additionalInformation[
'itemFormElName'],
182 implode(
'', $additionalInformation[
'fieldChangeFunc'])
185 $checkboxId = $additionalInformation[
'itemFormElID'] .
'_' . $itemCounter . $uniqueId;
187 <div class="checkbox checkbox-type-toggle' . ($invert ?
' checkbox-invert' :
'') . ($inline ?
' checkbox-inline' :
'') . (!$disabled ?
'' :
' disabled') .
'">
188 <input type="checkbox"
189 class="checkbox-input"
191 data-formengine-input-name="' . htmlspecialchars($additionalInformation[
'itemFormElName']) .
'"
192 ' . $checkboxParameters .
'
193 ' . (!$disabled ?:
' disabled="disabled"') .
'
194 id="' . $checkboxId .
'" />
195 <label class="checkbox-label" for="' . $checkboxId .
'">
196 <span class="checkbox-label-text">' . $this->
appendValueToLabelInDebugMode(($label ? htmlspecialchars($label) :
' '), $formElementValue) .
'</span>