From 9c7761fe89d05fc7114f426ecffdf9635ba1fe97 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marc=20V=C3=A9ron?= Date: Wed, 24 May 2017 16:06:31 +0200 Subject: [PATCH] Bug 18665 - Translatability: Add tt filter to allow html tags inside tt directives HTML tags inside template toolkit directives are not allowed because of translation issues. Add a filter that handles HTML tags. Note you need to write quotes ' around the text you want displayed as a heading To test: - Apply patch - Add [% USE HtmlTags %] to the top of a tt file - Add something like [% 'My nice title' | $HtmlTags tag="h1" %] to the tt file - Verify that in output 'My nice title' has h1 tags - Change template directive to something like [% 'My nice title' | $HtmlTags tag="h1" attributes='title="This is a nice title attribute"' %] - Verify that title attribute displays in output (source code or tooltip on 'My nice title') Notes: - Tests are planned for a second patch - Update for Wiki coding guidelines Signed-off-by: Alex Buckley Signed-off-by: Brendan A Gallagher Signed-off-by: Jonathan Druart --- Koha/Template/Plugin/HtmlTags.pm | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Koha/Template/Plugin/HtmlTags.pm diff --git a/Koha/Template/Plugin/HtmlTags.pm b/Koha/Template/Plugin/HtmlTags.pm new file mode 100644 index 0000000000..301e21f81d --- /dev/null +++ b/Koha/Template/Plugin/HtmlTags.pm @@ -0,0 +1,40 @@ +package Koha::Template::Plugin::HtmlTags; + +# Copyright Marc Véron / marc veron ag, Switzerland + +# 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 . + +use Modern::Perl; + +use Template::Plugin::Filter; +use base qw( Template::Plugin::Filter ); + +our $DYNAMIC = 1; + +sub filter { + my ( $self, $text, $args, $config ) = @_; + return "" unless $text; + return $text unless $config->{tag}; + $config->{attributes} //= ''; + + if ( $config->{attributes} ) { + return '<' . $config->{tag} . ' ' . $config->{attributes} . '>' . $text . '{tag} . '>'; + } else { + return '<' . $config->{tag} . '>' . $text . '{tag} . '>'; + } +} + +1; -- 2.39.5