EPrints Technical Mailing List Archive

Message: #07095


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

Re: [EP-tech] Overriding subroutines


Hi Alan

 

                Try:

 

use EPrints::Plugin::Screen::MyPlugin::Stuff;

sub EPrints::Plugin::Screen::MyPlugin::Stuff::method_name

{

                print ‘2’;

}

 

…in your cfg.d file.

 

--

Adam

 

 

From: eprints-tech-bounces@ecs.soton.ac.uk> on behalf of "Alan.Stiles" <alan.stiles@open.ac.uk>
Reply-To: <eprints-tech@ecs.soton.ac.uk>
Date: Tuesday, 23 January 2018 16:12
To: "eprints-tech@ecs.soton.ac.uk" <eprints-tech@ecs.soton.ac.uk>
Subject: [EP-tech] Overriding subroutines

 

Hi all,

I’m currently trying to override a subroutine from a plugin module, by redefining it in the local cfg.d file.

So

 

<EPRINTS_ROOT>/lib/plugins/EPrints/Plugin/Screen/MyPlugin/Stuff.pm

has

package EPrints::Plugin::Screen::MyPlugin::Stuff;

sub method_name { print 1;}

 

and in <EPRINTS_ROOT>/archives/<MY_ARCHIVE>/cfg/cfg.d/zzz_stuff_plugin_local.pl  I have

 

package EPrints::Plugin::Screen::MyPlugin::Stuff;

sub method_name { print 2;}

 

 

when I restart the server I get the print 1;  statement.   If I change the subroutine name in the plugin (under lib/plugins….) then restart the server I get the print 2; statement so it appears to be loading the plugin after the local version?  I thought these happened the other way round?

 

Thanks,

Alan

-- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302). The Open University is authorised and regulated by the Financial Conduct Authority in relation to its secondary activity of credit broking. *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech *** Archive: http://www.eprints.org/tech.php/ *** EPrints community wiki: http://wiki.eprints.org/ *** EPrints developers Forum: http://forum.eprints.org/