You are here

function merci_uninstall in MERCI (Manage Equipment Reservations, Checkout and Inventory) 6.2

Same name and namespace in other branches
  1. 6 merci.install \merci_uninstall()
  2. 7.2 merci.install \merci_uninstall()

Implementation of hook_uninstall().

File

./merci.install, line 23
merci Installer / Uninstaller

Code

function merci_uninstall() {

  // Delete the vocabulary.
  $vid = variable_get('merci_equipment_grouping_vid', '');
  taxonomy_del_vocabulary($vid);

  // Need to load the CCK include file where content_field_instance_create() is defined.
  module_load_include('inc', 'content', 'includes/content.crud');
  $results = db_query("SELECT field_name,type_name FROM {" . content_instance_tablename() . "} WHERE type_name = 'merci_reservation'");
  while ($field = db_fetch_array($results)) {
    content_field_instance_delete($field['field_name'], $field['type_name'], FALSE);
  }

  // Force the caches and static arrays to update to the new info.
  content_clear_type_cache(TRUE);

  // Remove all MERCI variables.
  $variables = db_query("SELECT name FROM {variable} WHERE name LIKE 'merci_%'");
  while ($variable = db_fetch_object($variables)) {
    variable_del($variable->name);
  }

  // Remove all MERCI all associated nodes

  //No longer removes content types
  $content_types = db_query("SELECT type FROM {merci_node_type} WHERE merci_type_setting <> 'disabled'");
  while ($content_type = db_fetch_object($content_types)) {
    $nodes = db_query(db_rewrite_sql("SELECT nid FROM {node} n WHERE type = '%s'"), $content_type->type);
    while ($node = db_fetch_object($nodes)) {
      node_delete($node->nid);
    }

    //node_type_delete($content_type->type);
  }

  // Remove the programatically created reservation node type
  // and all associated nodes.
  $nodes = db_query(db_rewrite_sql("SELECT nid FROM {node} n WHERE type = 'merci_reservation'"));
  while ($node = db_fetch_object($nodes)) {
    node_delete($node->nid);
  }
  node_type_delete('merci_reservation');

  // You'd think the uninstall submit function would take care of this
  // but it doesn't look like it.
  node_types_rebuild();
  menu_rebuild();

  // Remove tables.
  drupal_uninstall_schema('merci');
}