EGWeb trim template paths to unique set
authorBill Erickson <berick@esilibrary.com>
Tue, 17 Apr 2012 14:35:43 +0000 (10:35 -0400)
committerMike Rylander <mrylander@gmail.com>
Mon, 30 Jul 2012 19:04:53 +0000 (15:04 -0400)
The list of template paths may have the same path added multiple times,
depending on the Apache configuration.  Trim them down to a unique set
to avoid excess template lookups.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm

index 71a520c..f44a0af 100644 (file)
@@ -9,6 +9,7 @@ use Apache2::Const -compile => qw(OK DECLINED HTTP_INTERNAL_SERVER_ERROR);
 use Apache2::Log;
 use OpenSRF::EX qw(:try);
 use OpenILS::Utils::CStoreEditor q/:funcs/;
+use List::MoreUtils qw/uniq/;
 
 use constant OILS_HTTP_COOKIE_SKIN => 'eg_skin';
 use constant OILS_HTTP_COOKIE_THEME => 'eg_theme';
@@ -146,7 +147,7 @@ sub load_context {
     $ctx->{theme} = $cgi->cookie(OILS_HTTP_COOKIE_THEME) || 'default';
     $ctx->{proto} = $cgi->https ? 'https' : 'http';
 
-    my @template_paths = $r->dir_config->get('OILSWebTemplatePath');
+    my @template_paths = uniq $r->dir_config->get('OILSWebTemplatePath');
     $ctx->{template_paths} = [ reverse @template_paths ];
 
     my %locales = $r->dir_config->get('OILSWebLocale');