$config) { $dependencies[$config_id] = $module; } } // Add features and dependencies. foreach ($data as $config_id) { $export['features']['hierarchical_select'][$config_id] = $config_id; if (isset($dependencies[$config_id])) { $module = $dependencies[$config_id]; $export['dependencies'][$module] = $module; } } return array(); } /** * Implements hook_features_export_options(). */ function hierarchical_select_features_export_options() { // Retrieve all information items. $info_items = array(); foreach (module_implements('hierarchical_select_config_info') as $module) { $info_items = array_merge_recursive($info_items, module_invoke($module, 'hierarchical_select_config_info')); } // Process the retrieved information into options. $options = array(); foreach ($info_items as $id => $item) { $config_id = $item['config_id']; $options[$config_id] = $item['hierarchy type'] . ': ' . $item['hierarchy'] . ' - ' . $item['context type'] . (!empty($item['context']) ? ': ' . $item['context'] : ''); } return $options; } /** * Implements hook_features_export_render(). */ function hierarchical_select_features_export_render($module, $data) { module_load_include('inc', 'hierarchical_select', 'includes/common'); module_load_include('inc', 'hierarchical_select', 'hierarchical_select.admin'); $code = array(); $code[] = '$configs = array();'; foreach ($data as $config_id) { $config = hierarchical_select_common_config_get($config_id); $config['config_id'] = $config_id; $code[] = _hierarchical_select_create_export_code($config); $code[] = "\$configs['{$config_id}'] = \$config;"; } $code[] = "return \$configs;"; $code = implode("\n", $code); return array('hierarchical_select_default_configs' => $code); } /** * Implements hook_features_revert(). */ function hierarchical_select_features_revert($module) { hierarchical_select_features_rebuild($module); } /** * Implements hook_features_rebuild(). */ function hierarchical_select_features_rebuild($module) { module_load_include('inc', 'hierarchical_select', 'includes/common'); $configs = features_get_default('hierarchical_select', $module); if (!empty($configs)) { // Apply the configuration. require_once(drupal_get_path('module', 'hierarchical_select') .'/includes/common.inc'); foreach ($configs as $config_id => $config) { hierarchical_select_common_config_set($config_id, $config); } } }