diff --git a/C4/Context.pm b/C4/Context.pm index 1bf23c23ce..4ff47af54a 100644 --- a/C4/Context.pm +++ b/C4/Context.pm @@ -615,7 +615,7 @@ sub set_preference { $value = 0 if ( $type && $type eq 'YesNo' && $value eq '' ); # force explicit protocol on OPACBaseURL - if ( $variable eq 'opacbaseurl' && substr( $value, 0, 4 ) !~ /http/ ) { + if ( $variable eq 'opacbaseurl' && $value && substr( $value, 0, 4 ) !~ /http/ ) { $value = 'http://' . $value; } diff --git a/t/db_dependent/Context.t b/t/db_dependent/Context.t index b5a050faf6..bce0cef209 100755 --- a/t/db_dependent/Context.t +++ b/t/db_dependent/Context.t @@ -39,6 +39,10 @@ C4::Context->clear_syspref_cache(); $OPACBaseURL = C4::Context->preference('OPACBaseURL'); is($OPACBaseURL,'http://junk2','OPACBaseURL saved with http:// as specified'); +C4::Context->set_preference('OPACBaseURL', ''); +$OPACBaseURL = C4::Context->preference('OPACBaseURL'); +is($OPACBaseURL,'','OPACBaseURL saved empty as specified'); + C4::Context->set_preference('SillyPreference','random'); C4::Context->clear_syspref_cache(); my $SillyPeference = C4::Context->preference('SillyPreference');