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.
95 lines
3.4 KiB
95 lines
3.4 KiB
13 years ago
|
<?php
|
||
|
|
||
|
/**
|
||
|
* @file islandora-basic-image.install
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Implements hook_install
|
||
|
*/
|
||
|
function islandora_basic_image_install() {
|
||
|
module_load_include('inc', 'islandora', 'RestConnection');
|
||
|
global $user;
|
||
|
global $base_root;
|
||
|
|
||
|
try {
|
||
|
$restConnection = new RestConnection($user);
|
||
|
} catch (Exception $e) {
|
||
|
drupal_set_message(t('Unable to connect to the repository %e', array('%e' => $e)), 'error');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image');
|
||
|
if (empty($content_model_query['results'])) {
|
||
|
try {
|
||
|
$xml = file_get_contents(drupal_get_path('module', 'islandora_basic_image') . '/xml/simple_islandora_basic_imageCM.xml');
|
||
|
$restConnection->api->m->ingest(array('string' => $xml));
|
||
|
} catch (Exception $e) {
|
||
|
drupal_set_message(t('Unable to install content models %e', array('%e' => $e)), 'error');
|
||
|
return;
|
||
|
}
|
||
|
drupal_set_message(t('Content models installed!'));
|
||
|
}
|
||
|
else {
|
||
|
drupal_set_message(t('Content models already exist!'), 'warning');
|
||
|
}
|
||
|
|
||
|
$collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image_collection');
|
||
|
if (empty($collection_query['results'])) {
|
||
|
try {
|
||
|
$xml = file_get_contents(drupal_get_path('module', 'islandora_basic_image') . '/xml/islandora_basic_image_collection.xml');
|
||
|
$restConnection->api->m->ingest(array('string' => $xml));
|
||
|
$fedora_object = new FedoraObject('islandora:sp_basic_image_collection', $restConnection->repository);
|
||
|
$datastream = new FedoraDatastream('COLLECTION_POLICY', $fedora_object, $restConnection->repository);
|
||
|
$datastream->setContentFromFile($base_root . '/' . drupal_get_path('module', 'islandora_basic_image') . '/xml/islandora_basic_image_collection_policy.xml');
|
||
|
$datastream->controlGroup = 'M';
|
||
|
|
||
|
} catch (Exception $e) {
|
||
|
drupal_set_message(t('Unable to install collections %e', array('%e' => $e)), 'error');
|
||
|
return;
|
||
|
}
|
||
|
drupal_set_message(t('Collections installed!'));
|
||
|
}
|
||
|
else {
|
||
|
drupal_set_message(t('Collections already exist!'), 'warning');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function islandora_basic_image_uninstall() {
|
||
|
module_load_include('inc', 'islandora', 'RestConnection');
|
||
|
global $user;
|
||
|
try {
|
||
|
$restConnection = new RestConnection($user);
|
||
|
} catch (Exception $e) {
|
||
|
drupal_set_message(t('Unable to connect to the repository %e', array('%e' => $e)), 'error');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$content_model_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image');
|
||
|
if (!empty($content_model_query['results'])) {
|
||
|
try {
|
||
|
$restConnection->repository->purgeObject('islandora:sp_basic_image');
|
||
|
} catch (Exception $e) {
|
||
|
drupal_set_message(t('Unable to purge content models %e', array('%e' => $e)), 'error');
|
||
|
return;
|
||
|
}
|
||
|
drupal_set_message(t('Content models purged!'));
|
||
|
}
|
||
|
else {
|
||
|
drupal_set_message(t('Content models don\'t exist!'), 'warning');
|
||
|
}
|
||
|
|
||
|
$collection_query = $restConnection->api->a->findObjects('query', 'pid=islandora:sp_basic_image_collection');
|
||
|
if (!empty($collection_query['results'])) {
|
||
|
try {
|
||
|
$restConnection->repository->purgeObject('islandora:sp_basic_image_collection');
|
||
|
} catch (Exception $e) {
|
||
|
drupal_set_message(t('Unable to purge collections %e', array('%e' => $e)), 'error');
|
||
|
return;
|
||
|
}
|
||
|
drupal_set_message(t('Collections purged!'));
|
||
|
}
|
||
|
else {
|
||
|
drupal_set_message(t('Collections don\'t exist!'), 'warning');
|
||
|
}
|
||
|
}
|