You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.7 KiB
129 lines
3.7 KiB
<?php |
|
|
|
/** |
|
* @file |
|
* This file contains all install related hooks. |
|
*/ |
|
|
|
/** |
|
* Implements hook_requirements(). |
|
*/ |
|
function islandora_requirements($phase) { |
|
$requirements = array(); |
|
|
|
// Ensure translations don't break at install time. |
|
$t = get_t(); |
|
|
|
if (!class_exists('XSLTProcessor', FALSE)) { |
|
$requirements['islandora_xsltprocessor']['title'] = $t('Islandora XSLTProcessor Prerequisite'); |
|
$requirements['islandora_xsltprocessor']['value'] = $t('Not installed'); |
|
$link = l($t('PHP XSL extension'), 'http://us2.php.net/manual/en/book.xsl.php', array('attributes' => array('target' => '_blank'))); |
|
$requirements['islandora_xsltprocessor']['description'] = $t('The !xsllink is required. Check your installed PHP extensions and php.ini file.', array('!xsllink' => $link)); |
|
$requirements['islandora_xsltprocessor']['severity'] = REQUIREMENT_ERROR; |
|
} |
|
|
|
return $requirements; |
|
} |
|
|
|
/** |
|
* Implements hook_install(). |
|
* |
|
* @see islandora_islandora_required_objects() |
|
*/ |
|
function islandora_install() { |
|
module_load_include('inc', 'islandora', 'includes/solution_packs'); |
|
islandora_install_solution_pack('islandora'); |
|
} |
|
|
|
/** |
|
* Implements hook_uninstall(). |
|
* |
|
* @see islandora_islandora_required_objects() |
|
*/ |
|
function islandora_uninstall() { |
|
module_load_include('inc', 'islandora', 'includes/solution_packs'); |
|
islandora_install_solution_pack('islandora', 'uninstall'); |
|
// Add new variables to clean up. |
|
$variables = array( |
|
'islandora_ds_replace_exclude_enforced', |
|
'islandora_defer_derivatives_on_ingest', |
|
'islandora_base_url', |
|
'islandora_repository_pid', |
|
'islandora_use_datastream_cache_headers', |
|
'islandora_show_print_option', |
|
'islandora_render_drupal_breadcrumbs', |
|
'islandora_namespace_restriction_enforced', |
|
'islandora_pids_allowed', |
|
'islandora_risearch_use_itql_for_walking', |
|
); |
|
array_walk($variables, 'variable_del'); |
|
} |
|
|
|
/** |
|
* Implements hook_schema(). |
|
*/ |
|
function islandora_schema() { |
|
$schema['islandora_authtokens'] = array( |
|
'description' => 'The hub for all islandora authentication tokens', |
|
'fields' => array( |
|
'id' => array( |
|
'description' => 'key', |
|
'type' => 'serial', |
|
'unsigned' => TRUE, |
|
'not null' => TRUE, |
|
), |
|
'token' => array( |
|
'description' => 'a unique identifier for this token', |
|
'type' => 'varchar', |
|
'length' => 64, |
|
), |
|
'remaining_uses' => array( |
|
'description' => 'How many uses until this should be removed', |
|
'type' => 'int', |
|
'unsigned' => TRUE, |
|
'not null' => TRUE, |
|
), |
|
'uid' => array( |
|
'description' => 'the user id that requested this token', |
|
'type' => 'int', |
|
'unsigned' => TRUE, |
|
'not null' => TRUE, |
|
), |
|
'time' => array( |
|
'description' => 'when this token was created', |
|
'type' => 'int', |
|
'unsigned' => TRUE, |
|
'not null' => TRUE, |
|
), |
|
'pid' => array( |
|
'description' => 'the pid of the object this token unlocks', |
|
'type' => 'varchar', |
|
'length' => 128, |
|
'not null' => TRUE, |
|
), |
|
'dsid' => array( |
|
'description' => 'the datasteram id of the object this token unlocks', |
|
'type' => 'varchar', |
|
'length' => 32, |
|
'not null' => TRUE, |
|
), |
|
), |
|
'unique keys' => array( |
|
'id' => array('id'), |
|
), |
|
'primary key' => array('id'), |
|
); |
|
return $schema; |
|
} |
|
|
|
/** |
|
* Implements hook_update_N(). |
|
* |
|
* Add the required table for handling authentication tokens. |
|
* This is the first instance that has this table. |
|
*/ |
|
function islandora_update_7001(&$sandbox) { |
|
drupal_install_schema('islandora'); |
|
$t = get_t(); |
|
return $t("Islandora database updates complete"); |
|
}
|
|
|