You are here

calendar.install in Calendar 5.2

Install File

File

calendar.install
View source
<?php

/**
 * @file
 * Install File
 */

/**
 * Implementation of hook_requirements().
 * Added to be sure the Date API version matches this code so invalid
 * functions are not called.
 */
function calendar_requirements($phase) {
  $requirements = array();
  $t = get_t();

  // This is the minimum required version for the Date API so that it will work with this module.
  $required_version = 5.2;

  // Make sure the matching version of date_api is installed.
  // Use info instead of an error at install time since the problem may
  // just be that they were installed in the wrong order.
  switch ($phase) {
    case 'runtime':
      if (variable_get('date_api_version', 0) < $required_version) {
        $requirements['calendar_api_version'] = array(
          'title' => $t('Calendar requirements'),
          'value' => $t('The Calendar module requires a more current version of the Date API. Please check for a newer version.'),
          'severity' => REQUIREMENT_ERROR,
        );
      }
      break;
    case 'install':
      if (variable_get('date_api_version', 0) < $required_version) {
        $requirements['calendar_api_version'] = array(
          'title' => $t('Calendar requirements'),
          'value' => $t('The Calendar module requires the latest version of the Date API, be sure you are installing the latest versions of both modules.'),
          'severity' => REQUIREMENT_INFO,
        );
      }
      break;
  }
  return $requirements;
}
function calendar_install() {
  module_enable(array(
    'date_api',
  ));
  if (version_compare(PHP_VERSION, '5.2', '<') && !module_exists('date_php4')) {
    module_enable(array(
      'date_php4',
    ));
  }
  module_enable(array(
    'date_timezone',
  ));
  $ret = array();

  // Make sure this module loads after date_api.
  db_query("UPDATE {system} SET weight = 1 WHERE name = 'calendar'");
  return $ret;
}

/**
 * Implementation of hook_enable().
 * Reset the calendar caches.
 */
function calendar_enable() {
  module_enable(array(
    'date_api',
  ));
  if (version_compare(PHP_VERSION, '5.2', '<')) {
    module_enable(array(
      'date_php4',
    ));
  }
  module_enable(array(
    'date_timezone',
  ));
  cache_clear_all('calendar_views', 'cache_views');
  cache_clear_all('calendar_fields', 'cache_views');
}

/**
 * Implementation of hook_disable().
 * Empty the calendar caches.
 */
function calendar_disable() {
  cache_clear_all('calendar_views', 'cache_views');
  cache_clear_all('calendar_fields', 'cache_views');
}

/**
 * Implementation of hook_uninstall().
 *
 */
function calendar_uninstall() {
  $ret = array();
  $ret[] = db_query("DELETE FROM {variable} WHERE SUBSTR(name, 1, 9) = 'calendar_'");
  cache_clear_all('variables', 'cache');
  cache_clear_all('calendar_views', 'cache_views');
  cache_clear_all('calendar_fields', 'cache_views');
  return $ret;
}

/**
 * Move these caches from 'cache' to 'cache_views' so they get cleared
 * automatically whenever views_invalidate_cache() is called.
 */
function calendar_update_5000() {
  $ret = array();
  cache_clear_all('calendar_fields', 'cache');
  cache_clear_all('calendar_views', 'cache');
  return $ret;
}

/**
 * Implementation of hook_update().
 */
function calendar_update_5001() {
  $ret = array();
  $ret[] = update_sql("UPDATE {system} SET weight = 1 WHERE name = 'calendar'");
  return $ret;
}
function calendar_update_5200() {
  $ret = array();
  module_enable(array(
    'date_api',
  ));
  if (version_compare(PHP_VERSION, '5.2', '<')) {
    module_enable(array(
      'date_php4',
    ));
  }
  module_enable(array(
    'date_timezone',
  ));
  return $ret;
}

Functions

Namesort descending Description
calendar_disable Implementation of hook_disable(). Empty the calendar caches.
calendar_enable Implementation of hook_enable(). Reset the calendar caches.
calendar_install
calendar_requirements Implementation of hook_requirements(). Added to be sure the Date API version matches this code so invalid functions are not called.
calendar_uninstall Implementation of hook_uninstall().
calendar_update_5000 Move these caches from 'cache' to 'cache_views' so they get cleared automatically whenever views_invalidate_cache() is called.
calendar_update_5001 Implementation of hook_update().
calendar_update_5200