Skip to content

Update example PHP file for InputTextElement #5624

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,24 @@

use TYPO3\CMS\Backend\Form\Element\AbstractFormElement;

final class InputTextElement extends AbstractFormElement
class InputTextElement extends AbstractFormElement
{
/**
* Default field information enabled for this element.
*
* @var array
*/
protected $defaultFieldInformation = [
'tcaDescription' => [
'renderType' => 'tcaDescription',
],
];

/**
* Default field wizards enabled for this element.
*
* @var array
*/
protected $defaultFieldWizard = [
'localizationStateSelector' => [
'renderType' => 'localizationStateSelector',
Expand All @@ -30,23 +46,51 @@ public function render(): array
{
$resultArray = $this->initializeResultArray();

$fieldInformationResult = $this->renderFieldInformation();
$fieldInformationHtml = $fieldInformationResult['html'];

$fieldControlResult = $this->renderFieldControl();
$fieldControlHtml = $fieldControlResult['html'];

$fieldWizardResult = $this->renderFieldWizard();
$fieldWizardHtml = $fieldWizardResult['html'];

$resultArray = $this->mergeChildReturnIntoExistingResult($resultArray, $fieldWizardResult, false);

$mainFieldHtml = [];
$mainFieldHtml[] = '<div class="form-control-wrap">';
$mainFieldHtml[] = '<div class="form-wizards-wrap">';
$mainFieldHtml[] = '<div class="form-wizards-element">';
// Main HTML of element done here ...
$mainFieldHtml[] = '</div>';
$mainFieldHtml[] = '<div class="form-wizards-items-bottom">';
$mainFieldHtml[] = $fieldWizardHtml;
$mainFieldHtml[] = '<div class="form-wizards-item-element">';
$mainFieldHtml[] = '<input type="text"/>';
$mainFieldHtml[] = '</div>';

// Add part for FieldControl between the label and the form element
if (!empty($fieldControlHtml)) {
$mainFieldHtml[] = '<div class="form-wizards-item-aside form-wizards-item-aside--field-control">';
$mainFieldHtml[] = '<div class="btn-group">';
$mainFieldHtml[] = $fieldControlHtml;
$mainFieldHtml[] = '</div>';
$mainFieldHtml[] = '</div>';
}

// Add part for FieldWizards to the right of element node
if (!empty($fieldWizardHtml)) {
$mainFieldHtml[] = '<div class="form-wizards-item-bottom">';
$mainFieldHtml[] = $fieldWizardHtml;
$mainFieldHtml[] = '</div>';
}

$mainFieldHtml[] = '</div>';
$mainFieldHtml[] = '</div>';

$resultArray['html'] = implode(LF, $mainFieldHtml);
$fullElement = implode(LF, $mainFieldHtml);

// Add part for FieldInformation to bottom of element node
$resultArray['html'] = '
<div class="formengine-field-item t3js-formengine-field-item">
' . $fieldInformationHtml . $fullElement . '
</div>';

return $resultArray;
}
}