|
|
|
<?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");
|
|
|
|
}
|