My First Bazaar Package
Contents
Introduction
In this tutorial you will create a "Hello, World" Screen and package it as a Bazaar Package (.epm).
Requirements
You will need a working EPrints installation on which you have an administrator account. You will need to have access to the command line to create the files for the package.
Step 1 - Create a blank package
In Admin → System Tools → EPrints Bazaar, select the Developer Tools tab.
At the bottom of this screen is a form to create a new EPM. Enter the name (without quotes) "hello_world" and click Create.
You can fill out the metadata if you wish but at this stage you are only required to have a version, which defaults to "1.0.0".
Click Save and Return to return to the EPrints Bazaar screen.
Step 2 - Develop your package contents
From the root of the EPrints installation create the directory to contain the Screen plugin you're going to package:
mkdir -p lib/plugins/EPrints/Plugin/Screen/
Create the screen plugin using your preferred text editor:
gedit lib/plugins/EPrints/Plugin/Screen/Hello.pm
Hello.pm
package EPrints::Plugin::Screen::Hello;
@ISA = ( 'EPrints::Plugin::Screen' );
use strict;
# Make the plug-in
sub new
{
my( $class, %params ) = @_;
my $self = $class->SUPER::new(%params);
# Where the button to access the screen appears if anywhere, and what priority
$self->{appears} = [
{
place => "admin_actions",
position => 1247,
},
];
return $self;
}
# Anyone can see this screen
sub can_be_viewed { 1 }
# What to display
sub render
{
my( $self ) = @_;
my $frag = $self->{repository}->xml->create_text_node( "Hello, World!" );
return $frag;
}
1;
You need a configuration file to enable the plugin:
gedit lib/epm/hello_world/cfg/cfg.d/hello_world.pl
This file will be copied into the repository's configuration directory when an admin user enables the package.
hello_world.pl
$c->{plugins}{"Screen::Hello"}{params}{disable} = 0;
Step 3 - Add files to the package
You now have a blank package and some source files in the EPrint's directory. To add these files to the package go to the Developer Tools tab and click Edit for the hello_world package. Scroll to the bottom of the page and you will find a directory tree. You need to add the two files you created above:
- epm/hello_world/cfg/cfg.d/hello_world.pl
- plugins/EPrints/Plugin/Screen/Hello.pm
Click Save and Return to return to the EPrints Bazaar screen.
Step 4 - Enable and test the package
On the EPrints Bazaar Installed tab click Enable for the hello_world package. After a short time you should see a repository configuration reloaded message.
In Admin → System Tools → Misc. Tools you should now see your plugin appear (with a missing phrase).
For some hints on loading and manipulating EPrints see Manipulating eprints in 3.2.