Bug 20116: Prepare the ground
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 31 Jan 2018 17:36:22 +0000 (14:36 -0300)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Fri, 17 Apr 2020 08:23:00 +0000 (09:23 +0100)
Just refactoring to make the next patch more readable

Signed-off-by: Liz Rea <wizzyrea@gmail.com>
Signed-off-by: Bouzid Fergani <bouzid.fergani@inlibro.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

C4/Languages.pm

index 31d17ba..0916dd4 100644 (file)
@@ -111,44 +111,27 @@ Returns a reference to an array of hashes:
 
 sub getTranslatedLanguages {
     my ($interface, $theme, $current_language, $which) = @_;
-    my $htdocs;
     my @languages;
-    my @enabled_languages;
+    my @enabled_languages =
+      ( $interface && $interface eq 'intranet' )
+      ? split ",", C4::Context->preference('language')
+      : split ",", C4::Context->preference('opaclanguages');
+
     if ($interface && $interface eq 'opac' ) {
-        @enabled_languages = split ",", C4::Context->preference('opaclanguages');
-        $htdocs = C4::Context->config('opachtdocs');
-        if ( $theme and -d "$htdocs/$theme" ) {
-            (@languages) = _get_language_dirs($htdocs,$theme);
-        }
-        else {
-            for my $theme ( _get_themes('opac') ) {
-                push @languages, _get_language_dirs($htdocs,$theme);
-            }
-        }
+        my $htdocs = C4::Context->config('opachtdocs');
+        @languages = _get_opac_language_dirs( $htdocs, $theme );
     }
     elsif ($interface && $interface eq 'intranet' ) {
-        @enabled_languages = split ",", C4::Context->preference('language');
-        $htdocs = C4::Context->config('intrahtdocs');
-        if ( $theme and -d "$htdocs/$theme" ) {
-            @languages = _get_language_dirs($htdocs,$theme);
-        }
-        else {
-            foreach my $theme ( _get_themes('intranet') ) {
-                push @languages, _get_language_dirs($htdocs,$theme);
-            }
-        }
+        my $htdocs = C4::Context->config('intrahtdocs');
+        @languages = _get_intranet_language_dirs( $htdocs, $theme );
     }
     else {
-        @enabled_languages = split ",", C4::Context->preference('opaclanguages');
         my $htdocs = C4::Context->config('intrahtdocs');
-        foreach my $theme ( _get_themes('intranet') ) {
-            push @languages, _get_language_dirs($htdocs,$theme);
-        }
+        push @languages, _get_intranet_language_dirs( $htdocs );
+
         $htdocs = C4::Context->config('opachtdocs');
-        foreach my $theme ( _get_themes('opac') ) {
-            push @languages, _get_language_dirs($htdocs,$theme);
-        }
+        push @languages, _get_opac_language_dirs( $htdocs );
+
         my %seen;
         $seen{$_}++ for @languages;
         @languages = keys %seen;
@@ -246,6 +229,37 @@ sub getLanguages {
     return \@languages_loop;
 }
 
+sub _get_opac_language_dirs {
+    my ( $htdocs, $theme ) = @_;
+
+    my @languages;
+    if ( $theme and -d "$htdocs/$theme" ) {
+        (@languages) = _get_language_dirs($htdocs,$theme);
+    }
+    else {
+        for my $theme ( _get_themes('opac') ) {
+            push @languages, _get_language_dirs($htdocs,$theme);
+        }
+    }
+    return @languages;
+}
+
+
+sub _get_intranet_language_dirs {
+    my ( $htdocs, $theme ) = @_;
+
+    my @languages;
+    if ( $theme and -d "$htdocs/$theme" ) {
+        @languages = _get_language_dirs($htdocs,$theme);
+    }
+    else {
+        foreach my $theme ( _get_themes('intranet') ) {
+            push @languages, _get_language_dirs($htdocs,$theme);
+        }
+    }
+    return @languages;
+}
+
 =head2 _get_themes
 
 Internal function, returns an array of all available themes.