| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | <?php/** * Implements hook_features_api(). */function features_features_api() {  return array(    'dependencies' => array(      'name' => 'Dependencies',      'feature_source' => TRUE,      'duplicates' => FEATURES_DUPLICATES_ALLOWED,    ),  );}/** * Implements hook_features_export_options(). */function dependencies_features_export_options() {  // Excluded modules.  $excluded = drupal_required_modules();  $options = array();  foreach (features_get_modules() as $module_name => $info) {    if (!in_array($module_name, $excluded) && $info->status && !empty($info->info)) {      $options[$module_name] = $info->info['name'];    }  }  return $options;}/** * Implements hook_features_export(). */function dependencies_features_export($data, &$export, $module_name = '') {  // Don't allow a module to depend upon itself.  if (!empty($data[$module_name])) {    unset($data[$module_name]);  }  // Clean up existing dependencies and merge.  $export['dependencies'] = _features_export_minimize_dependencies($export['dependencies'], $module_name);  $export['dependencies'] = array_merge($data, $export['dependencies']);  $export['dependencies'] = array_unique($export['dependencies']);}/** * Implements hook_features_revert(). */function dependencies_features_revert($module) {  dependencies_features_rebuild($module);}/** * Implements hook_features_rebuild(). * Ensure that all of a feature's dependencies are enabled. */function dependencies_features_rebuild($module) {  $feature = features_get_features($module);  if (!empty($feature->info['dependencies'])) {    $install = array();    foreach ($feature->info['dependencies'] as $dependency) {      // Parse the dependency string into the module name and version information.      $parsed_dependency = drupal_parse_dependency($dependency);      $dependency = $parsed_dependency['name'];      if (!module_exists($dependency)) {        $install[] = $dependency;      }    }    if (!empty($install)) {      features_install_modules($install);    }  }}
 |