You are here

superfish.install in Superfish 7

Same filename and directory in other branches
  1. 8 superfish.install
  2. 6 superfish.install

Install, update and uninstall functions for the Superfish module.

File

superfish.install
View source
<?php

/**
 * @file
 * Install, update and uninstall functions for the Superfish module.
 */

/**
 * Implements hook_uninstall().
 */
function superfish_uninstall() {
  db_delete('variable')
    ->condition('name', 'superfish_%%', 'LIKE')
    ->execute();
  db_delete('block')
    ->condition('module', 'superfish')
    ->execute();
  db_delete('block_role')
    ->condition('module', 'superfish')
    ->execute();
}

/**
 * Implements hook_enable().
 */
function superfish_enable() {
  if (superfish_library_check()) {
    drupal_set_message(t('In order to use Superfish, go to the <a href="@block">Blocks</a> page and enable a Superfish block.', array(
      '@block' => 'structure/block',
    )));
  }
  else {
    drupal_set_message(t('Superfish library is missing. Please refer to the <a href="@documentation">plugin documentation</a> for how you can fix this issue; Once done, go to the <a href="@block">Blocks</a> page and enable a Superfish block.', array(
      '@documentation' => 'http://drupal.org/node/1125896',
      '@block' => 'structure/block',
    )), 'warning');
  }
}

/**
 * Implements hook_requirements().
 */
function superfish_requirements($phase) {
  $requirements = array();
  if ($phase == 'runtime') {

    // Ensure translations do not break at install time.
    $t = get_t();

    // Ensure the Superfish library is present.
    $requirements['superfish']['title'] = $t('Superfish library');
    if (superfish_library_check()) {
      $requirements['superfish']['value'] = $t('Installed');
      $requirements['superfish']['severity'] = REQUIREMENT_OK;
    }
    else {
      $requirements['superfish']['value'] = $t('Not installed');
      $requirements['superfish']['severity'] = REQUIREMENT_ERROR;
      $requirements['superfish']['description'] = $t('Please download the Superfish library from !link.', array(
        '!link' => l($t('Superfish project homepage'), 'http://drupal.org/project/superfish'),
      ));
    }

    // Check the uploaded Superfish library version.
    if (superfish_library_version() != '1.2') {
      $requirements['superfish']['value'] = $t('Not supported');
      $requirements['superfish']['severity'] = REQUIREMENT_ERROR;
      $requirements['superfish']['description'] = $t('The Superfish library requires an update. You can find the update instructions on !link.', array(
        '!link' => l($t('Superfish project homepage'), 'http://drupal.org/project/superfish'),
      ));
    }
  }
  return $requirements;
}

/**
 * Verifies Superfish library is present.
 */
function superfish_library_check() {
  if (function_exists('libraries_get_libraries')) {
    $library = libraries_get_libraries();
    if (isset($library['superfish'])) {
      return TRUE;
    }
  }
  elseif (file_exists('sites/all/libraries/superfish/superfish.js') || file_exists('profiles/' . drupal_get_profile() . '/libraries/superfish/superfish.js')) {
    return TRUE;
  }
  return FALSE;
}

/**
 * A function to check the Superfish library version.
 */
function superfish_library_version() {

  // Ensure the Libraries API module is installed and working.
  if (module_exists('libraries') && function_exists('libraries_get_path') && libraries_get_path('superfish') != '') {
    $directory = libraries_get_path('superfish');
  }
  elseif (file_exists('profiles/' . drupal_get_profile() . '/libraries/superfish')) {
    $directory = 'profiles/' . drupal_get_profile() . '/libraries/superfish';
  }
  else {
    $directory = 'sites/all/libraries/superfish';
  }

  // Get the library version.
  if (file_exists($directory . '/VERSION')) {
    $version = file_get_contents($directory . '/VERSION');

    // Removing blank lines and white spaces.
    $version = preg_replace("/(^[\r\n]*|[\r\n]+)[\\s\t]*[\r\n]+/", "\n", trim($version));
    if (!empty($version)) {
      return $version;
    }
    else {
      return '';
    }
  }
  else {
    return '';
  }
}

/**
 * Implements hook_update_N().
 */
function superfish_update_7100() {
}

Functions

Namesort descending Description
superfish_enable Implements hook_enable().
superfish_library_check Verifies Superfish library is present.
superfish_library_version A function to check the Superfish library version.
superfish_requirements Implements hook_requirements().
superfish_uninstall Implements hook_uninstall().
superfish_update_7100 Implements hook_update_N().