Skip to content

Commit

Permalink
Use legacy mode for repeater injected fields
Browse files Browse the repository at this point in the history
  • Loading branch information
daftspunk committed Sep 18, 2021
1 parent 2f32ff0 commit 878fa74
Showing 1 changed file with 27 additions and 9 deletions.
36 changes: 27 additions & 9 deletions controllers/Index.php
Original file line number Diff line number Diff line change
Expand Up @@ -614,28 +614,46 @@ protected function checkContentField($formWidget, $page)
}
}

/**
* modLegacyModeFields will ensure specific field types use legacy mode
*/
protected function modLegacyModeFields($fields)
{
foreach ($fields as &$fieldConfig) {
if (in_array($fieldConfig['type'], ['richeditor', 'codeeditor'])) {
$fieldConfig['legacyMode'] = true;
}
}

return $fields;
}

/**
* addPageSyntaxFields adds syntax defined fields to the form
*/
protected function addPageSyntaxFields($formWidget, $page)
{
$fields = $page->listLayoutSyntaxFields();
$fields = $this->modLegacyModeFields($fields);

foreach ($fields as $fieldCode => $fieldConfig) {
if ($fieldConfig['type'] == 'fileupload') continue;

if (in_array($fieldConfig['type'], ['richeditor', 'codeeditor'])) {
$fieldConfig['legacyMode'] = true;
if ($fieldConfig['type'] === 'fileupload') {
continue;
}

if ($fieldConfig['type'] == 'repeater') {
if ($fieldConfig['type'] === 'repeater') {
if (empty($fieldConfig['form']) || !is_string($fieldConfig['form'])) {
$fieldConfig['form']['fields'] = array_get($fieldConfig, 'fields', []);
$repeaterFields = array_get($fieldConfig, 'fields', []);
$repeaterFields = $this->modLegacyModeFields($repeaterFields);
$fieldConfig['form']['fields'] = $repeaterFields;
unset($fieldConfig['fields']);
}
}

/*
* Custom fields placement
*/
$placement = (!empty($fieldConfig['placement']) ? $fieldConfig['placement'] : NULL);
* Custom fields placement
*/
$placement = !empty($fieldConfig['placement']) ? $fieldConfig['placement'] : null;

switch ($placement) {
case 'primary':
Expand Down

0 comments on commit 878fa74

Please sign in to comment.