View | Details | Raw Unified | Return to bug 20116
Collapse All | Expand All

(-)a/C4/Languages.pm (-31 / +44 lines)
Lines 111-154 Returns a reference to an array of hashes: Link Here
111
111
112
sub getTranslatedLanguages {
112
sub getTranslatedLanguages {
113
    my ($interface, $theme, $current_language, $which) = @_;
113
    my ($interface, $theme, $current_language, $which) = @_;
114
    my $htdocs;
115
    my @languages;
114
    my @languages;
116
    my @enabled_languages;
115
    my @enabled_languages =
117
 
116
      ( $interface && $interface eq 'intranet' )
117
      ? split ",", C4::Context->preference('language')
118
      : split ",", C4::Context->preference('opaclanguage');
119
118
    if ($interface && $interface eq 'opac' ) {
120
    if ($interface && $interface eq 'opac' ) {
119
        @enabled_languages = split ",", C4::Context->preference('opaclanguages');
121
        my $htdocs = C4::Context->config('opachtdocs');
120
        $htdocs = C4::Context->config('opachtdocs');
122
        @languages = _get_opac_language_dirs( $htdocs, $theme );
121
        if ( $theme and -d "$htdocs/$theme" ) {
122
            (@languages) = _get_language_dirs($htdocs,$theme);
123
        }
124
        else {
125
            for my $theme ( _get_themes('opac') ) {
126
                push @languages, _get_language_dirs($htdocs,$theme);
127
            }
128
        }
129
    }
123
    }
130
    elsif ($interface && $interface eq 'intranet' ) {
124
    elsif ($interface && $interface eq 'intranet' ) {
131
        @enabled_languages = split ",", C4::Context->preference('language');
125
        my $htdocs = C4::Context->config('intrahtdocs');
132
        $htdocs = C4::Context->config('intrahtdocs');
126
        @languages = _get_intranet_language_dirs( $htdocs, $theme );
133
        if ( $theme and -d "$htdocs/$theme" ) {
134
            @languages = _get_language_dirs($htdocs,$theme);
135
        }
136
        else {
137
            foreach my $theme ( _get_themes('intranet') ) {
138
                push @languages, _get_language_dirs($htdocs,$theme);
139
            }
140
        }
141
    }
127
    }
142
    else {
128
    else {
143
        @enabled_languages = split ",", C4::Context->preference('opaclanguages');
144
        my $htdocs = C4::Context->config('intrahtdocs');
129
        my $htdocs = C4::Context->config('intrahtdocs');
145
        foreach my $theme ( _get_themes('intranet') ) {
130
        push @languages, _get_intranet_language_dirs( $htdocs );
146
            push @languages, _get_language_dirs($htdocs,$theme);
131
147
        }
148
        $htdocs = C4::Context->config('opachtdocs');
132
        $htdocs = C4::Context->config('opachtdocs');
149
        foreach my $theme ( _get_themes('opac') ) {
133
        push @languages, _get_intranet_opac_dirs( $htdocs );
150
            push @languages, _get_language_dirs($htdocs,$theme);
134
151
        }
152
        my %seen;
135
        my %seen;
153
        $seen{$_}++ for @languages;
136
        $seen{$_}++ for @languages;
154
        @languages = keys %seen;
137
        @languages = keys %seen;
Lines 246-251 sub getLanguages { Link Here
246
    return \@languages_loop;
229
    return \@languages_loop;
247
}
230
}
248
231
232
sub _get_opac_language_dirs {
233
    my ( $htdocs, $theme ) = @_;
234
235
    my @languages;
236
    if ( $theme and -d "$htdocs/$theme" ) {
237
        (@languages) = _get_language_dirs($htdocs,$theme);
238
    }
239
    else {
240
        for my $theme ( _get_themes('opac') ) {
241
            push @languages, _get_language_dirs($htdocs,$theme);
242
        }
243
    }
244
    return @languages;
245
}
246
247
248
sub _get_intranet_language_dirs {
249
    my ( $htdocs, $theme ) = @_;
250
251
    my @languages;
252
    if ( $theme and -d "$htdocs/$theme" ) {
253
        @languages = _get_language_dirs($htdocs,$theme);
254
    }
255
    else {
256
        foreach my $theme ( _get_themes('intranet') ) {
257
            push @languages, _get_language_dirs($htdocs,$theme);
258
        }
259
    }
260
    return @languages;
261
}
262
249
=head2 _get_themes
263
=head2 _get_themes
250
264
251
Internal function, returns an array of all available themes.
265
Internal function, returns an array of all available themes.
252
- 

Return to bug 20116