You are here

function entityreference_relation_migrate_type_target_validate in Relation 8

Same name and namespace in other branches
  1. 8.2 relation_migrate/relation_migrate.modules.inc \entityreference_relation_migrate_type_target_validate()
  2. 7 relation_migrate/relation_migrate.modules.inc \entityreference_relation_migrate_type_target_validate()

Implements hook_relation_migrate_type_target_validate().

File

relation_migrate/relation_migrate.modules.inc, line 70
s Hook implementations in behalf of core and supported contrib modules.

Code

function entityreference_relation_migrate_type_target_validate($element, $form_state, $form) {
  $fields = array_filter($form_state['input']['relation_migrate_entityreference_fields']);
  $relation_type = RelationType::load($form_state['input']['relation_migrate_entityreference_relation_type']);
  $supported_bundles = $relation_type->directional ? $relation_type->target_bundles : $relation_type->source_bundles;
  $return = TRUE;
  foreach ($fields as $field) {
    $field_def = field_info_field($field);
    $entity_type = $field_def['settings']['target_type'];
    $bundles = array_filter($field_def['settings']['handler_settings']['target_bundles']);
    $bundles_allowed = TRUE;
    foreach ($bundles as $bundle) {
      $bundles_allowed &= in_array($entity_type . ':' . $bundle, $supported_bundles);
    }
    $return &= in_array($entity_type . ':*', $supported_bundles) || $bundles_allowed;
  }
  return $return;
}