Mercurial > hg > digitalobjects
view digitalobject_reader.php~ @ 0:6f6e07baad80 default tip
initial
author | Dirk Wintergruen <dwinter@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 02 Jun 2015 08:57:48 +0200 |
parents | |
children |
line wrap: on
line source
<?php /* function reads the metadata from index meta and gives it back to the * template. */ #http://localhost:18080/ECHOdocuView/getDocinfo?mode=imagepath&url=http://md.mpiwg-berlin.mpg.de/indexMeta/MPIWG:WEBVEZ22 function digitalobject_getMetadata($objid){ $base = variable_get('digitalobjects_docuviewer_path'); #$path="http://localhost:18080/ECHOdocuView/getDocinfoJSON?mode=texttool&url=http://md.mpiwg-berlin.mpg.de/indexMeta/" . $objid; $path = $base . "/getDocinfoJSON?mode=texttool&url=http://md.mpiwg-berlin.mpg.de/indexMeta/" . $objid; $request = drupal_http_request($path); #TODO give out a status message reports if servers is not available if (isset($request->data)){ return drupal_json_decode($request->data); } else { return null; } } function digitalobjects_getBibFormattedMetaData($bibdata){ $bd = drupal_json_encode($bibdata); $base = variable_get('digitalobjects_bibdata_path'); #$path="http://localhost:18080/metadata/getBibFormattedMetaDataJSON"; $path = $base ."/getBibFormattedMetaDataJSON"; $options = array( 'method' => 'POST', 'data' => 'bibdata=' . $bd ); $request = drupal_http_request($path, $options); return drupal_json_decode($request->data); } function digitalobjects_getBibFormattedDC($bibdata){ $bd = drupal_json_encode($bibdata); $base = variable_get('digitalobjects_bibdata_path'); #$path="http://localhost:18080/metadata/getDCMappedDataJSON"; $path = $base ."/getDCMappedData"; $options = array( 'method' => 'POST', 'data' => 'bibdata=' . $bd ); $request = drupal_http_request($path, $options); #return drupal_json_decode($request->data); return drupal_json_decode($request->data); } function digitalobjects_getBibFormattedLabel($bibdata){ $bd = drupal_json_encode($bibdata); $base = variable_get('digitalobjects_bibdata_path'); #$path="http://localhost:18080/metadata/getBibFormattedMetaDataJSON"; $path = $base ."/getBibFormattedLabelJSON"; $options = array( 'method' => 'POST', 'data' => 'bibdata=' . $bd ); $request = drupal_http_request($path, $options); return drupal_json_decode($request->data); } function digitalobjects_getBibMappedData($bibdata){ $bd = drupal_json_encode($bibdata); $base = variable_get('digitalobjects_bibdata_path'); #$path="http://localhost:18080/metadata/getBibFormattedMetaDataJSON"; $path = $base ."/getBibMappedDataJSON"; $options = array( 'method' => 'POST', 'data' => 'bibdata=' . $bd ); $request = drupal_http_request($path, $options); return drupal_json_decode($request->data); } #here.metadata.getBibFormattedMetaData(bibdata=docinfo.get('bib', None)) function digitalobjects_readMetadata($objid_full,$format="long"){ //objid_full can have the structure ID/Pagenumber $objid_parts = explode("/",$objid_full); $objid=$objid_parts[0]; if (isset($objid_parts[1])){ $pn=$objid_parts[1]; $pn_set=true; } else { $pn="1"; $pn_set=false; } $md = digitalobject_getMetadata($objid); switch($format){ case "long": $bib = isset($md['bib']) ?digitalobjects_getBibFormattedMetaData($md['bib']): null; break; case "short": $bib = isset($md['bib']) ?digitalobjects_getBibFormattedLabel($md['bib']): null; break; case "DC": $bibArray = isset($md['bib']) ?digitalobjects_getBibFormattedDC($md['bib']): null; if (count($bibArray) == 0) { $bibArray = array ( "creator" => $md['creator'], "title" => $md['title'], "date" => $md['date'] ); } $bib = '<metadata xmlns:DC="http://purl.org/dc/terms/">'; foreach ($bibArray as $key => $value){ $bib = $bib . "<DC:" . $key .">" . $value . "</DC:" . $key . ">"; } $bib = $bib . '</metadata>'; } // close switch if ($bib == null) { $bibdata = array ( "Author" => $md['creator'], "Title" => $md['title'], "Date" => $md['date'] ); $bib=""; /*foreach ($bibdata as $key => $content){ $bib = $bib . '<tr><td class="type">' . $key . '</td> <td class="content">' . $content . '</td></tr>'; } */ foreach ($bibdata as $key => $content){ $bib = $bib . '<span class="type">' . $key . ':</span> <span class="content">' . $content . ' </span>'; } } $access_type = isset($md['accessType']) ? $md['accessType'] : 'mpiwg'; if ($pn_set){ $titlepage=$pn; // im parameter war die Seitenzahl gesetzt. } else { $titlepage = isset($md['titlePage']) ? $md['titlePage'] : 1; } $data = array( "thumburl" => create_thumburl_from_dri($objid,$titlepage=$titlepage), "viewerurl" => create_url_from_dri($objid,$access_type = $access_type,$titlepage=$titlepage), "md" => $md, "bibdata" => $bib, "access_type" => $access_type, ); return $data; } function create_library_path($id){ return "http://141.14.236.36/fmi/xsl/katalog/browserecord.xsl?-db=katalog&-lay=fullrecord&-encoding=UTF-8&-grammar=fmresultset&-max=1&Biblio::ID=" . $id . "&-find="; } function create_url_from_dri($dri,$access_type = "closed",$pn="1"){ if ($access_type=="free"){ return "http://echo.mpiwg-berlin.mpg.de/".$dri . "?pn=" . $pn; } else return "http://libcoll.mpiwg-berlin.mpg.de/".$dri . "?pn=" . $pn; } function create_thumburl_from_dri($dri,$titlepage=1){ return "http://md.mpiwg-berlin.mpg.de/purls/image/".$dri."?pn=" . $titlepage; }