|
|
@ -210,7 +210,7 @@ function islandora_basic_collection_islandora_get_types() { |
|
|
|
* @return string |
|
|
|
* @return string |
|
|
|
* themed html |
|
|
|
* themed html |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function islandora_basic_collection_islandora_view_object($object, $user, $page_number, $page_size) { |
|
|
|
function islandora_basic_collection_islandora_view_object($object, $user) { |
|
|
|
//global $user; |
|
|
|
//global $user; |
|
|
|
$cmodel_list = islandora_basic_collection_islandora_get_types(); |
|
|
|
$cmodel_list = islandora_basic_collection_islandora_get_types(); |
|
|
|
$models = $object->models; |
|
|
|
$models = $object->models; |
|
|
@ -242,7 +242,14 @@ function islandora_basic_collection_preprocess_islandora_basic_collection(&$vari |
|
|
|
} catch (Exception $e) { |
|
|
|
} catch (Exception $e) { |
|
|
|
drupal_set_message(t('Error retrieving object %s %t', array('%s' => $islandora_object->id, '%t' => $e->getMessage())), 'error'); |
|
|
|
drupal_set_message(t('Error retrieving object %s %t', array('%s' => $islandora_object->id, '%t' => $e->getMessage())), 'error'); |
|
|
|
} |
|
|
|
} |
|
|
|
$variables['islandora_associated_objects'] = islandora_basic_collection_get_objects($islandora_object); |
|
|
|
$page_number = (empty($_GET['page'])) ? 0 : $_GET['page']; |
|
|
|
|
|
|
|
$page_size = (empty($_GET['pagesize'])) ? variable_get('islandora_basic_collection_page_size', '10') : $_GET['pagesize']; |
|
|
|
|
|
|
|
$results = islandora_basic_collection_get_objects($islandora_object, $page_number, $page_size); |
|
|
|
|
|
|
|
$total_count = count($results); |
|
|
|
|
|
|
|
pager_default_initialize($total_count, $page_size); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$pager = theme('pager', array('quantity' => $total_count)); |
|
|
|
|
|
|
|
$variables['pager'] = $pager; |
|
|
|
$variables['islandora_dublin_core'] = $dc_object; |
|
|
|
$variables['islandora_dublin_core'] = $dc_object; |
|
|
|
$variables['islandora_object_label'] = $islandora_object->label; |
|
|
|
$variables['islandora_object_label'] = $islandora_object->label; |
|
|
|
$variables['theme_hook_suggestions'][] = 'islandora_basic_collection__' . str_replace(':', '_', $islandora_object->id); |
|
|
|
$variables['theme_hook_suggestions'][] = 'islandora_basic_collection__' . str_replace(':', '_', $islandora_object->id); |
|
|
@ -260,8 +267,11 @@ function islandora_basic_collection_preprocess_islandora_basic_collection(&$vari |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$associated_objects_array = array(); |
|
|
|
$associated_objects_array = array(); |
|
|
|
foreach ($variables['islandora_associated_objects'] as $key => $value) { |
|
|
|
$start = $page_size * ($page_number); |
|
|
|
$pid = $variables['islandora_associated_objects'][$key]['object']['value']; |
|
|
|
$end = min($start + $page_size, $total_count); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for ($i = $start; $i < $end; $i++) { |
|
|
|
|
|
|
|
$pid = $results[$i]['object']['value']; |
|
|
|
$fc_object = islandora_basic_collection_get_object($pid); |
|
|
|
$fc_object = islandora_basic_collection_get_object($pid); |
|
|
|
if (!isset($fc_object)) { |
|
|
|
if (!isset($fc_object)) { |
|
|
|
continue; //null object so don't show in collection view; |
|
|
|
continue; //null object so don't show in collection view; |
|
|
@ -276,7 +286,7 @@ function islandora_basic_collection_preprocess_islandora_basic_collection(&$vari |
|
|
|
} |
|
|
|
} |
|
|
|
$object_url = 'islandora/object/' . $pid; |
|
|
|
$object_url = 'islandora/object/' . $pid; |
|
|
|
$thumbnail_img = '<img src="' . $base_path . $object_url . '/datastream/TN/view"' . '/>'; |
|
|
|
$thumbnail_img = '<img src="' . $base_path . $object_url . '/datastream/TN/view"' . '/>'; |
|
|
|
$title = $variables['islandora_associated_objects'][$key]['title']['value']; |
|
|
|
$title = $results[$i]['title']['value']; |
|
|
|
$associated_objects_array[$pid]['pid'] = $pid; |
|
|
|
$associated_objects_array[$pid]['pid'] = $pid; |
|
|
|
$associated_objects_array[$pid]['path'] = $object_url; |
|
|
|
$associated_objects_array[$pid]['path'] = $object_url; |
|
|
|
$associated_objects_array[$pid]['title'] = $title; |
|
|
|
$associated_objects_array[$pid]['title'] = $title; |
|
|
@ -307,7 +317,7 @@ function islandora_basic_collection_get_object($object_id) { |
|
|
|
return $fedora_object; |
|
|
|
return $fedora_object; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function islandora_basic_collection_get_objects($object) { |
|
|
|
function islandora_basic_collection_get_objects($object, $page_number = 1, $page_size = 5) { |
|
|
|
$query = 'select $object $title $content from <#ri> |
|
|
|
$query = 'select $object $title $content from <#ri> |
|
|
|
where ($object <fedora-model:label> $title |
|
|
|
where ($object <fedora-model:label> $title |
|
|
|
and $object <fedora-model:hasModel> $content |
|
|
|
and $object <fedora-model:hasModel> $content |
|
|
@ -316,8 +326,6 @@ function islandora_basic_collection_get_objects($object) { |
|
|
|
and $object <fedora-model:state> <info:fedora/fedora-system:def/model#Active>) |
|
|
|
and $object <fedora-model:state> <info:fedora/fedora-system:def/model#Active>) |
|
|
|
minus $content <mulgara:is> <info:fedora/fedora-system:FedoraObject-3.0> |
|
|
|
minus $content <mulgara:is> <info:fedora/fedora-system:FedoraObject-3.0> |
|
|
|
order by $title'; |
|
|
|
order by $title'; |
|
|
|
$page_number = (empty($_GET['page'])) ? '1' : $_GET['page']; |
|
|
|
|
|
|
|
$page_size = (empty($_GET['pagesize'])) ? '10' : $_GET['pagesize']; |
|
|
|
|
|
|
|
module_load_include('inc', 'islandora', 'RestConnection'); |
|
|
|
module_load_include('inc', 'islandora', 'RestConnection'); |
|
|
|
$query_array = array('query' => $query, 'type' => 'itql', 'pid' => $object->id, 'page_size' => $page_size, 'page_number' => $page_number); |
|
|
|
$query_array = array('query' => $query, 'type' => 'itql', 'pid' => $object->id, 'page_size' => $page_size, 'page_number' => $page_number); |
|
|
|
drupal_alter('islandora_basic_collection_query', $query_array); |
|
|
|
drupal_alter('islandora_basic_collection_query', $query_array); |
|
|
|