Permalink
Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
Cannot retrieve contributors at this time
<?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_when_necessary', | |
'islandora_use_object_semaphores', | |
'islandora_semaphore_period', | |
'islandora_require_obj_upload', | |
'islandora_breadcrumbs_backends', | |
'islandora_render_context_ingeststep', | |
'islandora_deny_inactive_and_deleted', | |
); | |
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"); | |
} |