<?php
// $Id$

/**
 * @file
 * Implementation of hook_install().
 */
function optionwidgets_install() {
  drupal_load('module', 'content');
  content_notify('install', 'optionwidgets');
}

/**
 * Implementation of hook_uninstall().
 */
function optionwidgets_uninstall() {
  drupal_load('module', 'content');
  content_notify('uninstall', 'optionwidgets');
}

/**
 * Implementation of hook_enable().
 *
 * Notify content module when this module is enabled.
 */
function optionwidgets_enable() {
  drupal_load('module', 'content');
  content_notify('enable', 'optionwidgets');
}

/**
 * Implementation of hook_disable().
 *
 * Notify content module when this module is disabled.
 */
function optionwidgets_disable() {
  drupal_load('module', 'content');
  content_notify('disable', 'optionwidgets');
}

function optionwidgets_update_last_removed() {
  return 1;
}

/**
 * Rename widgets from 'options_xxx' to 'optionwidgets_xxx' so hook_elements
 * and hook_themes items are prefixed with module name as they should be.
 *
 * The change in widget types will keep content_update_6000() from correctly updating
 * the module names in the field and instance tables, so do it here.
 */
function optionwidgets_update_6000() {
  if ($abort = content_check_update('optionwidgets')) {
    return $abort;
  }

  $ret = array();

  drupal_load('module', 'content');
  $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_type = 'optionwidgets_select' WHERE widget_type = 'options_select'");
  $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_type = 'optionwidgets_onoff' WHERE widget_type = 'options_onoff'");
  $ret[] = update_sql("UPDATE {". content_instance_tablename() ."} SET widget_type = 'optionwidgets_buttons' WHERE widget_type = 'options_buttons'");

  content_associate_fields('optionwidgets');
  return $ret;
}

/**
 * Update 6000 was possibly broken if it was executed while
 * the modules were still disabled, so we re-run it.
 * Having it run a second time on sites that got updated correctly has no
 * side-effect (see http://drupal.org/node/310873).
 */
function optionwidgets_update_6001() {
  return optionwidgets_update_6000();
}