EPrints Technical Mailing List Archive

Message: #01233


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

[EP-tech] Re: Problem with the RSS plugin


On 23/10/12 15:01, Ian Stuart wrote:
On 23/10/12 15:01, Sebastien Francois wrote:
Hi Malcolm:

You can copy .pm files to:

1- perl_lib/EPrints/Plugin/ .... -> usually considered "hacky" as you're
changing the core. It will work but as PERL told you, you need to first
"use" the plugin somewhere (usually this is done in perl_lib/EPrints.pm
-> add "use EPrints::Plugin::Export::ALLRSS" there and restart the web
server). But see, you've just patched a core file (EPrints.pm).

2- (EPrints 3.1+) local archive:
archives/{id}/cfg/plugins/EPrints/Plugin/Export/ -> nothing else required

3- (EPrints 3.3+) the bazaar directory:
lib/plugins/EPrints/Plugin/Export/ - this time you need to explicitly
enable that plugin in your local conf, something like:

$c->{plugins}{"Export::ALLRSS"}{params}{disable} = 0;

and restart the web server.

If you have only one repository running in your EPrints install, I would
go for option #2. If more than one, option #3.
Isn't that the other way around?

lib/plugins/EPrints/Plugin/Export/ is global, therefore all repos will
pick it up.

archives/{id}/cfg/plugins/EPrints/Plugin/Export/ is specific to the
repo, therefore properly localised
I don't think I said otherwise.

-> lib/plugins/... is global but won't be picked up locally unless explicitly enabled in the local conf.

-> archives/{id}/.... appears local but the truth is that if you have two repositories with the same "local" plugin only one will be loaded globally (namespace clash) so if repo1 makes a change to their "local" version, repo2 will inherit the change because at the end of the day, the same process (modperl) cannot load twice the same package/module.

Having a plugin in archives/{id}/... does not guarantee it's localised (that's why the bazaar doesn't install stuff there).

Seb.