Difference between revisions of "Accessing Metdata Fields"

From EPrints Documentation
Jump to: navigation, search
(redirect to corrected typo page)
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
−
This page proves an overview of the API calls you can use to access the data in a DataObj.  The example framing this is that of an export plugin.
+
#REDIRECT [[Accessing Metadata Fields]]
−
 
 
−
== The Plugin ==
 
−
 
 
−
Below is a very simple export plugin, which outputs a single eprint or list of eprints as Text citations.
 
−
 
 
−
<pre>
 
−
package EPrints::Plugin::Export::Text;
 
−
 
 
−
use EPrints::Plugin::Export::TextFile;
 
−
 
 
−
@ISA = ( "EPrints::Plugin::Export::TextFile" );
 
−
 
 
−
use strict;
 
−
 
 
−
sub new
 
−
{
 
−
        my( $class, %opts ) = @_;
 
−
 
 
−
        my $self = $class->SUPER::new( %opts );
 
−
 
 
−
        $self->{name} = "ASCII Citation";
 
−
        $self->{accept} = [ 'dataobj/eprint', 'list/eprint' ];
 
−
        $self->{visible} = "all";
 
−
 
 
−
        return $self;
 
−
}
 
−
 
 
−
 
 
−
sub output_dataobj
 
−
{
 
−
        my( $plugin, $dataobj ) = @_;
 
−
 
 
−
        my $cite = $dataobj->render_citation;
 
−
 
 
−
        return EPrints::Utils::tree_to_utf8( $cite )."\n\n";
 
−
}
 
−
 
 
−
1;
 
−
</pre>
 
−
 
 
−
Note the output_dataobj function.  In an export plugin, this will be called on every item in the list that is being exported, and the results for all items aggregated and outputted.
 
−
 
 
−
There are two function calls of particular interest that aid in retrieving and managing data:
 
−
 
 
−
<pre>
 
−
my $cite = $dataobj->render_citation;
 
−
</pre>
 
−
 
 
−
This returns an HTML DOM object containing the citation of the dataobj as specified in the configuration files (see cfg/citations/eprint/default.xml).  Given an HTML DOM object, the following call will convert it into a string:
 
−
 
 
−
<pre>
 
−
my $text = EPrints::Utils::tree_to_utf8( $html_dom )
 
−
</pre>
 
−
 
 
−
== Accessing Metadata ==
 

Latest revision as of 13:37, 3 June 2016