Server IP : 103.11.96.170 / Your IP : 18.118.31.32 Web Server : Microsoft-IIS/10.0 System : Windows NT WIN-F6SLGVICLOP 10.0 build 17763 (Windows Server 2016) AMD64 User : elibrary.unsap.ac.id ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF Directory (0777) : D:/localhost/elibrary/lib/oaipmh/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php /** * \file * \brief Response to Verb GetRecord * * Retrieve a record based its identifier. * * Local variables <B>$metadataPrefix</B> and <B>$identifier</B> need to be provided through global array variable <B>$args</B> * by their indexes 'metadataPrefix' and 'identifier'. * The reset of information will be extracted from database based those two parameters. */ debug_message("\nI am debuging". __FILE__) ; $metadataPrefix = $args['metadataPrefix']; // myhandler is a php file which will be included to generate metadata node. // $inc_record = $METADATAFORMATS[$metadataPrefix]['myhandler']; if (is_array($METADATAFORMATS[$metadataPrefix]) && isset($METADATAFORMATS[$metadataPrefix]['myhandler'])) { $inc_record = $METADATAFORMATS[$metadataPrefix]['myhandler']; } else { $errors[] = oai_error('cannotDisseminateFormat', 'metadataPrefix', $metadataPrefix); } $identifier = $args['identifier']; $query = selectallQuery($metadataPrefix, $identifier); debug_message("Query: $query") ; $res = $db->query($query); if ($res===false) { if (SHOW_QUERY_ERROR) { echo __FILE__.','.__LINE__."<br />"; echo "Query: $query<br />\n"; die($db->errorInfo()); } else { $errors[] = oai_error('idDoesNotExist', '', $identifier); } } elseif (!$res->rowCount()) { // based on PHP manual, it might only work for some DBs $errors[] = oai_error('idDoesNotExist', '', $identifier); } if (!empty($errors)) { oai_exit(); } $record = $res->fetch(PDO::FETCH_ASSOC); if ($record===false) { if (SHOW_QUERY_ERROR) { echo __FILE__.','.__LINE__."<br />"; echo "Query: $query<br />\n"; } $errors[] = oai_error('idDoesNotExist', '', $identifier); } $identifier = $record[$SQL['identifier']];; $datestamp = formatDatestamp($record[$SQL['datestamp']]); if (isset($record[$SQL['deleted']]) && ($record[$SQL['deleted']] == 'true') && ($deletedRecord == 'transient' || $deletedRecord == 'persistent')) { $status_deleted = TRUE; } else { $status_deleted = FALSE; } $outputObj = new ANDS_Response_XML($args); $cur_record = $outputObj->create_record(); $cur_header = $outputObj->create_header($identifier, $datestamp,$record[$SQL['set']],$cur_record); // return the metadata record itself if (!$status_deleted) { include($inc_record); // where the metadata node is generated. create_metadata($outputObj, $cur_record, $identifier, $record[$SQL['set']], $db); } else { $cur_header->setAttribute("status","deleted"); } ?>