annotate sites/all/modules/features/includes/features.features.inc @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * Implements hook_features_api().
danielebarchiesi@4 5 */
danielebarchiesi@4 6 function features_features_api() {
danielebarchiesi@4 7 return array(
danielebarchiesi@4 8 'dependencies' => array(
danielebarchiesi@4 9 'name' => 'Dependencies',
danielebarchiesi@4 10 'feature_source' => TRUE,
danielebarchiesi@4 11 'duplicates' => FEATURES_DUPLICATES_ALLOWED,
danielebarchiesi@4 12 ),
danielebarchiesi@4 13 );
danielebarchiesi@4 14 }
danielebarchiesi@4 15
danielebarchiesi@4 16 /**
danielebarchiesi@4 17 * Implements hook_features_export_options().
danielebarchiesi@4 18 */
danielebarchiesi@4 19 function dependencies_features_export_options() {
danielebarchiesi@4 20 // Excluded modules.
danielebarchiesi@4 21 $excluded = drupal_required_modules();
danielebarchiesi@4 22 $options = array();
danielebarchiesi@4 23 foreach (features_get_modules() as $module_name => $info) {
danielebarchiesi@4 24 if (!in_array($module_name, $excluded) && $info->status && !empty($info->info)) {
danielebarchiesi@4 25 $options[$module_name] = $info->info['name'];
danielebarchiesi@4 26 }
danielebarchiesi@4 27 }
danielebarchiesi@4 28 return $options;
danielebarchiesi@4 29 }
danielebarchiesi@4 30
danielebarchiesi@4 31 /**
danielebarchiesi@4 32 * Implements hook_features_export().
danielebarchiesi@4 33 */
danielebarchiesi@4 34 function dependencies_features_export($data, &$export, $module_name = '') {
danielebarchiesi@4 35 // Don't allow a module to depend upon itself.
danielebarchiesi@4 36 if (!empty($data[$module_name])) {
danielebarchiesi@4 37 unset($data[$module_name]);
danielebarchiesi@4 38 }
danielebarchiesi@4 39
danielebarchiesi@4 40 // Clean up existing dependencies and merge.
danielebarchiesi@4 41 $export['dependencies'] = _features_export_minimize_dependencies($export['dependencies'], $module_name);
danielebarchiesi@4 42 $export['dependencies'] = array_merge($data, $export['dependencies']);
danielebarchiesi@4 43 $export['dependencies'] = array_unique($export['dependencies']);
danielebarchiesi@4 44 }
danielebarchiesi@4 45
danielebarchiesi@4 46 /**
danielebarchiesi@4 47 * Implements hook_features_revert().
danielebarchiesi@4 48 */
danielebarchiesi@4 49 function dependencies_features_revert($module) {
danielebarchiesi@4 50 dependencies_features_rebuild($module);
danielebarchiesi@4 51 }
danielebarchiesi@4 52
danielebarchiesi@4 53 /**
danielebarchiesi@4 54 * Implements hook_features_rebuild().
danielebarchiesi@4 55 * Ensure that all of a feature's dependencies are enabled.
danielebarchiesi@4 56 */
danielebarchiesi@4 57 function dependencies_features_rebuild($module) {
danielebarchiesi@4 58 $feature = features_get_features($module);
danielebarchiesi@4 59 if (!empty($feature->info['dependencies'])) {
danielebarchiesi@4 60 $install = array();
danielebarchiesi@4 61 foreach ($feature->info['dependencies'] as $dependency) {
danielebarchiesi@4 62 // Parse the dependency string into the module name and version information.
danielebarchiesi@4 63 $parsed_dependency = drupal_parse_dependency($dependency);
danielebarchiesi@4 64 $dependency = $parsed_dependency['name'];
danielebarchiesi@4 65 if (!module_exists($dependency)) {
danielebarchiesi@4 66 $install[] = $dependency;
danielebarchiesi@4 67 }
danielebarchiesi@4 68 }
danielebarchiesi@4 69 if (!empty($install)) {
danielebarchiesi@4 70 features_install_modules($install);
danielebarchiesi@4 71 }
danielebarchiesi@4 72 }
danielebarchiesi@4 73 }