From EPrints Documentation
Revision as of 15:50, 9 November 2009 by Mmr@ecs.soton.ac.uk (talk | contribs) (Installation)
Jump to: navigation, search


The collections module is part of OneShare. It is based on code developed in EdShare and OneBox. The goal of this project is to produce a package that allows the easy installation of the collections functionality on a vanilla EPrints installation.


As with all package installations it is important to remember to backup your installation of EPrints before continuing.

Extract Package

The package should be extracted in the root directory of your EPrints installation. Assuming the package is located in your root EPrints directory;

cd /opt/eprints3
tar -xzf meprints-VERSION.tar.gz

This will extract the package but the modifications to the archive will be extracted to archives/ARCHIVEID. You need to move this to your usual directory. You can do this by using the mv command, if we have a repository called foo then run;

cp -r archives/ARCHIVEID/* archives/foo

Then to clean up run;

rm -rf archives/ARCHIVEID

Install CGI Scripts

Link the collections CGI scripts to the EPrints CGI directory:

ln -s /opt/eprints3/archives/ARCHIVEID/cgi/collectionselect/ /opt/eprints3/cgi/

Edit Core Files


Look for the workflow subroutine in this file and comment out the following line:

$self->{processor}->{$cache_id} = EPrints::Workflow->new( $self->{session}, "default", %opts );

Then add in the following two lines:

my $workflow_id = $self->workflow_id;
$self->{processor}->{$cache_id} = EPrints::Workflow->new( $self->{session}, $workflow_id, %opts );

Finally after the workflow subroutine add the following subroutine;

sub workflow_id
        return 'default';

Update Database Tables

The OneShare collections package requires an additional database field. To get this setup all you need to do is run;

bin/epadmin update_database_structure test1

Restart Web Server

Once you have completed all of these previous steps, you will need to restart your web server in the usual fashion.


  • archives/ARCHIVE_ID/cfg/plugins/EPrints/Plugin/Collection.pm - This is the main extension of EPrints::DataObj::EPrint to make a collection object.
  • perl_lib/EPrints/Plugin/InputForm/Component/Field/CollectionSelect.pm - This is the input form component that is used to populate a collection. This should perhaps be moved into the archive directory and symbolically linked into the perl_lib directory, this prevents requiring any major changes to the EPrints core.

Packaging Notes

Please take note of the following notes when moving from the original collections module to the repackaged version.

  • EPrints::Plugin::InputForm::Component::Field::CollectionSelect
    • get_state_params_OLD has been removed from this version.