@@ -, +, @@ SetEnv OVERRIDE_SYSPREF_OpacHighlightedWords "1" to your koha-http.conf file's OPAC section. Also add the line SetEnv OVERRIDE_SYSPREF_NAMES "OpacHighlightedWords" to the Intranet section You should see a warning the this preference has been overridden. --- C4/Context.pm | 27 ++++++++++++------- admin/preferences.pl | 5 +++- etc/koha-httpd.conf | 12 +++++++++ .../intranet-tmpl/prog/en/css/preferences.css | 8 +++++- .../prog/en/modules/admin/preferences.tt | 6 ++++ 5 files changed, 46 insertions(+), 12 deletions(-) --- a/C4/Context.pm +++ a/C4/Context.pm @@ -540,7 +540,7 @@ my $use_syspref_cache = 1; sub preference { my $self = shift; - my $var = lc(shift); # The system preference to return + my $var = shift; # The system preference to return if ($use_syspref_cache && exists $sysprefs{$var}) { return $sysprefs{$var}; @@ -548,15 +548,22 @@ sub preference { my $dbh = C4::Context->dbh or return 0; - # Look up systempreferences.variable==$var - my $sql = <<'END_SQL'; - SELECT value - FROM systempreferences - WHERE variable=? - LIMIT 1 -END_SQL - $sysprefs{$var} = $dbh->selectrow_array( $sql, {}, $var ); - return $sysprefs{$var}; + my $value; + if ( defined $ENV{"OVERRIDE_SYSPREF_$var"} ) { + $value = $ENV{"OVERRIDE_SYSPREF_$var"}; + } else { + # Look up systempreferences.variable==$var + my $sql = q{ + SELECT value + FROM systempreferences + WHERE variable = ? + LIMIT 1 + }; + $value = $dbh->selectrow_array( $sql, {}, $var ); + } + + $sysprefs{$var} = $value; + return $value; } sub boolean_preference { --- a/admin/preferences.pl +++ a/admin/preferences.pl @@ -33,6 +33,7 @@ use C4::Budgets qw(GetCurrency); use File::Spec; use IO::File; use YAML::Syck qw(); +use List::MoreUtils qw(any); $YAML::Syck::ImplicitTyping = 1; our $lang; @@ -120,6 +121,8 @@ sub TransformPrefsToHTML { my $tab = $data->{ $title }; $tab = { '' => $tab } if ( ref( $tab ) eq 'ARRAY' ); + my @override_syspref_names = split( /,/, $ENV{"OVERRIDE_SYSPREF_NAMES"} ); + foreach my $group ( sort keys %$tab ) { if ( $group ) { push @lines, { is_group_title => 1, title => $group }; @@ -156,6 +159,7 @@ sub TransformPrefsToHTML { $name_entry->{'highlighted'} = 1; } } + $name_entry->{'overridden'} = 1 if ( any { $name eq $_ } @override_syspref_names ); push @names, $name_entry; } else { push @chunks, $piece; @@ -164,7 +168,6 @@ sub TransformPrefsToHTML { push @chunks, { type_text => 1, contents => $piece }; } } - push @lines, { CHUNKS => \@chunks, NAMES => \@names, is_group_title => 0 }; } } --- a/etc/koha-httpd.conf +++ a/etc/koha-httpd.conf @@ -20,6 +20,13 @@ SetEnv MEMCACHED_SERVERS "__MEMCACHED_SERVERS__" SetEnv MEMCACHED_NAMESPACE "__MEMCACHED_NAMESPACE__" + # This syntax allows you to override a system preference + # for a given virtual host. Use with caution! + # You should add all the system preferences you override + # in one of more vhosts to the environment variable + # OVERRIDE_SYSPREF_NAMES for your staff intranet vhost +# SevEnv OVERRIDE_SYSPREF_PrefName + Options -Indexes @@ -126,6 +133,11 @@ SetEnv MEMCACHED_NAMESPACE "__MEMCACHED_NAMESPACE__" Options +FollowSymLinks + # If you are overriding any system preferences, + # list them this variable so the preference editor + # knows that they have been overridden. +# SevEnv OVERRIDE_SYSPREF_NAMES "Pref1,Pref2,Pref3" + ErrorDocument 400 /cgi-bin/koha/errors/400.pl ErrorDocument 401 /cgi-bin/koha/errors/401.pl ErrorDocument 403 /cgi-bin/koha/errors/403.pl --- a/koha-tmpl/intranet-tmpl/prog/en/css/preferences.css +++ a/koha-tmpl/intranet-tmpl/prog/en/css/preferences.css @@ -82,4 +82,10 @@ h3.collapsed { background: transparent url("../../img/spinner-small.gif") top left no-repeat; padding : 0 4px; vertical-align: middle; -} +} + +span.overridden { + font-style: italic; + font-weight: bold; + color: red; +} --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt @@ -89,6 +89,12 @@ [% ELSE %] [% NAME.name %] [% END %] + + [% IF NAME.overridden %] + + [Overridden] + + [% END %] [% UNLESS ( loop.last ) %]
[% END %] [% END %] --