EPrints Technical Mailing List Archive
See the EPrints wiki for instructions on how to join this mailing list and related information.
Message: #05591
< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First
Re: [EP-tech] Replace an EPrints Function
- To: "eprints-tech@ecs.soton.ac.uk" <eprints-tech@ecs.soton.ac.uk>
- Subject: Re: [EP-tech] Replace an EPrints Function
- From: John Salter <J.Salter@leeds.ac.uk>
- Date: Sat, 23 Apr 2016 06:46:01 +0000
Hi Alan, Take a look at these instructions: http://wiki.eprints.org/w/Instructions_for_local_plugins As you're trying to do something in a plugin, it all works really well (like it was designed for this!).One addition to the page would be that you could call the method you're overriding if you wanted to:
my $original_rendering = $self->SUPER::render( $things ); $original_rendering->appendChild( ... );
- if you just want to append/prepend extra nodes to the original render.
Also, when I do this, I normally name the new package e.g.
EPrints::Plugin::Screen::ArchiveIDItems rather than EPrints::Plugin::Screen::MyItems - makes it easier when you've
got multiple archives running.
Cheers,
John
From: eprints-tech-bounces@ecs.soton.ac.uk <eprints-tech-bounces@ecs.soton.ac.uk> on behalf of Alan.Stiles <alan.stiles@open.ac.uk>
Sent: 22 April 2016 17:01 To: eprints-tech@ecs.soton.ac.uk Subject: [EP-tech] Replace an EPrints Function Hi All,
I’m trying to programmatically amend the EPrints::Plugin::Screen::Items screen.
We (one of my predecessors) have already replaced the render function with a local one using
undef &EPrints::Plugin::Screen::Items::render; ##Define new method and assign to exiting method *EPrints::Plugin::Screen::Items::render = \&local_render;
So I could just amend the local_render to modify the doc_fragment as necessary whilst it gets built, but I’d like to do it in a more plugin-friendly way, so, intercept the call to render as above, but then actually be able to call the original render function.
Thus far I’ve managed to send the (dev) server into several infinite loops – any suggestions for how to achieve it, or other suggestions gratefully received!
Cheers,
Alan
|
- References:
- [EP-tech] Replace an EPrints Function
- From: "Alan.Stiles" <alan.stiles@open.ac.uk>
- [EP-tech] Replace an EPrints Function
- Prev by Date: [EP-tech] Replace an EPrints Function
- Next by Date: [EP-tech] Problems with view generation: EPrints System Error
- Previous by thread: [EP-tech] Replace an EPrints Function
- Next by thread: Re: [EP-tech] Replace an EPrints Function
- Index(es):