function _cms_content_sync_set_entity_push_subform in CMS Content Sync 2.1.x
Same name and namespace in other branches
- 8 cms_content_sync.module \_cms_content_sync_set_entity_push_subform()
- 2.0.x cms_content_sync.module \_cms_content_sync_set_entity_push_subform()
Parameters
\Drupal\Core\Entity\FieldableEntityInterface $entity:
array $form:
\Drupal\Core\Form\FormStateInterface $form_state:
\Drupal\Core\Field\FieldDefinitionInterface[] $fields:
array $tree_position:
1 call to _cms_content_sync_set_entity_push_subform()
- _cms_content_sync_set_entity_push_pools in ./
cms_content_sync.module - Entity status update.
File
- ./
cms_content_sync.module, line 1039 - Module file for cms_content_sync.
Code
function _cms_content_sync_set_entity_push_subform(FieldableEntityInterface $entity, array $form, FormStateInterface $form_state, array $fields, $tree_position = []) {
$entityFieldManager = Drupal::service('entity_field.manager');
foreach ($fields as $name => $definition) {
if ($definition
->getType() == 'entity_reference_revisions') {
$subform =& $form[$name]['widget'];
$count = $subform['#max_delta'];
for ($i = 0; $i <= $count; $i++) {
$refflow = $form_state
->getValue(array_merge($tree_position, [
$name,
$i,
'subform',
'cms_content_sync_group',
'cms_content_sync_flow',
]));
$refvalues = $form_state
->getValue(array_merge($tree_position, [
$name,
$i,
'subform',
'cms_content_sync_group',
'cms_content_sync_pool',
]));
$refuuid = $form_state
->getValue(array_merge($tree_position, [
$name,
$i,
'subform',
'cms_content_sync_group',
'cms_content_sync_uuid',
]));
if (!empty($refflow) && !empty($refvalues)) {
EntityStatus::accessTemporaryPushToPoolInfoForField($entity
->getEntityTypeId(), $entity
->uuid(), $name, $i, $tree_position, $refflow, $refvalues, $refuuid);
}
if (!empty($subform[$i]['subform'])) {
$entity_type = $definition
->getSetting('target_type');
$bundle = $subform[$i]['#paragraph_type'];
/** @var \Drupal\Core\Field\FieldDefinitionInterface[] $fields */
$fields = $entityFieldManager
->getFieldDefinitions($entity_type, $bundle);
_cms_content_sync_set_entity_push_subform($entity, $subform[$i]['subform'], $form_state, $fields, array_merge($tree_position, [
$name,
$i,
'subform',
]));
}
}
}
}
}