You are here

function features_override_items_features_export in Features Override 7.2

Same name and namespace in other branches
  1. 6.2 features_override.features.inc \features_override_items_features_export()

Implements hook_features_export().

File

./features_override.features.inc, line 60

Code

function features_override_items_features_export($data, &$export, $module_name = '') {
  $pipe = array(
    'features_overrides' => array(),
  );
  $map = features_get_default_map('features_override_items');
  $map_overrides = features_get_default_map('features_overrides');
  static $options;
  if (!isset($options)) {
    $options = features_overrides_features_export_options();
  }
  foreach ($data as $identifier) {

    // If this override bundle is already provided by another module, remove the field
    // and add the other module as a dependency.
    if (isset($map[$identifier]) && $map[$identifier] != $module_name) {
      if (isset($export['features']['features_override_items'][$identifier])) {
        unset($export['features']['features_override_items'][$identifier]);
      }
      $module = $map[$identifier];
      $export['dependencies'][$module] = $module;
    }
    else {
      $export['features']['features_override_items'][$identifier] = $identifier;
      list($component, $element) = features_override_parse_identifier($identifier);

      // Add in all current overrides to import.
      foreach ($options as $option_key => $option_name) {
        list($options_component, $options_element, $options_keys) = features_override_parse_identifier($option_key);
        if ($options_element == $element && empty($map_overrides[$option_key])) {
          $pipe['features_overrides'][] = $option_key;
        }
      }

      // Add in dependency to module that defines this item.
      $component_map = features_get_default_map($component);
      if (!empty($component_map[$element])) {
        $export['dependencies'][$component_map[$element]] = $component_map[$element];
      }
    }
  }
  return $pipe;
}