superfish.install in Superfish 7
Same filename and directory in other branches
Install, update and uninstall functions for the Superfish module.
File
superfish.installView 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
Name | 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(). |