From EPrints Documentation
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.


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';


  • 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.