diff --git a/blocktheme.module b/blocktheme.module index 11f32af..acf1255 100644 --- a/blocktheme.module +++ b/blocktheme.module @@ -350,3 +350,69 @@ function blocktheme_preprocess_block_admin_display_form(&$variables) { } } } + +/** + * Implements hook_features_api(). + */ +function blocktheme_features_api() { + return array( + 'blocktheme' => array( + 'name' => t('Blocktheme settings'), + 'feature_source' => FALSE, + ), + ); +} + +/** + * Implements hook_features_export_options(). + */ +function blocktheme_features_export_options() { + return array( + 'blocktheme_themes' => t('Custom Block Templates'), + 'blocktheme_show_custom_block_theme' => t('Show Custom Block Theme'), + ); +} + +/** + * Implements hook_features_export(). + */ +function blocktheme_features_export($data, &$export, $module_name = '') { + $export['dependencies']['blocktheme'] = 'blocktheme'; + + foreach ($data as $component) { + $export['features']['blocktheme'][$component] = $component; + } + + return array(); +} + +/** + * Implements hook_features_export_render(). + */ +function blocktheme_features_export_render($module_name, $data, $export = NULL) { + $code = array(); + + $code[] = '$blocktheme_settings = array();'; + + foreach ($data as $component) { + $code[] = ' $blocktheme_settings["' . $component . '"] = ' . features_var_export(variable_get($component, '')) .";"; + } + + $code[] = 'return $blocktheme_settings;'; + + return array('blocktheme_feature_import' => implode("\n", $code)); +} + +/** + * Implements hook_modules_enabled(). + */ +function blocktheme_modules_enabled($modules) { + foreach ($modules as $module) { + if (function_exists("{$module}_blocktheme_feature_import")) { + dpm(module_invoke($module, 'blocktheme_feature_import')); + foreach (module_invoke($module, 'blocktheme_feature_import') as $variable => $value) { + variable_set($variable, $value); + } + } + } +}