diff --git a/api/fedora_item.inc b/api/fedora_item.inc
index 01d71cfa..463ba6df 100644
--- a/api/fedora_item.inc
+++ b/api/fedora_item.inc
@@ -622,6 +622,23 @@ class Fedora_Item {
return self::soap_call('modifyObject', $params, $quiet);
}
+ function modify_datastream_by_reference($external_url, $dsid, $label, $mime_type, $force = FALSE, $logMessage = 'Modified by Islandora API',$quiet=FALSE) {
+ $params = array(
+ 'pid' => $this->pid,
+ 'dsID' => $dsid,
+ 'altIDs' => NULL,
+ 'dsLabel' => $label,
+ 'MIMEType' => $mime_type,
+ 'formatURI' => NULL,
+ 'dsLocation' => $external_url,
+ 'checksumType' => 'DISABLED',
+ 'checksum' => 'none',
+ 'logMessage' => $logMessage,
+ 'force' => $force
+ );
+ return self::soap_call('modifyDatastreamByReference', $params, $quiet);
+ }
+
function modify_datastream_by_value($content, $dsid, $label, $mime_type, $force = FALSE, $logMessage = 'Modified by Islandora API',$quiet=FALSE) {
$params = array(
'pid' => $this->pid,
@@ -654,6 +671,7 @@ class Fedora_Item {
case 'getNextPID':
case 'getRelationships':
case 'modifyDatastreamByValue':
+ case 'modifyDatastreamByReference':
case 'purgeDatastream':
case 'purgeObject':
case 'modifyObject':
diff --git a/form_elements/islandora_form_elements.module b/form_elements/islandora_form_elements.module
index 86cf61a9..75214db0 100644
--- a/form_elements/islandora_form_elements.module
+++ b/form_elements/islandora_form_elements.module
@@ -24,6 +24,12 @@ function islandora_form_elements_elements() {
'#sticky ' => FALSE,
'#process' => array('ife_sticky_textarea_process'),
);
+
+ $type['select'] = array(
+ '#input'=> TRUE,
+ '#sticky ' => FALSE,
+ '#process' => array('ife_sticky_select_process'),
+ );
$type['list'] = array(
'#input'=>TRUE,
@@ -57,19 +63,19 @@ function islandora_form_elements_elements() {
$type['person'] = array(
'#input' => TRUE,
'#process' => array('ife_person_process'),
- '#default_value' => array('fname'=>'', 'lname' => '', 'title' => '', 'role' => ''),
+ '#default_value' => array('name'=>'', 'date'=>'', 'subject'=>'', 'role' => ''),
);
$type['organization'] = array(
'#input' => TRUE,
'#process' => array('ife_org_process'),
- '#default_value' => array( 'organization' => '', 'conference' => ''),
+ '#default_value' => array( 'organization' => '', 'date'=>'', 'subject'=>'', 'role' => ''),
);
$type['conference'] = array(
'#input' => TRUE,
'#process' => array('ife_conf_process'),
- '#default_value' => array( 'conference' => ''),
+ '#default_value' => array( 'conference' => '', 'date'=>'', 'subject'=>'', 'role' => ''),
);
$type['people'] = array(
@@ -79,6 +85,7 @@ function islandora_form_elements_elements() {
$type['datepicker'] = array(
'#input' => TRUE,
+ '#process' => array('ife_datepicker_process'),
);
return $type;
@@ -140,7 +147,7 @@ function ife_people_process($element,$edit,&$form_state)
$people= array();
if (isset($form_state['storage']['people']) && !empty($form_state['storage']['people'])) {
foreach ($form_state['storage']['people'] as $ent) {
- if ( trim($ent['fname']) != '' || trim($ent['lname']) != '' || trim($ent['organization']) != '' || trim($ent['title']) != '' || trim($ent['conference']) != '' || trim($ent['role']) != '' || trim($ent['date']) != '') {
+ if ( trim($ent['name']) != '' || trim($ent['organization']) != '' || trim($ent['conference']) != '' || trim($ent['role']) != '' || trim($ent['date']) != '') {
$people[]=$ent;
}
}
@@ -154,20 +161,21 @@ function ife_people_process($element,$edit,&$form_state)
switch ($json->type)
{
case 'personal':
- $person['fname']=$json->given;
- $person['lname']=$json->family;
- $person['title']=$json->title;
+ $person['name']=$json->name;
$person['role']=$json->role;
+ $person['subject']=$json->subject;
$person['date']=$json->date;
break;
case 'organization':
$person['organization'] = $json->name;
$person['role'] = $json->role;
+ $person['subject']=$json->subject;
break;
case 'conference':
$person['conference'] = $json->name;
$person['role'] = $json->role;
$person['date'] = $json->date;
+ $person['subject']=$json->subject;
break;
}
@@ -185,7 +193,7 @@ function ife_people_process($element,$edit,&$form_state)
}
} else {
- $form_state['storage']['people']=array( array('fname'=>'','lname'=>'', 'title'=>'', 'role'=>'', 'date'=>''));
+ $form_state['storage']['people']=array( array('name'=>'', 'role'=>'', 'date'=>'', 'subject' => ''));
}
}
@@ -273,30 +281,18 @@ function ife_person_process($element)
if (!isset($element['#value']))
{
- $element['#value'] = array('fname'=>'', 'lname' => '');
+ $element['#value'] = array('name'=>'');
}
- $element['fname'] = array(
+ $element['name'] = array(
'#type' => 'textfield',
- '#title'=> t('Given Name(s)'),
+ '#title'=> t('Name(s)'),
'#size' => 30,
- '#value' => $element['#value']['fname'],
+ '#value' => $element['#value']['name'],
+ '#description' => t('Please enter last name first, followed by a comma and first name.'),
);
-
- $element['lname'] = array(
- '#type' => 'textfield',
- '#title' => t('Family Name(s)'),
- '#size' => 30,
- '#value' => $element['#value']['lname'],
- );
-
- $element['title'] = array(
- '#type' => 'textfield',
- '#title' => t('Title'),
- '#size' => 30,
- '#value' => $element['#value']['title'],
- );
+
$element['date'] = array(
'#type' => 'datepicker',
@@ -313,6 +309,14 @@ function ife_person_process($element)
'#value' => $element['#value']['role'],
'#autocomplete_path' => 'autocomplete_marcrelator/',
);
+
+ $element['subject'] = array(
+ '#type' => 'checkbox',
+ '#size'=>30,
+ '#description'=>t('If checked, this person will be listed as a subject term. If selected, role field does not apply.'),
+ '#title' => t('Subject'),
+ '#value' => $element['#value']['subject'],
+ );
$element['remove'] = array(
@@ -339,7 +343,7 @@ function ife_org_process($element)
if (!isset($element['#value']))
{
- $element['#value'] = array('fname'=>'', 'lname' => '');
+ $element['#value'] = array('name'=>'');
}
@@ -351,7 +355,15 @@ function ife_org_process($element)
'#value' => $element['#value']['role'],
'#autocomplete_path' => 'autocomplete_marcrelator/',
);
-
+
+ $element['subject'] = array(
+ '#type' => 'checkbox',
+ '#size'=>30,
+ '#description'=>t('If checked, this organization will be listed as a subject term. If selected, role field does not apply.'),
+ '#title' => t('Subject'),
+ '#value' => $element['#value']['subject'],
+ );
+
$element['organization'] = array(
'#type' => 'textfield',
'#title' => t('Organization'),
@@ -384,7 +396,7 @@ function ife_conf_process($element)
if (!isset($element['#value']))
{
- $element['#value'] = array('fname'=>'', 'lname' => '');
+ $element['#value'] = array('name'=>'');
}
@@ -396,6 +408,13 @@ function ife_conf_process($element)
'#autocomplete_path' => 'autocomplete_marcrelator/',
);
+ $element['subject'] = array(
+ '#type' => 'checkbox',
+ '#size'=>30,
+ '#description'=>t('If checked, this conference will be listed as a subject term. If selected, role field does not apply.'),
+ '#title' => t('Subject'),
+ '#value' => $element['#value']['subject'],
+ );
$element['conference'] = array(
'#type' => 'textfield',
@@ -454,6 +473,30 @@ function ife_sticky_textfield_process($element,$edit,&$form_state)
return $element;
}
+/**
+ * Our process callback to expand the control.
+ */
+function ife_datepicker_process($element,$edit,&$form_state)
+{
+
+
+ if (isset($element['#sticky']) && $element['#sticky'] == TRUE)
+ {
+ $stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
+
+ if (isset($element['#post'][$stickyName]) && strtolower($element['#post'][$stickyName]) == 'on')
+ {
+ $form_state['storage'][$element['#name']]=$element['#value'];
+ } elseif (isset($form_state['storage'][$element['#name']]))
+ {
+ $element['#value'] = $form_state['storage'][$element['#name']];
+ $element['#sticky_on'] = TRUE;
+ }
+ }
+
+ return $element;
+}
+
/**
@@ -481,6 +524,32 @@ function ife_sticky_textarea_process($element,$edit,&$form_state)
return $element;
}
+
+/**
+ * Our process callback to expand the control.
+ */
+function ife_sticky_select_process($element,$edit,&$form_state)
+{
+
+
+ if (isset($element['#sticky']) && $element['#sticky'] == TRUE)
+ {
+ $element['#type'] = 'sticky_select';
+ $stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
+
+ if (isset($element['#post'][$stickyName]) && strtolower($element['#post'][$stickyName]) == 'on')
+ {
+ $form_state['storage'][$element['#name']]=$element['#value'];
+ } elseif (isset($form_state['storage'][$element['#name']]))
+ {
+ $element['#value'] = $form_state['storage'][$element['#name']];
+ $element['#sticky_on'] = TRUE;
+ }
+ }
+
+ return $element;
+}
+
/**
* Our process callback to expand the control.
*/
@@ -488,6 +557,27 @@ function ife_copyright_process($element,$edit,&$form_state) {
module_load_include('inc','islandora_form_elements','includes/creative_commons');
+ if (isset($element['#sticky']) && $element['#sticky'] == TRUE)
+ {
+ $stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
+
+ if (isset($element['#post'][$stickyName]) && strtolower($element['#post'][$stickyName]) == 'on')
+ {
+ $form_state['storage'][$element['#name']]=$element['#value'];
+ } elseif (isset($form_state['storage'][$element['#name']]))
+ {
+ $element['#value'] = $form_state['storage'][$element['#name']];
+ $element['#sticky_on'] = TRUE;
+ }
+ }
+
+ if ($element['#sticky']) {
+ $path=drupal_get_path('module','islandora_form_elements');
+ drupal_add_css($path.'/css/sticky.css');
+ $stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
+ $sticky = (isset($element['#sticky']) && $element['#sticky'] == TRUE?'
':'');
+ }
+
$element['#tree'] = TRUE;
if (isset($element['#value']) && !is_array($element['#value'])) {
@@ -500,7 +590,7 @@ function ife_copyright_process($element,$edit,&$form_state) {
$element['#value'] = array('cc_commercial' => '', 'cc_modifications' => '', 'cc_jurisdiction' => '');
}
- $element['cc'] = array('#type' => 'fieldset', '#title'=>$element['#title'], '#description' => '
preview
' , '#collapsible' => TRUE);
+ $element['cc'] = array('#type' => 'fieldset', '#title'=>$element['#title'], '#description' => $sticky.'preview
' , '#collapsible' => TRUE);
$element['cc']['cc_enable'] = array(
'#type' => 'checkbox',
@@ -579,9 +669,15 @@ function islandora_form_elements_theme() {
'sticky_textfield' => array(
'arguments' => array('element'),
),
+
'sticky_textarea' => array(
'arguments' => array('element'),
),
+
+ 'sticky_select' => array(
+ 'arguments' => array('element'),
+ ),
+
'filechooser' => array(
'arguments' => array('element'),
'file' => 'includes/filechooser.inc'
@@ -625,7 +721,7 @@ function theme_copyright($element)
$path=drupal_get_path('module','islandora_form_elements');
drupal_add_js($path.'/js/copyright.js');
drupal_add_css($path.'/css/copyright.css');
-
+
return theme('form_element', $element, $element['#children']);
}
@@ -672,11 +768,13 @@ function theme_list($element)
$output .= ' '. $element['#field_suffix'] .'';
}
- $stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
- $output .= (isset($element['#sticky']) && $element['#sticky'] == TRUE?' Sticky?':'') . '';
+ $path=drupal_get_path('module','islandora_form_elements');
+ drupal_add_css($path.'/css/sticky.css');
+ $stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
+ $sticky = (isset($element['#sticky']) && $element['#sticky'] == TRUE?'
':'');
- return theme('form_element', $element, $output ) . $extra;
+ return theme('form_element', $element, $output . $sticky ) . $extra;
}
@@ -696,6 +794,7 @@ function theme_list($element)
function theme_sticky_textarea($element) {
$class = array('form-textarea');
+
// Add teaser behavior (must come before resizable)
if (!empty($element['#teaser'])) {
drupal_add_js('misc/teaser.js');
@@ -711,8 +810,10 @@ function theme_sticky_textarea($element) {
$class[] = 'resizable';
}
+ $path=drupal_get_path('module','islandora_form_elements');
+ drupal_add_css($path.'/css/sticky.css');
$stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
- $sticky = (isset($element['#sticky']) && $element['#sticky'] == TRUE?' Sticky?':'');
+ $sticky = (isset($element['#sticky']) && $element['#sticky'] == TRUE?'
':'');
_form_set_class($element, $class);
@@ -720,6 +821,33 @@ function theme_sticky_textarea($element) {
}
+
+/**
+ * Format a sticky select.
+ *
+ * @param $element
+ * An associative array containing the properties of the element.
+ * Properties used: title, value, description, rows, cols, required, attributes
+ * @return
+ * A themed HTML string representing the textarea.
+ *
+ * @ingroup themeable
+ */
+function theme_sticky_select($element) {
+ $path=drupal_get_path('module','islandora_form_elements');
+ drupal_add_css($path.'/css/sticky.css');
+ $stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
+ $sticky = (isset($element['#sticky']) && $element['#sticky'] == TRUE?'
':'');
+
+
+ $select = '';
+ $size = $element['#size'] ? ' size="'. $element['#size'] .'"' : '';
+ _form_set_class($element, array('form-select'));
+ $multiple = $element['#multiple'];
+ return theme('form_element', $element, ''.$sticky);
+}
+
+
/**
* Theme function to format the output.
*
@@ -759,11 +887,14 @@ function theme_datepicker($element) {
$output .= ' '. $element['#field_suffix'] .'';
}
+ $path=drupal_get_path('module','islandora_form_elements');
+ drupal_add_css($path.'/css/sticky.css');
$stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
- $output .= (isset($element['#sticky']) && $element['#sticky'] == TRUE?' Sticky?':'') . '';
+ $sticky = (isset($element['#sticky']) && $element['#sticky'] == TRUE?'
':'');
+
- return theme('form_element', $element, $output ) . $extra;
+ return theme('form_element', $element, $output.$sticky ) . $extra;
}
@@ -803,11 +934,14 @@ function theme_sticky_textfield($element) {
$output .= ' '. $element['#field_suffix'] .'';
}
+ $path=drupal_get_path('module','islandora_form_elements');
+ drupal_add_css($path.'/css/sticky.css');
$stickyName = preg_replace('/\]/','',array_pop(preg_split('/\[/',$element['#name']))).'-sticky';
- $output .= (isset($element['#sticky']) && $element['#sticky'] == TRUE?' Sticky?':'') . '';
+ $sticky = (isset($element['#sticky']) && $element['#sticky'] == TRUE?'
':'');
+
- return theme('form_element', $element, $output ) . $extra;
+ return theme('form_element', $element, $output . $sticky) . $extra;
}
diff --git a/ilives/book.inc b/ilives/book.inc
index d05f41d4..f3de4f00 100644
--- a/ilives/book.inc
+++ b/ilives/book.inc
@@ -21,6 +21,15 @@ class IslandoraBook {
// Set #cache to true to create the $form_state cache
$form['#cache'] = TRUE;
+
+ // Give the user an option to enter a custom PID
+ $form['custom_pid'] = array(
+ '#type' => 'textfield',
+ '#title' => 'Custom PID',
+ '#description' => 'If you want to manually specify the PID for the new object, enter it here. '.
+ 'Leave it blank for an automatically-generated PID.',
+ );
+
// Prompt the user to enter a record ID to be looked up in Evergreen.
$form['unapi_url'] = array(
'#type' => 'textfield',
@@ -90,7 +99,7 @@ class IslandoraBook {
return TRUE;
}
- public function handleIngestForm($form_values, $form, &$form_state) {
+ public function handleIngestForm($form_values) {
/*
* process the metadata form
* Create fedora object
@@ -115,16 +124,21 @@ class IslandoraBook {
global $user;
$mimetype = new MimeClass();
- $new_item = Fedora_Item::ingest_new_item($form_values['pid'], 'A', $title,
+
+ $new_item = Fedora_Item::ingest_new_item(!empty($form_values['custom_pid']) ? $form_values['custom_pid'] : $form_values['pid'], 'A', $title,
$user->name);
$new_item->add_datastream_from_string($form_values['mods']['mods_record'], 'MODS',
'MODS Metadata', 'text/xml', 'X');
+ $dc = transform_mods_to_dc($form_values['mods']['mods_record']);
+ if ($dc) {
+ $new_item->modify_datastream_by_value($dc, 'DC', 'Dublin Core XML Metadata', 'text/xml');
+ }
$new_item->add_relationship('hasModel', $form_values['content_model_pid'], FEDORA_MODEL_URI);
$new_item->add_relationship(!empty($form_values['relationship']) ? $form_values['relationship'] : 'isMemberOfCollection', $form_values['collection_pid']);
}
-
+
public function buildAddPagesForm($form = array()) {
}
@@ -248,3 +262,25 @@ function ilives_add_single_page_object($book_pid, $page_file, $page_num = 1, $pa
$page_item->add_relationship('isMemberOf', $book_pid);
$page_item->add_datastream_from_file($page_file, 'TIFF', 'Archival TIFF', 'image/tiff', 'M');
}
+
+function transform_mods_to_dc($mods) {
+ $xp = new XsltProcessor();
+ // create a DOM document and load the XSL stylesheet
+ $xsl = new DomDocument;
+ $xsl->load(drupal_get_path('module', 'fedora_ilives').'/xsl/MODS3-22simpleDC.xsl');
+
+ // import the XSL styelsheet into the XSLT process
+ $xp->importStylesheet($xsl);
+
+ // create a DOM document and load the XML datat
+ $xml_doc = new DomDocument;
+ $xml_doc->loadXML($mods);
+
+ // transform the XML into HTML using the XSL file
+ if ($dc = $xp->transformToXML($xml_doc)) {
+ return $dc;
+ }
+ else {
+ return FALSE;
+ }
+}
\ No newline at end of file
diff --git a/ilives/fedora_ilives.module b/ilives/fedora_ilives.module
index 1e40ce7b..84a4b4a5 100644
--- a/ilives/fedora_ilives.module
+++ b/ilives/fedora_ilives.module
@@ -203,9 +203,11 @@ function fedora_ilives_create_book_view($pid, $query = NULL) {
$simpleDCxml = simplexml_load_string($dc_xml);
$types = $simpleDCxml->xpath('//dc:type');
$ingested = 'false';
- foreach ($types as $type) {
- if ($type == 'ingested') {
- $ingested = 'true';
+ if (!empty($types)) {
+ foreach ($types as $type) {
+ if ($type == 'ingested') {
+ $ingested = 'true';
+ }
}
}
diff --git a/ilives/xsl/MODS3-22simpleDC.xsl b/ilives/xsl/MODS3-22simpleDC.xsl
new file mode 100644
index 00000000..4a4eff8d
--- /dev/null
+++ b/ilives/xsl/MODS3-22simpleDC.xsl
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+ .
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Collection
+
+
+ DataSet
+
+
+ Service
+
+
+ Software
+
+
+ Image
+
+
+ InteractiveResource
+
+
+ MovingImage
+
+
+ PhysicalObject
+
+
+ Sound
+
+
+ StillImage
+
+
+ Text
+
+
+ Text
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+ --
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ,
+
+
+
+ ,
+
+
+
+
+ (
+
+ )
+
+
+ (
+
+ )
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/ImageManipulation.inc b/plugins/ImageManipulation.inc
index 2e2f9b1c..9971c367 100644
--- a/plugins/ImageManipulation.inc
+++ b/plugins/ImageManipulation.inc
@@ -17,8 +17,14 @@ class ImageManipulation {
function createPreview($parameterArray, $dsid, $file, $file_ext) {
$system = getenv('System');
$file_suffix = '_' . $dsid . '.' . $file_ext;
- $height = $parameterArray['height'];
- $width = $parameterArray['width'];
+ $width = $parameterArray['width'];
+
+ if (!isset($parameterArray['height'])) {
+ $height = $width;
+ } else {
+ $height = $parameterArray['height'];
+ }
+
$returnValue = TRUE;
$output = array();
@@ -29,7 +35,7 @@ class ImageManipulation {
}
if (!file_exists($destFile)) {
- exec('convert -resize ' . $width . ' -quality 85 "' . $file . '"[0] -strip "' .$destFile . '" 2>&1 &', $output, $returnValue);
+ exec('convert -resize ' . $width . 'x'.$height.' -quality 85 "' . $file . '"[0] -strip "' .$destFile . '" 2>&1 &', $output, $returnValue);
}
else
$returnValue = '0';
diff --git a/plugins/nmlt/scorm.inc b/plugins/nmlt/scorm.inc
index 09b05076..13c77f4c 100644
--- a/plugins/nmlt/scorm.inc
+++ b/plugins/nmlt/scorm.inc
@@ -99,26 +99,28 @@ class SCORMObject {
//$result = db_query("SELECT * FROM {content_node_field} nf INNER JOIN {content_node_field_instance} ni ON nf.field_name = ni.field_name WHERE nf.type='field_fedora_pid_reference'");
fedora_pidfield_redirect_to_node($this);
- module_load_include('module', 'SCORM', 'SCORM');
- $dest_array = explode('/', urldecode(drupal_get_destination()));
- $nid = $dest_array[count($dest_array) - 1];
- $node = node_load($nid);
-
- $tabset = array();
-
- $tabset['my_tabset'] = array(
- '#type' => 'tabset',
- );
-
- $tabset['my_tabset']['first_tab'] = array(
+ $tabset['my_tabset']['first_tab'] = array(
'#type' => 'tabpage',
'#title' => t('Description'),
);
- $tabset['my_tabset']['second_tab'] = array(
- '#type' => 'tabpage',
- '#title' => t('Results'),
- '#content' => scorm_show_results($node),
- );
+ if (module_load_include('module', 'SCORM', 'SCORM')) {
+ $dest_array = explode('/', urldecode(drupal_get_destination()));
+ $nid = $dest_array[count($dest_array) - 1];
+ $node = node_load($nid);
+
+ $tabset = array();
+
+ $tabset['my_tabset'] = array(
+ '#type' => 'tabset',
+ );
+ $tabset['my_tabset']['second_tab'] = array(
+ '#type' => 'tabpage',
+ '#title' => t('Results'),
+ '#content' => scorm_show_results($node),
+ );
+ }
+
+
module_load_include('inc', 'fedora_repository', 'ObjectHelper');
$obj = new ObjectHelper();
$tabset['my_tabset']['first_tab']['tabset'] = array(
diff --git a/workflow_client/plugins/image_resize.inc b/workflow_client/plugins/image_resize.inc
index 9bbae454..d7e31b3a 100644
--- a/workflow_client/plugins/image_resize.inc
+++ b/workflow_client/plugins/image_resize.inc
@@ -39,7 +39,7 @@ class image_resize extends Process {
$returnValue = TRUE;
$output = array();
- $command = 'convert -resize '. $parameters['width'] .' -quality 85 '. $file . '[0] -strip '. $file . $file_suffix .' 2>&1 &';
+ $command = 'convert -resize '. $parameters['width'].(isset($parameters['height'])?'x'.$parameters['height']:'') .' -quality 85 '. $file . '[0] -strip '. $file . $file_suffix .' 2>&1 &';
exec($command, $output, $returnValue);
if (!file_exists($file . $file_suffix)) {