Difference between revisions of "My First Bazaar Package"

From EPrints Documentation
Jump to: navigation, search
(Step 2 - Develop your package contents)
Line 21: Line 21:
 
From the root of the EPrints installation create the directory to contain the ''Screen'' plugin you're going to package:
 
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/
+
  $ mkdir -p lib/plugins/EPrints/Plugin/Screen/
  
 
Create the screen plugin using your preferred text editor:
 
Create the screen plugin using your preferred text editor:
  
  gedit lib/plugins/EPrints/Plugin/Screen/Hello.pm
+
  $ gedit lib/plugins/EPrints/Plugin/Screen/Hello.pm
  
 
==Hello.pm==
 
==Hello.pm==
Line 69: Line 69:
 
You need a configuration file to enable the plugin:
 
You need a configuration file to enable the plugin:
  
  gedit lib/epm/hello_world/cfg/cfg.d/hello_world.pl
+
  $ 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.
 
This file will be copied into the repository's configuration directory when an admin user enables the package.

Revision as of 10:43, 4 July 2011

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 AdminSystem ToolsEPrints 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 AdminSystem ToolsMisc. 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.