[Koha-bugs] [Bug 7804] Add Koha Plugin System

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Wed May 23 14:44:36 CEST 2012


http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=7804

--- Comment #32 from Jared Camins-Esakov <jcamins at cpbibliography.com> ---
(In reply to comment #30)
> (In reply to comment #27)
> 
> So, from your description, it seems that plugins will be entirely OOP. For
> M:L:C to work, we will need to add the plugins directory to the perl include
> path, correct? What would be the safest way of doing that?

That's the way I'd go with it, yeah. I believe to add a directory to the Perl
include path we just have to push the directory to @INC: push @INC,
$pluginpath;

> Let take the Patrons List report, it's "step 1" class name would be
> Koha::Plugins::Org::CCFLS::PatronsList::Step1 and would be stored at
> $pluginsdir/Koha/Plugins/Org/CCFLS/PatronsList/Step1.pm, with templates and
> additional file in sub-directories along side Step1.pm
> 
> Also, how can we pass cgi variables between the steps? I imagine since
> everything will pass through run_report.pl, it can capture the variables,
> pass them to Koha::Plugins which can then pass them to the plugin via the
> new() method. Does that make sense?

Yeah, we can just store everything in $self, and have run_report/run_tool pass
all the CGI variables through.

> Example Skeleton Code:
> 
> package Koha::Plugins::Org::CCFLS::PatronsList::Step1;
> 
> use Modern::Perl;
> 
> sub new {
>     my $class = shift;
>     my $self = {};
>     bless $self, $class;
>     return $self;
> }
> 
> sub main {
>   # Get data
>   # Do something useful
>   # Output template
> }
> 
> 1;

That's exactly what I had in mind.

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list