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

(-)a/C4/Context.pm (-5 / +22 lines)
Lines 20-25 use strict; Link Here
20
use warnings;
20
use warnings;
21
use vars qw($VERSION $AUTOLOAD $context @context_stack);
21
use vars qw($VERSION $AUTOLOAD $context @context_stack);
22
22
23
eval {
24
    my $servers = C4::Context->config('memcached_servers');
25
    if ($servers) {
26
        require Memoize::Memcached;
27
        import Memoize::Memcached qw(memoize_memcached);
28
 
29
        my $memcached = {
30
            servers    => [ $servers ],
31
            key_prefix => C4::Context->config('memcached_namespace') || 'koha',
32
        };
33
34
        memoize_memcached('preference', memcached => $memcached, expire_time => 600000); #cache for 10 minutes
35
    }
36
};
37
23
BEGIN {
38
BEGIN {
24
	if ($ENV{'HTTP_USER_AGENT'})	{
39
	if ($ENV{'HTTP_USER_AGENT'})	{
25
		require CGI::Carp;
40
		require CGI::Carp;
Lines 79-85 BEGIN { Link Here
79
		}
94
		}
80
    }  	# else there is no browser to send fatals to!
95
    }  	# else there is no browser to send fatals to!
81
	$VERSION = '3.00.00.036';
96
	$VERSION = '3.00.00.036';
82
}
97
};
98
83
99
84
use DBI;
100
use DBI;
85
use ZOOM;
101
use ZOOM;
Lines 88-93 use C4::Boolean; Link Here
88
use C4::Debug;
104
use C4::Debug;
89
use POSIX ();
105
use POSIX ();
90
106
107
91
=head1 NAME
108
=head1 NAME
92
109
93
C4::Context - Maintain and manipulate the context of a Koha script
110
C4::Context - Maintain and manipulate the context of a Koha script
Lines 472-483 sub preference { Link Here
472
489
473
    # Look up systempreferences.variable==$var
490
    # Look up systempreferences.variable==$var
474
    my $sql = <<'END_SQL';
491
    my $sql = <<'END_SQL';
475
        SELECT    value
492
        SELECT    variable, value
476
        FROM    systempreferences
493
        FROM    systempreferences
477
        WHERE    variable=?
478
        LIMIT    1
479
END_SQL
494
END_SQL
480
    $sysprefs{$var} = $dbh->selectrow_array( $sql, {}, $var );
495
    my $sysprefs_arrayref;
496
    $sysprefs_arrayref = $dbh->selectcol_arrayref( $sql, { Columns=>[1,2] });
497
    %sysprefs= @$sysprefs_arrayref;
481
    return $sysprefs{$var};
498
    return $sysprefs{$var};
482
}
499
}
483
500
(-)a/C4/Languages.pm (-19 / +19 lines)
Lines 23-28 use strict; Link Here
23
#use warnings; FIXME - Bug 2505
23
#use warnings; FIXME - Bug 2505
24
use Carp;
24
use Carp;
25
use C4::Context;
25
use C4::Context;
26
use List::MoreUtils qw/any/;
26
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG);
27
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG);
27
28
28
eval {
29
eval {
Lines 36-44 eval { Link Here
36
            key_prefix => C4::Context->config('memcached_namespace') || 'koha',
37
            key_prefix => C4::Context->config('memcached_namespace') || 'koha',
37
        };
38
        };
38
39
39
        memoize_memcached('getTranslatedLanguages', memcached => $memcached, expire_time => 600); #cache for 10 minutes
40
        memoize_memcached('getTranslatedLanguages', memcached => $memcached, expire_time => 600000); #cache for 10 minutes
40
        memoize_memcached('getFrameworkLanguages' , memcached => $memcached, expire_time => 600);
41
        memoize_memcached('getFrameworkLanguages' , memcached => $memcached, expire_time => 600000);
41
        memoize_memcached('getAllLanguages',        memcached => $memcached, expire_time => 600);
42
        memoize_memcached('getAllLanguages',        memcached => $memcached, expire_time => 600000);
43
        memoize_memcached('language_get_description',        memcached => $memcached, expire_time => 600000);
42
    }
