Bug 35070: Add plugin hook template_include_paths
It allows to add paths to Template::Toolkit's INCLUDE_PATH option
http://template-toolkit.org/docs/manual/Config.html#section_INCLUDE_PATH
Test plan:
1. Install the modified kitchen sink plugin:
git clone --branch template-include-paths \
https://github.com/jajm/dev-koha-plugin-kitchen-sink.git
2. Run misc/devel/install_plugins.pl
3. Restart memcached and koha
4. Go to Administration -> Manage Plugins
5. Run the KitchenSink plugin's tool
6. Click on "Schedule greeting"
7. Go to Administration -> Manage jobs
8. If you don't see any jobs, uncheck "Current jobs only"
9. You should see a job of type "Unknown job type
'plugin_kitchensink_greeter". Click on the "View" button
10. Under the Report section you should see "This is the report block"
11. Under the Detailed messages section you should see "This is the
detail block"
12. Open the browser console, you should see a message "This is the js
block"
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
(cherry picked from commit 5047e0761c
)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
6694512cf0
commit
fe5b461cbf
4 changed files with 71 additions and 0 deletions
|
@ -61,6 +61,11 @@ sub new {
|
|||
push @includes, "$htdocs/$_/$lang/includes";
|
||||
push @includes, "$htdocs/$_/en/includes" unless $lang eq 'en';
|
||||
}
|
||||
|
||||
my @plugins_include_paths = Koha::Plugins->call( 'template_include_paths',
|
||||
{ interface => $interface, lang => $lang } );
|
||||
push @includes, map { $_ ? @$_ : () } @plugins_include_paths;
|
||||
|
||||
# Do not use template cache if script is called from commandline
|
||||
my $use_template_cache = C4::Context->config('template_cache_dir') && defined $ENV{GATEWAY_INTERFACE};
|
||||
my $template = Template->new(
|
||||
|
|
57
t/db_dependent/Koha/Plugins/TemplateIncludePathHook.t
Normal file
57
t/db_dependent/Koha/Plugins/TemplateIncludePathHook.t
Normal file
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# This file is part of Koha.
|
||||
#
|
||||
# Koha is free software; you can redistribute it and/or modify it under the
|
||||
# terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation; either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with Koha; if not, see <http://www.gnu.org/licenses>.
|
||||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 4;
|
||||
use Test::MockModule;
|
||||
use Test::Warn;
|
||||
|
||||
use File::Basename;
|
||||
|
||||
|
||||
BEGIN {
|
||||
# Mock pluginsdir before loading Plugins module
|
||||
my $path = dirname(__FILE__) . '/../../../lib/plugins';
|
||||
require t::lib::Mocks;
|
||||
t::lib::Mocks::mock_config( 'enable_plugins', 1 );
|
||||
t::lib::Mocks::mock_config( 'pluginsdir', $path );
|
||||
|
||||
use_ok('Koha::Plugins');
|
||||
use_ok('Koha::Plugins::Handler');
|
||||
use_ok('Koha::Plugin::Test');
|
||||
}
|
||||
|
||||
my $schema = Koha::Database->new->schema;
|
||||
|
||||
subtest 'template_include_paths' => sub {
|
||||
plan tests => 1;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
Koha::Plugins->new->InstallPlugins();
|
||||
Koha::Plugin::Test->new->enable;
|
||||
|
||||
require C4::Templates;
|
||||
my $c4_template = C4::Templates::gettemplate('intranet-main.tt', 'intranet');
|
||||
my $template = $c4_template->{TEMPLATE};
|
||||
my $output = '';
|
||||
$template->process(\"[% INCLUDE test.inc %]", {}, \$output) || die $template->error();
|
||||
is($output, 'included content');
|
||||
|
||||
$schema->storage->txn_commit;
|
||||
#Koha::Plugins::Methods->delete;
|
||||
};
|
|
@ -369,6 +369,14 @@ sub after_recall_action {
|
|||
"after_recall_action called with action: $action, ref: " . ref($recall) );
|
||||
}
|
||||
|
||||
sub template_include_paths {
|
||||
my ($self) = @_;
|
||||
|
||||
return [
|
||||
$self->mbf_path('inc'),
|
||||
];
|
||||
}
|
||||
|
||||
sub _private_sub {
|
||||
return "";
|
||||
}
|
||||
|
|
1
t/lib/plugins/Koha/Plugin/Test/inc/test.inc
Normal file
1
t/lib/plugins/Koha/Plugin/Test/inc/test.inc
Normal file
|
@ -0,0 +1 @@
|
|||
[% 'included content' ~%]
|
Loading…
Reference in a new issue