|
|
| (11 intermediate revisions by 3 users not shown) |
| Line 1: |
Line 1: |
| [[Category:Configuration]] | | [[Category:Howto]] |
| [[Category:Rubbish]] | | [[Category:Plugins]] |
| Screen Plugins are used to handle the User Interface. Screen plugins provide the UI to the user-interaction parts of EPrints. A screen plugin can include: | | Screen Plugins are used to handle the User Interface. Screen plugins provide the UI to the user-interaction parts of EPrints. A screen plugin can include: |
|
| |
|
| * A render (a screen plugin can actually have several pages (like a search) or none (like the eprint move plugin). Most have a single page of output. | | * A render - several pages (like a search) or none (like the eprint move plugin). Most have a single page of output. |
| * Actions - things which modify the system in some way. | | * Actions - things which modify the system in some way. |
| * Rights testing - the entire plugin, and individual actions, can be restricted in various ways. | | * Rights testing - the entire plugin, and individual actions, can be restricted in various ways. |
|
| |
|
| For EPrints 3.2+
| | ==Making Screens== |
| ===To make a Screen for the Admin section=== | | * [[How to make a Screen for the Admin Section]] |
| To make an Admin Screen plugin, you create a Perl Module in <code>[eprints]/perl_bin/EPrints/Plugin/Screen/</code> with the following basic structure
| | * [[How to make a Screen perform Actions]] |
| <pre>
| |
|
| |
|
| package EPrints::Plugin::Screen::Mypackage;
| |
|
| |
|
| use EPrints::Plugin::Screen;
| | See Also: [[EPrints Directory Structure/eprints3/perl lib/EPrints/Plugin/Screen|List of Core Screen Plugins]] |
| | |
| @ISA = ( 'EPrints::Plugin::Screen' );
| |
| | |
| use strict;
| |
| | |
| sub new
| |
| {
| |
| my( $class, %params ) = @_;
| |
| my $self = $class->SUPER::new(%params);
| |
| $self->{priv} = undef;
| |
| $self->{appears} = [
| |
| {
| |
| place => "admin_actions_editorial", # see notes below
| |
| position => 1450,
| |
| },
| |
| ];
| |
| return $self;
| |
| }
| |
| | |
| sub can_be_viewed
| |
| {
| |
| my( $self ) = @_;
| |
| return $self->allow( "my/conf/value" );
| |
| }
| |
| | |
| sub render
| |
| {
| |
| my( $self ) = @_;
| |
| my $session = $self->{session};
| |
| my $user = $session->current_user;
| |
| | |
| my $p = $session->make_doc_fragment;
| |
| | |
| # create page contents:
| |
| my $h = $session->make_element( "h3" );
| |
| $h->appendChild($session->make_text( "Look up organisations known to OA-RJ" ));
| |
| $p->appendChild($h);
| |
| | |
| return $p
| |
| }
| |
| </pre>
| |
| | |
| ====The locations====
| |
| There are 4 tabs defined:
| |
| * admin_actions_editorial
| |
| * admin_actions_system
| |
| * admin_actions_config
| |
| * admin_actions_misc
| |
| | |
| ===Making the page appear===
| |
| There are three steps to making a page appear:
| |
| | |
| 1. The Perl Package should test for ''view-ability''
| |
| <pre>
| |
| # in EPrints::Plugin::Screen::Mypackage
| |
| sub can_be_viewed
| |
| {
| |
| my( $self ) = @_;
| |
| return $self->allow( "my/conf/value" );
| |
| }
| |
| </pre>
| |
| 2 The ''User'' DataObject needs to list the privilege under a role:
| |
| <pre>
| |
| # In EPrints::DataObj::User
| |
| foo_bar => [
| |
| "my/view/value",
| |
| ],
| |
| foo_baz => [
| |
| "my/view/value",
| |
| "my/conf/value",
| |
| ],
| |
| </pre>
| |
| 3 The user_roles.pl file needs to make the role available to the user-type:
| |
| <pre>
| |
| # in [eprints]/archive/<ARCHIVE_ID>/cfg/cfg/user_roles.pl
| |
| $c->{user_roles}->{user} = [qw{
| |
| // truncated
| |
| foo_bar
| |
| }],
| |
| $c->{user_roles}->{admin} = [qw{
| |
| // truncated
| |
| foo_baz
| |
| }],
| |
| </pre>
| |
| | |
| See Also: [[List of Core Screen Plugins]]
| |
Screen Plugins are used to handle the User Interface. Screen plugins provide the UI to the user-interaction parts of EPrints. A screen plugin can include:
- A render - several pages (like a search) or none (like the eprint move plugin). Most have a single page of output.
- Actions - things which modify the system in some way.
- Rights testing - the entire plugin, and individual actions, can be restricted in various ways.
Making Screens
See Also: List of Core Screen Plugins