<?php /** * @file * ShowStreamsInFieldSets class */ /** * Show Streams In Field Sets ?? */ class ShowStreamsInFieldSets { private $pid = NULL; /** * Constructor * @param type $pid */ function ShowStreamsInFieldSets($pid) { $this->pid = $pid; } /** * Show the FLV ?? * @return type */ function showFlv() { //FLV is the datastream id $path = drupal_get_path('module', 'Fedora_Repository'); $fullPath = base_path() . $path; $content = ""; $pathTojs = drupal_get_path('module', 'Fedora_Repository') . '/js/swfobject.js'; drupal_add_js("$pathTojs"); $content .= '<div id="player' . $this->pid . 'FLV"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>'; drupal_add_js('var s1 = new SWFObject("' . $fullPath . '/flash/flvplayer.swf","single","320","240","7"); s1.addParam("allowfullscreen","TRUE"); s1.addVariable("file","' . base_path() . 'fedora/repository/' . $this->pid . '/FLV/FLV.flv"); s1.write("player' . $this->pid . 'FLV");', 'inline', 'footer'); $collection_fieldset = array( '#title' => t('Flash Video'), '#collapsible' => TRUE, '#collapsed' => FALSE, '#value' => $content); return theme('fieldset', $collection_fieldset); } /** * Show the TN ?? * @global type $base_url * @return type */ function showTN() { global $base_url; $collection_fieldset = array( '#title' => '', '#attributes' => array(), '#collapsible' => FALSE, '#value' => '<a href="' . $base_url . '/fedora/repository/' . $this->pid . '/OBJ/"><img src="' . $base_url . '/fedora/repository/' . $this->pid . '/TN/TN' . '" /></a>', ); return theme('fieldset', $collection_fieldset); } /** * Same as showTN but artinventory stores the image in a dsid of IMAGE instead of OBJ * @global type $base_url * @return type */ function showArtInventoryTN() { global $base_url; $collection_fieldset = array( '#collapsible' => FALSE, '#value' => '<a href="' . $base_url . '/fedora/repository/' . $this->pid . '/IMAGE/image.jpg"><img src="' . $base_url . '/fedora/repository/' . $this->pid . '/TN/TN' . '" /></a>', ); return theme('fieldset', $collection_fieldset); } /** * Embed Google Docs' PDF viewer into the page. * @global type $base_url * @global type $base_path * @global type $user * @return type */ function showPDFPreview() { global $base_url; global $base_path; global $user; module_load_include('inc', 'fedora_repository', 'api/fedora_item'); $tabset = array(); $tabset['first_tab'] = array( '#type' => 'tabpage', '#title' => t('Description'), ); $tabset['first_tab']['tabs'] = array( '#type' => 'tabset', ); $objectHelper = new ObjectHelper(); $item = new Fedora_Item($this->pid); if (key_exists('TN', $item->datastreams)) { $tn_url = $base_url . '/fedora/repository/' . $item->pid . '/TN'; } else { $tn_url = $base_path . drupal_get_path('module', 'fedora_repository') . '/images/Crystal_Clear_app_download_manager.png'; } $dc_html = $objectHelper->getFormattedDC($item); $dl_link = l('<div style="float:left; padding: 10px"><img src="' . $tn_url . '"><br />' . t('View Document') .'</div>', 'fedora/repository/' . $this->pid . '/OBJ', array('html' => TRUE)); $tabset['first_tab']['tabs']['view'] = array( '#type' => 'tabpage', '#title' => t('View'), '#content' => $dl_link . $dc_html, ); if (fedora_repository_access(OBJECTHELPER :: $EDIT_FEDORA_METADATA, $this->pid, $user)) { $editform = drupal_get_form('fedora_repository_edit_qdc_form', $this->pid, 'DC'); $tabset['first_tab']['tabs']['edit'] = array( '#type' => 'tabpage', '#title' => t('Edit'), '#content' => $editform, ); } $tabset['second_tab'] = array( '#type' => 'tabpage', '#title' => t('Read Online'), '#content' => "<iframe src=\"http://docs.google.com/viewer?url=" . $base_url . '/fedora/repository/' . $this->pid . '/OBJ/preview.pdf' . "&embedded=TRUE\" style=\"width:600px; height:500px;\" frameborder=\"0\"></iframe>" ); // Render the tabset. return $tabset; } /** * Show QDC ?? * @return type */ function showQdc() { module_load_include('inc', 'fedora_repository', 'ObjectHelper'); $objectHelper = new ObjectHelper(); $content = $objectHelper->getQDC($this->pid); $collection_fieldset = array( '#title' => t('Description'), '#collapsible' => TRUE, '#collapsed' => FALSE, '#value' => $content, ); return theme('fieldset', $collection_fieldset); } /** * Show Object Link ?? * @global type $base_url * @return type */ function showOBJLink() { global $base_url; module_load_include('inc', 'fedora_repository', 'api/fedora_item'); $item = new Fedora_Item($this->pid); $streams = $item->get_datastreams_list_as_array(); return "<a href='" . $base_url . "/fedora/repository/" . $this->pid . "/OBJ/" . $streams['OBJ']['label'] . "'>" . $streams['OBJ']['label'] . "</a>"; } /** * Show REF works ?? * @return type */ function showRefworks() { $path = drupal_get_path('module', 'fedora_repository'); module_load_include('inc', 'fedora_repository', 'ObjectHelper'); $collectionHelper = new CollectionClass(); $xmlstr = $collectionHelper->getStream($this->pid, "refworks"); html_entity_decode($xmlstr); if ($xmlstr == NULL || strlen($xmlstr) < 5) { return " "; } try { $proc = new XsltProcessor(); } catch (Exception $e) { drupal_set_message(t('@e', array('@e' => check_plain($e->getMessage()))), 'error'); return " "; } $xsl = new DomDocument(); $xsl->load($path . '/xsl/refworks.xsl'); $input = new DomDocument(); $input->loadXML(trim($xmlstr)); $xsl = $proc->importStylesheet($xsl); $newdom = $proc->transformToDoc($input); $content = $newdom->saveXML(); $collection_fieldset = array( '#title' => t('Refworks'), '#collapsible' => TRUE, '#collapsed' => FALSE, '#value' => $content); return theme('fieldset', $collection_fieldset); } /** * Show JP2000 * @param type $collapsed * @return type */ function showJP2($collapsed = FALSE) { $viewer_url = variable_get('fedora_base_url', '') . '/get/' . $this->pid . '/ilives:viewerSdef/getViewer'; $html = '<iframe src="' . $viewer_url . '" frameborder="0" style="width: 100%; height: 400px;">Errors: unable to load viewer</iframe>'; $fieldset = array( '#title' => t('Viewer'), '#collapsible' => TRUE, '#collapsed' => $collapsed, '#value' => $html ); return theme('fieldset', $fieldset); } /** * Show Romeo ?? * @param type $collapsed * @return type */ function showRomeo($collapsed = FALSE) { $path = drupal_get_path('module', 'Fedora_Repository'); module_load_include('inc', 'fedora_repository', 'CollectionClass'); $collectionHelper = new CollectionClass(); $xmlstr = $collectionHelper->getStream($this->pid, "ROMEO", 0); if ($xmlstr == NULL || strlen($xmlstr) < 5) { return " "; } try { $proc = new XsltProcessor(); } catch (Exception $e) { drupal_set_message(t('@e', array('@e' => check_plain($e->getMessage()))), 'error'); return; } $xsl = new DomDocument(); $xsl->load($path . '/xsl/romeo.xsl'); $input = new DomDocument(); $input->loadXML(trim($xmlstr)); $xsl = $proc->importStylesheet($xsl); $newdom = $proc->transformToDoc($input); $content = $newdom->saveXML(); $collection_fieldset = array( '#title' => t('Romeo'), '#collapsible' => TRUE, '#collapsed' => $collapsed, '#value' => $content ); return theme('fieldset', $collection_fieldset); } }