You are here

function wysiwyg_features_rebuild in Wysiwyg 7.2

Implements hook_features_rebuild().

1 call to wysiwyg_features_rebuild()
wysiwyg_features_revert in ./wysiwyg.features.inc
Implements hook_features_revert().

File

./wysiwyg.features.inc, line 79

Code

function wysiwyg_features_rebuild($module) {
  if ($defaults = features_get_default('wysiwyg', $module)) {
    foreach ($defaults as $profile) {
      $profile = is_object($profile) ? (array) $profile : $profile;
      if (empty($profile['settings']['_profile_preferences'])) {
        if (!empty($profile['preferences'])) {
          $settings =& $profile['preferences'];
        }
        else {

          // Importing an older profile, move state to its own section.
          $settings =& $profile['settings'];
        }
        $preferences = array(
          'add_to_summaries' => !empty($settings['add_to_summaries']) ? $settings['add_to_summaries'] : FALSE,
          'default' => $settings['default'],
          'show_toggle' => $settings['show_toggle'],
          'user_choose' => $settings['user_choose'],
          'version' => !empty($settings['version']) ? $settings['version'] : NULL,
        );
        unset($settings['add_to_summaries'], $settings['default'], $settings['show_toggle'], $settings['user_choose'], $settings['version'], $profile['preferences']);
        if (!empty($settings['library'])) {
          $preferences['library'] = $settings['library'];
          unset($settings['library']);
        }
        $editor = wysiwyg_get_editor($profile['editor']);
        if (empty($preferences['version']) && !empty($editor['installed'])) {
          $preferences['version'] = $editor['installed version'];
        }
        $profile['settings']['_profile_preferences'] = $preferences;
      }
      db_merge('wysiwyg')
        ->key(array(
        'format' => $profile['format'],
      ))
        ->fields(array(
        'editor' => $profile['editor'],
        'settings' => serialize($profile['settings']),
      ))
        ->execute();

      // Clear the editing caches.
      if (module_exists('ctools')) {
        ctools_include('object-cache');
        ctools_object_cache_clear_all('wysiwyg_profile', 'format' . $profile['format']);
      }
      cache_clear_all('wysiwyg_profile:format' . $profile['format'], 'cache');
    }
    wysiwyg_profile_cache_clear();
  }
}