Browse Source

Merge remote-tracking branch 'upstream/7.x' into 7.x

pull/117/head
krisbulman 12 years ago
parent
commit
5c079ec86c
  1. 1
      includes/object_properties.inc
  2. 16
      islandora.module
  3. 7
      islandora_basic_collection/admin/islandora_basic_collection.admin.inc
  4. 2
      islandora_basic_collection/islandora-basic-collection.tpl.php
  5. 26
      islandora_basic_collection/islandora_basic_collection.module

1
includes/object_properties.inc

@ -64,6 +64,7 @@ function islandora_edit_properties_form_submit($form, &$form_state) {
function islandora_edit_properties_form($form, &$form_state, $object_id) { function islandora_edit_properties_form($form, &$form_state, $object_id) {
$form = array(); $form = array();
$islandora_object = islandora_get_object($object_id); $islandora_object = islandora_get_object($object_id);
drupal_set_title($islandora_object->label);
if (!isset($islandora_object)) { if (!isset($islandora_object)) {
return NULL; return NULL;
} }

16
islandora.module

@ -659,20 +659,26 @@ function islandora_preprocess_islandora_default_edit(&$variables) {
module_load_include('inc', 'islandora', 'includes/datastream'); module_load_include('inc', 'islandora', 'includes/datastream');
// $variables['add_datastream_form'] = drupal_get_form('islandora_add_datastream_form', $islandora_object->id); // $variables['add_datastream_form'] = drupal_get_form('islandora_add_datastream_form', $islandora_object->id);
$header = array( $header = array(
array('data' => t('ID')),
array('data' => t('Type')),
array('data' => t('Mime type')),
array('data' => t('Label')), array('data' => t('Label')),
array('data' => t('Operations'),'colspan' => '2'), array('data' => t('Operations'), 'colspan' => '2'),
//array('data' => t('Delete')), //array('data' => t('Delete')),
); );
$table_attributes = array('class' => array('manage-datastrea')); $table_attributes = array('class' => array('manage-datastrea'));
$rows = array(); $rows = array();
foreach ($islandora_object as $ds) { foreach ($islandora_object as $ds) {
$rows[] = array( $rows[] = array(
array('class' => 'datastream-label', 'data' => l($ds->id, $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/' . $ds->id . '/view')),
array('class' => 'datastream-label', 'data' => $ds->controlGroup),
array('class' => 'datastream-label', 'data' => $ds->mimeType),
array('class' => 'datastream-label', 'data' => l($ds->label, $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/' . $ds->id . '/view')), array('class' => 'datastream-label', 'data' => l($ds->label, $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/' . $ds->id . '/view')),
array('class' => 'datastream-download', 'data' => l(t('download'), $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/' . $ds->id . '/download')), array('class' => 'datastream-download', 'data' => l(t('download'), $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/' . $ds->id . '/download')),
array('class' => 'datastream-delete', 'data' => l(t('delete'), $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/' . $ds->id . '/delete')), array('class' => 'datastream-delete', 'data' => l(t('delete'), $base_url . '/islandora/object/' . $islandora_object->id . '/datastream/' . $ds->id . '/delete')),
); );
} }
$caption = $islandora_object->label . ' - ' . $islandora_object->id; $caption = $islandora_object->label . ' - ' . $islandora_object->id;
$table = array('colgroups' => NULL, 'sticky' => TRUE, 'empty' => 'Error loading datastreams', 'caption' => $caption, 'header' => $header, 'rows' => $rows, 'attributes' => $table_attributes); $table = array('colgroups' => NULL, 'sticky' => TRUE, 'empty' => 'Error loading datastreams', 'caption' => $caption, 'header' => $header, 'rows' => $rows, 'attributes' => $table_attributes);
$variables['datastream_table'] = theme_table($table); $variables['datastream_table'] = theme_table($table);
} }

7
islandora_basic_collection/admin/islandora_basic_collection.admin.inc

@ -10,6 +10,13 @@ function islandora_basic_collection_admin() {
on a view tab you may have multiple modules configured to provide content for the default tab.'), on a view tab you may have multiple modules configured to provide content for the default tab.'),
'#weight' => -10 '#weight' => -10
); );
$form['islandora_basic_collection_page_size'] = array(
'#type' => 'textfield',
'#title' => t('The default number of objects to show for a collection'),
'#default_value' => variable_get('islandora_basic_collection_page_size', '10'),
'#description' => t('The default number of object to show in a collection view.'),
'#weight' => -10
);
return system_settings_form($form); return system_settings_form($form);
} }

2
islandora_basic_collection/islandora-basic-collection.tpl.php

@ -25,11 +25,13 @@
<div class="islandora-basic-collection-wrapper"> <div class="islandora-basic-collection-wrapper">
<div class="islandora-basic-collection clearfix"> <div class="islandora-basic-collection clearfix">
<?php print($variables['pager']); ?>
<?php foreach($associated_objects_array as $key => $value): ?> <?php foreach($associated_objects_array as $key => $value): ?>
<dl class="islandora-basic-collection-object <?php print $value['class']; ?>"> <dl class="islandora-basic-collection-object <?php print $value['class']; ?>">
<dt class="islandora-basic-collection-thumb"><?php print $value['thumb_link']; ?></dt> <dt class="islandora-basic-collection-thumb"><?php print $value['thumb_link']; ?></dt>
<dd class="islandora-basic-collection-caption"><?php print $value['title_link']; ?></dd> <dd class="islandora-basic-collection-caption"><?php print $value['title_link']; ?></dd>
</dl> </dl>
<?php endforeach; ?> <?php endforeach; ?>
<?php print($variables['pager']); ?>
</div> </div>
</div> </div>

26
islandora_basic_collection/islandora_basic_collection.module

@ -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;
@ -224,7 +224,7 @@ function islandora_basic_collection_islandora_view_object($object, $user, $page_
} }
/** /**
* *
* @global type $base_url * @global type $base_url
* @param array $variables * @param array $variables
* an array of variables that will be passed to the theme function * an array of variables that will be passed to the theme function
@ -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);

Loading…
Cancel
Save