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};
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 {
use File::Spec;
use IO::File;
use YAML::Syck qw();
+use List::MoreUtils qw(any);
$YAML::Syck::ImplicitTyping = 1;
our $lang;
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 };
$name_entry->{'highlighted'} = 1;
}
}
+ $name_entry->{'overridden'} = 1 if ( any { $name eq $_ } @override_syspref_names );
push @names, $name_entry;
} else {
push @chunks, $piece;
push @chunks, { type_text => 1, contents => $piece };
}
}
-
push @lines, { CHUNKS => \@chunks, NAMES => \@names, is_group_title => 0 };
}
}
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 or more vhosts to the environment variable
+ # OVERRIDE_SYSPREF_NAMES for your staff intranet vhost
+# SevEnv OVERRIDE_SYSPREF_PrefName
+
<Directory "__OPAC_WWW_DIR__">
Options -Indexes
</Directory>
SetEnv MEMCACHED_NAMESPACE "__MEMCACHED_NAMESPACE__"
Options +FollowSymLinks
+ # If you are overriding any system preferences,
+ # list them in 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
background: transparent url("../../img/spinner-small.gif") top left no-repeat;
padding : 0 4px;
vertical-align: middle;
-}
\ No newline at end of file
+}
+
+span.overridden {
+ font-style: italic;
+ font-weight: bold;
+ color: red;
+}
[% ELSE %]
[% NAME.name %]
[% END %]
+
+ [% IF NAME.overridden %]
+ <span class="overridden" title="The system preference [% NAME.name %] been overridden from this value by one or more virtual hosts.">
+ [Overridden]
+ </span>
+ [% END %]
</label>
[% UNLESS ( loop.last ) %]<br />[% END %]
[% END %]