From 621870b71defae28fce8aa9059a7e60e2e9857ba 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=UTF-8 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. --- C4/Templates.pm | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/C4/Templates.pm b/C4/Templates.pm index 37e8932..812f3dc 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 = { -- 1.7.6.1