Difference between revisions of "Miscellaneous Config Options/get users owned eprints"
(→Example) |
|||
Line 17: | Line 17: | ||
my $searchexp = $opts{dataset}->prepare_search( %opts ); | my $searchexp = $opts{dataset}->prepare_search( %opts ); | ||
$searchexp->add_field( $opts{dataset}->field( "userid" ), $user->id . " $extra_userid", "IN", "ANY" ); | $searchexp->add_field( $opts{dataset}->field( "userid" ), $user->id . " $extra_userid", "IN", "ANY" ); | ||
+ | return $searchexp->perform_search; | ||
+ | }; | ||
+ | |||
+ | Prior to v3.4.6, this function was passed a different set of parameters, thus search options had to be hard-coded: | ||
+ | |||
+ | # v3.4.5 and earlier | ||
+ | $c->{get_users_owned_eprints} = sub | ||
+ | { | ||
+ | my( $session, $user, $dataset ) = @_; | ||
+ | my $searchexp = new EPrints::Search( | ||
+ | session => $session, | ||
+ | dataset => $dataset, | ||
+ | # plus any other options | ||
+ | ); | ||
+ | # Add fields to $searchexp here | ||
return $searchexp->perform_search; | return $searchexp->perform_search; | ||
}; | }; |
Revision as of 12:27, 1 October 2024
This example should work with v3.4.6+.
Prior to v3.4.6 defining this method resulted in unexpected behaviour when eprint_status checkboxes were used on the Manage deposits page.
Example
$c->{get_users_owned_eprints} = sub { my( $session, $user, %opts ) = @_; # for non-editorial accounts, return the normal list if( $user->get_type ne "editor" ) { return $user->owned_eprints_list_actual( %opts ); } # only interested in editor accounts now # allow editors to see their items, and items from a specific userid e.g. 99999 my $extra_userid = 99999; my $searchexp = $opts{dataset}->prepare_search( %opts ); $searchexp->add_field( $opts{dataset}->field( "userid" ), $user->id . " $extra_userid", "IN", "ANY" ); return $searchexp->perform_search; };
Prior to v3.4.6, this function was passed a different set of parameters, thus search options had to be hard-coded:
# v3.4.5 and earlier $c->{get_users_owned_eprints} = sub { my( $session, $user, $dataset ) = @_; my $searchexp = new EPrints::Search( session => $session, dataset => $dataset, # plus any other options ); # Add fields to $searchexp here return $searchexp->perform_search; };