From 62b76aa98c4f30ae32cb76ba0348e94d31e8464f Mon Sep 17 00:00:00 2001 From: Robin Sheat Date: Thu, 22 Sep 2011 15:32:24 +1200 Subject: [PATCH] Bug 6205 - if an include doesn't exist, fall back to en MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If a language that doesn't exist gets accessed, then it will fall back to en for the templates, but not for the includes, so everything still dies. This allows the process to work in this case too. Signed-off-by: Frédéric Demians I confirm the bug and the solution. This issue occurs when templates are partially translated. The main template (.tt) is found for a specific language, so this language is returned by themetemplate. But in the main template, some include files (subtemplates) are referenced that can very well not exist if the translation process had failed to generate them. This kind of failure is reported by 'translate' script. It's very easy to miss it, but it's the translator responsability to check it. Signed-off-by: Chris Cormack --- C4/Templates.pm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/C4/Templates.pm b/C4/Templates.pm index 37e893293a..812f3dc84e 100644 --- a/C4/Templates.pm +++ b/C4/Templates.pm @@ -55,12 +55,13 @@ sub new { my ($theme, $lang)= themelanguage( $htdocs, $tmplbase, $interface, $query); my $template = Template->new( - { - EVAL_PERL => 1, + { EVAL_PERL => 1, ABSOLUTE => 1, - INCLUDE_PATH => "$htdocs/$theme/$lang/includes", - FILTERS => {}, - + INCLUDE_PATH => [ + "$htdocs/$theme/$lang/includes", + "$htdocs/$theme/en/includes" + ], + FILTERS => {}, } ) or die Template->error(); my $self = { -- 2.39.5