44
    }
43
};
45
};
44
46
Lines 94-110 sub getFrameworkLanguages { Link Here
94
    closedir MYDIR;
96
    closedir MYDIR;
95
97
96
    # pull out all data for the dir names that exist
98
    # pull out all data for the dir names that exist
97
    for my $dirname (@listdir) {
99
    my @languages=grep {
98
        for my $language_set (@$all_languages) {
100
                    my $language=$_; 
99
101
                    any {$language->{languagecode} eq $_
100
            if ($dirname eq $language_set->{language_code}) {
102
                        } @listdir
101
                push @languages, {
103
                  } @$all_languages;
102
                    'language_code'=>$dirname, 
103
                    'language_description'=>$language_set->{language_description}, 
104
                    'native_descrition'=>$language_set->{language_native_description} }
105
            }
106
        }
107
    }
108
    return \@languages;
104
    return \@languages;
109
}
105
}
110
106
Lines 130-136 sub getTranslatedLanguages { Link Here
130
    my @enabled_languages;
126
    my @enabled_languages;
131
 
127
 
132
    if ($interface && $interface eq 'opac' ) {
128
    if ($interface && $interface eq 'opac' ) {
133
        @enabled_languages = split ",", C4::Context->preference('opaclanguages');
129
        my $languages= C4::Context->preference('opaclanguage') ||'en';
130
        @enabled_languages = split ",", $languages;
134
        $htdocs = C4::Context->config('opachtdocs');
131
        $htdocs = C4::Context->config('opachtdocs');
135
        if ( $theme and -d "$htdocs/$theme" ) {
132
        if ( $theme and -d "$htdocs/$theme" ) {
136
            (@languages) = _get_language_dirs($htdocs,$theme);
133
            (@languages) = _get_language_dirs($htdocs,$theme);
Lines 142-148 sub getTranslatedLanguages { Link Here
142
        }
139
        }
143
    }
140
    }
144
    elsif ($interface && $interface eq 'intranet' ) {
141
    elsif ($interface && $interface eq 'intranet' ) {
145
        @enabled_languages = split ",", C4::Context->preference('language');
142
        my $languages= C4::Context->preference('language') ||'en';
143
        @enabled_languages = split ",", $languages;
146
        $htdocs = C4::Context->config('intrahtdocs');
144
        $htdocs = C4::Context->config('intrahtdocs');
147
        if ( $theme and -d "$htdocs/$theme" ) {
145
        if ( $theme and -d "$htdocs/$theme" ) {
148
            @languages = _get_language_dirs($htdocs,$theme);
146
            @languages = _get_language_dirs($htdocs,$theme);
Lines 154-160 sub getTranslatedLanguages { Link Here
154
        }
152
        }
155
    }
153
    }
156
    else {
154
    else {
157
        @enabled_languages = split ",", C4::Context->preference('opaclanguages');
155
        my $languages= C4::Context->preference('opaclanguage') ||'en';
156
        @enabled_languages = split ",", $languages;
158
        my $htdocs = C4::Context->config('intrahtdocs');
157
        my $htdocs = C4::Context->config('intrahtdocs');
159
        foreach my $theme ( _get_themes('intranet') ) {
158
        foreach my $theme ( _get_themes('intranet') ) {
160
            push @languages, _get_language_dirs($htdocs,$theme);
159
            push @languages, _get_language_dirs($htdocs,$theme);
Lines 184-191 Returns a reference to an array of hashes: Link Here
184
183
185
=cut
184
=cut
186
185
186
my @languages_loop;
187
187
sub getAllLanguages {
188
sub getAllLanguages {
188
    my @languages_loop;
189
    return   \@languages_loop if scalar(@languages_loop);
189
    my $dbh=C4::Context->dbh;
190
    my $dbh=C4::Context->dbh;
190
    my $current_language = shift || 'en';
191
    my $current_language = shift || 'en';
191
    my $sth = $dbh->prepare('SELECT * FROM language_subtag_registry WHERE type=\'language\'');
192
    my $sth = $dbh->prepare('SELECT * FROM language_subtag_registry WHERE type=\'language\'');
192
- 

Return to bug 6000