[Koha-patches] [PATCH] bug 3161: don't display blank language chooser

Galen Charlton galen.charlton at liblime.com
Sun Apr 26 18:45:24 CEST 2009


If more than one translation is installed but only one is active, a blank div
is displayed at the bottom of all pages in the intranet (and in the OPAC if the
opacchangelanguages system preference is ON), taking a bit of vertical real
estate needlessly.

Changed so that <div> for the language chooser is output
only if there is more than one enabled language.
---
 C4/Languages.pm                                    |    9 +--------
 C4/Output.pm                                       |   11 +++++++++--
 .../prog/en/includes/intranet-bottom.inc           |    4 ++--
 .../opac-tmpl/prog/en/includes/opac-bottom.inc     |    4 ++--
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/C4/Languages.pm b/C4/Languages.pm
index 7c3503c..5795202 100644
--- a/C4/Languages.pm
+++ b/C4/Languages.pm
@@ -108,7 +108,6 @@ sub getTranslatedLanguages {
     my $htdocs;
     my $all_languages = getAllLanguages();
     my @languages;
-    my $lang;
     my @enabled_languages;
  
     if ($interface && $interface eq 'opac' ) {
@@ -116,13 +115,11 @@ sub getTranslatedLanguages {
         $htdocs = C4::Context->config('opachtdocs');
         if ( $theme and -d "$htdocs/$theme" ) {
             (@languages) = _get_language_dirs($htdocs,$theme);
-            return _build_languages_arrayref($all_languages,\@languages,$current_language,\@enabled_languages);
         }
         else {
             for my $theme ( _get_themes('opac') ) {
                 push @languages, _get_language_dirs($htdocs,$theme);
             }
-            return _build_languages_arrayref($all_languages,\@languages,$current_language,\@enabled_languages);
         }
     }
     elsif ($interface && $interface eq 'intranet' ) {
@@ -130,13 +127,11 @@ sub getTranslatedLanguages {
         $htdocs = C4::Context->config('intrahtdocs');
         if ( $theme and -d "$htdocs/$theme" ) {
             @languages = _get_language_dirs($htdocs,$theme);
-            return _build_languages_arrayref($all_languages,\@languages,$current_language,\@enabled_languages);
         }
         else {
             foreach my $theme ( _get_themes('intranet') ) {
                 push @languages, _get_language_dirs($htdocs,$theme);
             }
-            return _build_languages_arrayref($all_languages,\@languages,$current_language,\@enabled_languages);
         }
     }
     else {
@@ -152,8 +147,8 @@ sub getTranslatedLanguages {
         my %seen;
         $seen{$_}++ for @languages;
         @languages = keys %seen;
-        return _build_languages_arrayref($all_languages,\@languages,$current_language,\@enabled_languages);
     }
+    return _build_languages_arrayref($all_languages,\@languages,$current_language,\@enabled_languages);
 }
 
 =head2 getAllLanguages
@@ -273,7 +268,6 @@ sub _build_languages_arrayref {
         my @languages_loop; # the final reference to an array of hashrefs
         my @enabled_languages = @$enabled_languages;
         # how many languages are enabled, if one, take note, some contexts won't need to display it
-        my $one_language_enabled = 1 unless @enabled_languages > 1;
         my %seen_languages; # the language tags we've seen
         my %found_languages;
         my $language_groups;
@@ -318,7 +312,6 @@ sub _build_languages_arrayref {
                             plural => $track_language_groups->{$key} >1 ? 1 : 0,
                             current => $current_language_regex->{language} eq $key ? 1 : 0,
                             group_enabled => $enabled,
-                            one_language_enabled => $one_language_enabled,
                            };
         }
         return \@languages_loop;
diff --git a/C4/Output.pm b/C4/Output.pm
index fd32541..c8404dc 100644
--- a/C4/Output.pm
+++ b/C4/Output.pm
@@ -115,9 +115,16 @@ sub gettemplate {
     $bidi = get_bidi($current_lang->{script}) if $current_lang->{script};
     # Languages
     my $languages_loop = getTranslatedLanguages($interface,$theme,$lang);
+    my $num_languages_enabled = 0;
+    foreach my $lang (@$languages_loop) {
+        foreach my $sublang (@{ $lang->{'sublanguages_loop'} }) {
+            $num_languages_enabled++ if $sublang->{enabled};
+         }
+    }
     $template->param(
-            languages_loop => $languages_loop,
-            bidi => $bidi
+            languages_loop       => $languages_loop,
+            bidi                 => $bidi,
+            one_language_enabled => ($num_languages_enabled <= 1) ? 1 : 0, # deal with zero enabled langs as well
     ) unless @$languages_loop<2;
 
     return $template;
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc
index a6a2b07..78334b2 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/intranet-bottom.inc
@@ -1,6 +1,7 @@
         </div>
 
 <!-- TMPL_IF NAME="languages_loop" -->
+    <!-- TMPL_UNLESS NAME="one_language_enabled" -->
         <div id="changelanguage" class="ft">
         <ul id="i18nMenu" class="footermenu">
         <!-- TMPL_LOOP NAME="languages_loop" -->
@@ -21,7 +22,6 @@
             </ul></div></div></li>
 
             <!-- TMPL_ELSE -->
-            <!-- TMPL_UNLESS NAME="one_language_enabled" -->
 	    	<!-- TMPL_IF NAME="group_enabled" -->
                 <!-- TMPL_IF NAME="current" -->
                     <li><!-- TMPL_IF NAME="native_description" --><!-- TMPL_VAR NAME="native_description" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="rfc4646_subtag" --><!-- /TMPL_IF --></li>
@@ -30,11 +30,11 @@
                 <!-- /TMPL_IF -->
 		<!-- /TMPL_IF -->
             <!-- /TMPL_IF -->
-            <!-- /TMPL_UNLESS -->
             <!-- /TMPL_IF -->
         <!-- /TMPL_LOOP -->
         </ul>
         </div>
+    <!-- /TMPL_UNLESS -->
 <!-- /TMPL_IF -->
     </body>
 </html>
diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc b/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc
index c3a6380..94a86e9 100644
--- a/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc
+++ b/koha-tmpl/opac-tmpl/prog/en/includes/opac-bottom.inc
@@ -7,6 +7,7 @@
 </div>
 <!-- TMPL_IF NAME="opaclanguagesdisplay" -->
 <!-- TMPL_IF NAME="languages_loop" -->
+    <!-- TMPL_UNLESS NAME="one_language_enabled" -->
         <div id="changelanguage" class="ft"><strong>Languages: </strong>
         <!-- TMPL_LOOP NAME="languages_loop" -->
             <!-- TMPL_IF NAME="group_enabled" -->
@@ -28,7 +29,6 @@
 			</div>
 
             <!-- TMPL_ELSE -->
-            <!-- TMPL_UNLESS NAME="one_language_enabled" -->
 	    	<!-- TMPL_IF NAME="group_enabled" -->
                 <!-- TMPL_IF NAME="current" -->
                     <!-- TMPL_IF NAME="native_description" --><!-- TMPL_VAR NAME="native_description" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="rfc4646_subtag" --><!-- /TMPL_IF -->
@@ -37,10 +37,10 @@
                 <!-- /TMPL_IF -->
 		<!-- /TMPL_IF -->
             <!-- /TMPL_IF -->
-            <!-- /TMPL_UNLESS -->
             <!-- /TMPL_IF --><!-- TMPL_UNLESS NAME="__last__" --> | <!-- /TMPL_UNLESS -->
         <!-- /TMPL_LOOP -->
         </div>
+    <!-- /TMPL_UNLESS -->
 <!-- /TMPL_IF -->
 <!-- /TMPL_IF -->
 
-- 
1.5.6.5




More information about the Koha-patches mailing list