EPrints Technical Mailing List Archive

See the EPrints wiki for instructions on how to join this mailing list and related information.

Message: #00342


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

[EP-tech] Re: Altering DajaObj/Eprint.pm behaviour without altering core code


On Wed, 2012-04-04 at 12:18 +0100, John Salter wrote:
> I'm trying to do something the 'right way'*.
> This advice: http://wiki.eprints.org/w/Read_Only_Directories says I shouldn't be editing anything under eprints3/perl_lib/ (with a couple of exceptions).
> 
> I need to alter the 'render_fileinfo' subroutine in ~/perl_lib/EPrints/DataObj/EPrint.pm.
> How do I achieve this without:
>  - altering the Eprint.pm file
>  - ending up with some 'Subroutine render_fileinfo redefined' messages
>  - using "no warnings 'redefine';" ;o)
> 
> I've tried various attempts - without success.
> I'm sure it can be done, and I'm sure it's a bit of perl magic I'm missing, and hopefully someone here can help!

You can override the render method in your citation:

<epc:print expr="fileinfo" opts="value=render_fileinfo" />

$c->{render_fileinfo} = sub { ... };

(value becomes "render_value" ... clunky I know)

Check perl_lib/EPrints/Script::print has support for opts if it doesn't
work.

/Tim.

Attachment: signature.asc
Description: This is a digitally signed message part