featuresExportPipe()); } $export['dependencies'][] = 'synonyms'; $export['dependencies'] = drupal_map_assoc(array_unique($export['dependencies'])); return $pipe; } /** * Implements hook_features_export_options(). */ function synonyms_features_export_options() { $options = array(); foreach (synonyms_behavior_get_all_enabled() as $behavior_implementation) { $key = array( $behavior_implementation['entity_type'], $behavior_implementation['bundle'], $behavior_implementation['provider'], $behavior_implementation['behavior'], ); if ($behavior_implementation['entity_type'] == $behavior_implementation['bundle']) { $label = t('@entity_type @provider @behavior', array( '@entity_type' => $behavior_implementation['entity_type'], '@provider' => $behavior_implementation['label'], '@behavior' => $behavior_implementation['behavior'], )); } else { $label = t('@entity_type @bundle @provider @behavior', array( '@entity_type' => $behavior_implementation['entity_type'], '@bundle' => $behavior_implementation['bundle'], '@provider' => $behavior_implementation['label'], '@behavior' => $behavior_implementation['behavior'], )); } $options[implode(':', $key)] = $label; } return $options; } /** * Implements hook_features_export_render(). */ function synonyms_features_export_render($module_name, $data, $export = NULL) { $code = array(); $code[] = ' $synonyms = array();'; foreach ($data as $name) { list($entity_type, $bundle, $provider, $behavior) = explode(':', $name); $behavior_implementation = synonyms_behavior_get_all_enabled($entity_type, $bundle, $provider, $behavior); $behavior_implementation = reset($behavior_implementation); if (is_array($behavior_implementation)) { $behavior_implementation = array_intersect_key($behavior_implementation, drupal_map_assoc(array( 'entity_type', 'bundle', 'provider', 'settings', 'behavior', ))); } $code[] = " \$synonyms['{$name}'] = " . features_var_export($behavior_implementation, ' ') .";"; } $code[] = " return \$synonyms;"; $code = implode("\n", $code); return array('default_synonyms' => $code); } /** * Implements hook_features_revert(). */ function synonyms_features_revert($module_name) { $synonyms = module_invoke($module_name, 'default_synonyms'); foreach ($synonyms as $v) { synonyms_behavior_implementation_save($v); } } /** * Implements hook_features_rebuild(). */ function synonyms_features_rebuild($module_name) { $synonyms = module_invoke($module_name, 'default_synonyms'); foreach ($synonyms as $v) { synonyms_behavior_implementation_save($v); } }