Difference between revisions of "Contribute: Plugins/ExportPluginsHelloOld"
(→Hello, World!) |
(→HelloExport.pm: Leaving output_list for the next tutorial.) |
||
Line 3: | Line 3: | ||
== HelloExport.pm == | == HelloExport.pm == | ||
+ | <pre> | ||
+ | package EPrints::Plugin::Export::Foo::HelloExport; | ||
+ | |||
+ | @ISA = ("EPrints::Plugin::Export"); | ||
+ | |||
+ | use strict; | ||
+ | |||
+ | sub new | ||
+ | { | ||
+ | my ($class, %opts) = @_; | ||
+ | |||
+ | my $self = $class->SUPER::new(%opts); | ||
+ | |||
+ | $self->{name} = "Hello, World!"; | ||
+ | $self->{accept} = [ 'dataobj/eprint', 'list/eprint' ]; | ||
+ | $self->{visible} = "all"; | ||
+ | $self->{suffix} = ".txt"; | ||
+ | $self->{mimetype} = "text/plain; charset=utf-8"; | ||
+ | |||
+ | return $self; | ||
+ | } | ||
+ | |||
+ | sub output_dataobj | ||
+ | { | ||
+ | my ($plugin, $dataobj) = @_; | ||
+ | |||
+ | return $dataobj->get_value("title")."\n"; | ||
+ | } | ||
+ | |||
+ | 1; | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | == In More Detail == | ||
<pre> | <pre> | ||
package EPrints::Plugin::Export::Foo::HelloExport; | package EPrints::Plugin::Export::Foo::HelloExport; | ||
Line 20: | Line 54: | ||
# We create a new export plugin by calling the | # We create a new export plugin by calling the | ||
# Eprints::Plugin::Export constructor | # Eprints::Plugin::Export constructor | ||
− | |||
my $self = $class->SUPER::new(%opts); | my $self = $class->SUPER::new(%opts); | ||
Line 62: | Line 95: | ||
my ($plugin, $dataobj) = @_; | my ($plugin, $dataobj) = @_; | ||
− | # | + | # Return a scalar containing the title. |
− | + | return $dataobj->get_value("title")."\n"; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
Revision as of 11:19, 9 August 2007
Hello, World!
HelloExport.pm
package EPrints::Plugin::Export::Foo::HelloExport; @ISA = ("EPrints::Plugin::Export"); use strict; sub new { my ($class, %opts) = @_; my $self = $class->SUPER::new(%opts); $self->{name} = "Hello, World!"; $self->{accept} = [ 'dataobj/eprint', 'list/eprint' ]; $self->{visible} = "all"; $self->{suffix} = ".txt"; $self->{mimetype} = "text/plain; charset=utf-8"; return $self; } sub output_dataobj { my ($plugin, $dataobj) = @_; return $dataobj->get_value("title")."\n"; } 1;
In More Detail
package EPrints::Plugin::Export::Foo::HelloExport; # Export plugins need to inherit from EPrints::Plugin::Export @ISA = ("EPrints::Plugin::Export"); use strict; # The Constructor for our plugin sub new { # In addition to the class reference passed to the constructor # a hash of options is also passed to the constructor. my ($class, %opts) = @_; # We create a new export plugin by calling the # Eprints::Plugin::Export constructor my $self = $class->SUPER::new(%opts); # Now we set a number of fields in our new plugin object. # This is the name that will appear in the export dropdown menu. # The name should therefore be short and descriptive. $self->{name} = "Hello, World!"; # This field is set to an array containing the type of objects this # plugin can deal with. In this case lists of eprints and individual # eprints. $self->{accept} = [ 'dataobj/eprint', 'list/eprint' ]; # What class(es) of user will be able to see the plugin. # For most export plugins the value "all" will be required, allowing # all users to see and use the plugin. A value of "staff" would # make the plugin only visible to repository staff. $self->{visible} = "all"; # The suffix that will be appended to files exported by the plugin. # For instance ".bib", ".txt" or ".xls" $self->{suffix} = ".txt"; # This defines the MIME type of the files exported by the plugin, # this should be chosen so the file can be handled appropriately. # You can also specify file encoding, for example # "text/plain; charset=utf-8" to specify plaintext, encoded using # utf-8. $self->{mimetype} = "text/plain; charset=utf-8"; return $self; } # This subroutine handles the export of each DataObj. # It returns a scalar. sub output_dataobj { # Besides a reference to the plugin, this subroutine is # also provided with a reference to an individual DataObj my ($plugin, $dataobj) = @_; # Return a scalar containing the title. return $dataobj->get_value("title")."\n"; } # Standard Perl package fayre. 1;