You are here

function instagram_feeds_uninstall_process in Instagram Feeds 7

Callback function to implement batch process operations.

1 string reference to 'instagram_feeds_uninstall_process'
_instagram_feeds_uninstall in ./instagram_feeds.install
Helper function to run batch operations for removing all Instagram content.

File

./instagram_feeds.install, line 181
Instagram Feeds feature updates. Update hooks - enable modules, etc.

Code

function instagram_feeds_uninstall_process($operation, $data, &$context = array()) {
  switch ($operation) {
    case 'node_type_delete':
      $types = node_type_get_types();
      node_type_delete($data);
      $context['message'] = t('Removing node type !type', array(
        '!type' => $types[$data]->name,
      ));
      break;
    case 'fields_delete':
      $fields = field_info_instances($data['entity_type'], $data['bundle']);
      foreach ($fields as $field) {
        $instance = field_info_instance($data['entity_type'], $field['field_name'], $data['bundle']);
        field_delete_instance($instance);
      }
      $context['message'] = t('Removing fields for !entity_type', array(
        '!entity_type' => $data['entity_type'],
      ));
      break;
    case 'blocks_delete':
      $context['message'] = t('Removing blocks...');
      db_delete('block')
        ->condition('module', 'instagram_feeds')
        ->execute();
      db_delete('block_role')
        ->condition('module', 'instagram_feeds')
        ->execute();
      break;
    case 'node_delete':
      node_delete_multiple($data);
      $context['message'] = t('Removing nodes...');
      break;
    case 'taxonomy_delete':
      $vocabulary = taxonomy_vocabulary_machine_name_load($data);
      taxonomy_vocabulary_delete($vocabulary->vid);
      $context['message'] = t('Terms and vocabulary !vocabulary were deleted.', array(
        '!vocabulary' => $vocabulary->name,
      ));
      break;
    case 'variables_delete':
      variable_del('instagram_feeds_client_id');
      variable_del('instagram_feeds_client_secret');
      variable_del('instagram_feeds_access_token');
      variable_del('instagram_feeds_items_expiration_time');
      variable_del('instagram_feeds_block_ids');
      variable_del('instagram_feeds_remove_unused_terms');
      variable_del('instagram_feeds_download_attempts');
      variable_del('instagram_feeds_limit_imgs_per_feed');
      $context['message'] = t('Instagram Feeds settings deleted.');
      break;
    case 'feeds_importer_delete':
      feeds_importer($data)
        ->delete();
      $context['message'] = t('Instagram Feed Importer deleted.');
      break;
    case 'cache_clear':
      cache_clear_all();
      $context['message'] = t('All cache was cleared.');
      break;
    case 'delete_flags':
      if (module_exists('flag')) {
        $context['message'] = t('Deleting flags.');
        foreach ($data as $flag_name) {
          $flag = flag_load($flag_name, TRUE);
          if ($flag) {
            $flag
              ->delete();
          }
        }
      }
      break;
  }
  if (drupal_is_cli() && isset($context['message']) && !empty($context['message'])) {
    echo $context['message'], "\n";
  }
}