Difference between revisions of "My First Bazaar Package"
Line 1: | Line 1: | ||
=Introduction= | =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 | + | 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]]. | For some hints on loading and manipulating EPrints see [[Manipulating eprints in 3.2]]. | ||
[[Category:EPrints_Bazaar]] | [[Category:EPrints_Bazaar]] |
Revision as of 10:42, 4 July 2011
Contents
[hide]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.