Skip to content

Commit

Permalink
Add javascript to export citations to RIS and BibTeX formats
Browse files Browse the repository at this point in the history
  • Loading branch information
mah0001 committed Jan 8, 2024
1 parent 9567489 commit c645541
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 6 deletions.
2 changes: 1 addition & 1 deletion application/libraries/Datacite_citation.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ function export($sid=null,$format='ris')
];

$context = stream_context_create($stream_options);
$response = file_get_contents('https://doi.org/10.1126/science.169.3946.635', false, $context);
$response = file_get_contents($doi, false, $context);
$filename=$survey['idno'].'-citation.'.$format;

header("Cache-Control: public");
Expand Down
61 changes: 56 additions & 5 deletions application/views/display_templates/fields/field_doi-citation.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
$formats=array(
'ris'=>'RIS',
'bib'=>'BibTeX',
'json'=>'JSON',
'rdf'=>'RDF',
//'json'=>'JSON',
//'rdf'=>'RDF',
'txt'=>'Plain text',
//'endnote'=>'EndNote',
//'refworks'=>'RefWorks'
Expand All @@ -59,10 +59,12 @@
$export_links=[];
?>
<?php foreach($formats as $format_key=>$format):?>
<?php $export_links[]='<a href="'.site_url('study/export_citation/'.$metadata['id'].'/'.$format_key).'">'.$format.'</a>'; ?>
<?php $export_links[]='<a onclick="citation_export('."'".$format_key."'".')" href="#'.$format_key.'">'.$format.'</a>'; ?>
<?php endforeach;?>

<?php echo implode(' | ',$export_links);?>

<div id="export-citation-status"></div>
</div>

</div>
Expand Down Expand Up @@ -96,12 +98,61 @@ function get_citation_by_doi()
});
}

$(document).ready(function(){
function citation_export(format='txt')
{
var doi='<?php echo $doi;?>';
var url='https://doi.org/'+doi;
var citation_export_status=$('#export-citation-status');
var formats={
'ris':'application/x-research-info-systems',
'bib':'application/x-bibtex',
'xml':'application/xml',
'json':'application/json',
'rdf':'application/rdf+xml',
'rdf_turtle':'text/turtle',
'txt':'text/x-bibliography',
};

citation_export_status.html('<i class="fas fa-spinner fa-spin"></i> exporting, please wait...');

$.ajax({
url: url,
dataType: 'html',
headers:{
Accept: formats[format]
},
success: function(data){
var citation=data;
js_download('citation.'+format,citation);
citation_export_status.html('');
},
error: function(data){
citation_export_status.html('<i class="fas fa-exclamation-triangle"></i> Citation is not available.');
}
});
}

function js_download(filename, text)
{
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);

element.style.display = 'none';
document.body.appendChild(element);

element.click();
document.body.removeChild(element);
}

$(document).ready(function()
{
get_citation_by_doi();

$("#doi_format").change(function(){
get_citation_by_doi();
});
});

});

</script>

0 comments on commit c645541

Please sign in to comment.