From EPrints Documentation
Revision as of 10:55, 17 November 2009 by Mmr@ecs.soton.ac.uk (talk | contribs) (OneShareCollections moved to OneShareCollectionsInstallation: OneShareCollections will be making way for an overview page giving rational for the plugin and a tour of functionality added.)
Jump to: navigation, search


The collections module is part of OneShare. It is based on code developed in EdShare and LanguageBox. 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 appropriate archive directory of your EPrints installation. Run the following commands replacing ARCHIVEID with the name of the archive you want the collections on, and replace VERSION with the appropriate version number based on the package you have downloaded;

cd /opt/eprints3/archives/ARCHIVEID
tar -xzf collections-VERSION.tar.gz

These commands assume that you installed EPrints to /opt/eprints3 substitute this for something else if you installed it elsewhere. Users of the Ubuntu version of EPrints will find that it is installed by default at /usr/share/eprints3.

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 ARCHIVEID

Restart Web Server

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


When editing anything in archives/ARCHIVEID/cfg/cfg.d/z_collection.pl take care not to change anything after the warning, unless you know what you want to do with the settings, as these are critical to the functionality of the OneShare Collections plugin.

A level of customisation is possible with collections. All of the settings for the plugin can be found in archives/ARCHIVEID/cfg/cfg.d/z_collection.pl. The main setting of interest is collection_render. This subroutine is similar to eprint_render but it does a special case render for collections. A default is supplied but you are free to customise this to your requirements. One thing to note is that the function must return 3 values. Look at the default collection_render subroutine for an example.

If you do change the collection_render subroutine you will need to run the bin/generate_abstracts ARCHIVEID script in order to see any changes you have made reflected in your repository.

There are other settings in the file but you should avoid changing anything below the supplied note unless you know what you are doing.

Dependency Information

The following dependencies exist for the OneShare Collections plugin.


  • OneShare Bookmarks - If the OneShare Bookmarks plugin is available on your repository then when a user is creating a collection they will have an additional tab which lists all of the EPrints they have bookmarked.


  1. Login as a user to your EPrints install and go to the Manage Deposits page. There should be a new button labelled Create Collection.
  2. First ensure that you can still create an EPrint in the usual manner using New Item.
  3. Head back to the Manage Deposits page and choose Create Collection.
  4. Give your collection a name.
  5. Search for an EPrint and add it to the collection, it should appear in a list in the Items In The Collection section.
  6. Remove that EPrint from the collection by clearing the tick next to it, the list should now be empty.
  7. Add an EPrint from My Deposits.
  8. Submit the Collection and deposit it in the standard way.
  9. Go to the appropriate resource page for the published collection and ensure that there is the correct number of items in the collection.


Please report all bugs to the OneShare Bugtracker. There is a project setup for OneShare collections called OneShare Packages >> Collections.