You are here

function media_browser_plus_uuid_entity_features_export_render_alter in Media Browser Plus 7.3

Implements hook_uuid_entity_features_export_render_alter().

File

./media_browser_plus.module, line 933
Media Browser Plus - enhanced file management functions.

Code

function media_browser_plus_uuid_entity_features_export_render_alter($entity_type, &$export, &$entity) {
  $root_folder = media_browser_plus_get_media_root_folder();

  // Take all reference fields in account.
  $fields = uuid_features_get_field_items_iterator($export, $entity_type, 'taxonomy_term_reference');
  foreach ($fields as $field_name => $field) {
    if (isset($export->{$field_name})) {
      foreach ($field as $language => $items) {
        foreach ($items as $delta => $item) {
          if ($export->{$field_name}[$language][$delta]['tid'] == $root_folder->tid || $export->{$field_name}[$language][$delta]['tid'] == $root_folder->uuid) {
            $export->{$field_name}[$language][$delta]['tid'] = 'mbp_uuid_features_root_folder';
            $export->{$field_name}[$language][$delta]['uuid'] = 'mbp_uuid_features_root_folder';
            $export->mbp_uuid_features_root_folder = TRUE;
          }
        }
      }
    }
  }
  $fields = uuid_features_get_field_items_iterator($export, $entity_type, 'entityreference');
  foreach ($fields as $field_name => $field) {
    if (isset($export->{$field_name})) {
      foreach ($field as $language => $items) {
        foreach ($items as $delta => $item) {
          if (in_array($root_folder->tid, $export->{$field_name}[$language][$delta]) || in_array($root_folder->uuid, $export->{$field_name}[$language][$delta])) {
            $export->{$field_name}[$language][$delta]['target_id'] = 'mbp_uuid_features_root_folder';
            $export->{$field_name}[$language][$delta]['uuid'] = 'mbp_uuid_features_root_folder';
            $export->mbp_uuid_features_root_folder = TRUE;
          }
        }
      }
    }
  }

  // Ensure exported folders also have the generic media root set.
  if ($entity_type == 'taxonomy_term' && $export->vocabulary_machine_name == 'media_folders' && !empty($export->parent)) {
    $root_parents = array_keys($export->parent, $root_folder->uuid);
    foreach ($root_parents as $key) {
      $export->parent[$key] = 'mbp_uuid_features_root_folder';
    }
    if ($export->uuid == $root_folder->uuid) {
      $export->uuid = 'mbp_uuid_features_root_folder';
    }
  }
}