Esempio n. 1
0
} elseif (isset($args['resumptionToken'])) {
    $restoken = $args['resumptionToken'];
    // just used as an indicator
    unset($expirationdatetime);
}
// this don't work on mysql
/*
if (isset($args['resumptionToken'])) {
	debug_message("Try to resume because a resumptionToken supplied.") ;
	$record = $res->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, $deliveredrecords); 
}
*/
// Record counter
$countrec = 0;
// Publish a batch to $maxrec number of records
$outputObj = new ANDS_Response_XML($args);
while ($countrec++ < $maxrec) {
    $record = $res->fetch(PDO::FETCH_ASSOC);
    //print_r($record);
    if ($record === false) {
        if (SHOW_QUERY_ERROR) {
            echo __FILE__ . "," . __LINE__ . "<br />";
            print_r($db->errorInfo());
            exit;
        }
    }
    $identifier = $record[$SQL['identifier']];
    $datestamp = formatDatestamp($record[$SQL['datestamp']]);
    $setspec = $record[$SQL['set']];
    // debug_var_dump('record', $record);
    if (isset($record[$SQL['deleted']]) && $record[$SQL['deleted']] === true && ($deletedRecord == 'transient' || $deletedRecord == 'persistent')) {
Esempio n. 2
0
<?php

/**
 * \file
 * \brief Response to Verb ListSets
 *
 * Lists what sets are available to records in the system. 
 */
// Here the size of sets is small, no resumptionToken is taken care.
if (is_array($SETS)) {
    $outputObj = new ANDS_Response_XML($args);
    foreach ($SETS as $set) {
        $setNode = $outputObj->add2_verbNode("set");
        foreach ($set as $key => $val) {
            if ($key == 'setDescription') {
                $desNode = $outputObj->addChild($setNode, $key);
                $des = $outputObj->doc->createDocumentFragment();
                $des->appendXML($val);
                $desNode->appendChild($des);
            } else {
                $outputObj->addChild($setNode, $key, $val);
            }
        }
    }
} else {
    $errors[] = oai_error('noSetHierarchy');
    oai_exit();
}
Esempio n. 3
0
    $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");
}
Esempio n. 4
0
 * Tell the world what the data provider is. Usually it is static once the provider has been set up.
 *
 * \see http://www.openarchives.org/OAI/2.0/guidelines-oai-identifier.htm for details
 */

// The response to Identify is fixed
if (SHOW_QUERY_ERROR) {
	echo "Here are some settings in raw format:\n";
  print_r($identifyResponse);
	echo 'MAXRECORDS ',MAXRECORDS, ', MAXIDS ', MAXIDS,"\n";
  echo 'Token is valid for ',TOKEN_VALID," seconds\n";
  echo 'Tokens have prefix: ',TOKEN_PREFIX,"\n";
  echo 'XMLSCHEMA: ',XMLSCHEMA,"\n";
  echo "\n";
}
$outputObj = new ANDS_Response_XML($args);
foreach($identifyResponse as $key => $val) {
	$outputObj->add2_verbNode($key, $val);
    
    // adminEmail comes after protocolVersion
    if ($key === 'protocolVersion') {
        foreach ($adminEmail as $val) {
            $outputObj->add2_verbNode("adminEmail", $val);
        }
    }
}

if(isset($compression)) {
	foreach($compression as $val) {
		$outputObj->add2_verbNode("compression", $val);
	}
Esempio n. 5
0
}

$record = $res[0];
if ($record===false) {
	if (SHOW_QUERY_ERROR) {
		echo __FILE__.','.__LINE__."<br />";
	}
	$errors[] = oai_error('idDoesNotExist', '', $identifier);	
}

$datestamp = formatDatestamp($record->{$SQL['datestamp']}); 

if (isset($record->{$SQL['deleted']}) && (intval($record->{$SQL['deleted']}) === 1) &&
        ($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($record->{$SQL['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, $record->{$SQL['identifier']}, $record->{$SQL['set']});
}	else {
	$cur_header->setAttribute("status","deleted");
}  
?>