This enhancement extends the OpacSuppression feature with an optional IP
address range within which results are _not_ suppressed.
To test
* turn on OpacSuppression (Administration->System preferences->Cataloging) and
enter an IP address range in the OpacSuppressionByIPRange field.
* set at least one bibliographic record to suppress=1 (enter '1' in 942$n)
* fully reindex your data
* do an OPAC search that should bring up your suppressed record
* try with IP ranges that match your IP and ranges that don't
---
installer/data/mysql/sysprefs.sql | 2 ++
installer/data/mysql/updatedatabase.pl | 7 +++++++
.../en/modules/admin/preferences/cataloguing.pref | 4 ++++
opac/opac-search.pl | 12 +++++++++++-
4 files changed, 24 insertions(+), 1 deletions(-)
diff --git a/installer/data/mysql/sysprefs.sql
b/installer/data/mysql/sysprefs.sql
index 7009155..2ffe89b 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -375,3 +375,5 @@ INSERT INTO systempreferences
(variable,value,options,explanation,type) VALUES (
INSERT INTO systempreferences (variable,value,explanation,type)
VALUES('EnableBorrowerFiles','0','If enabled, allows librarians to upload and
attach arbitrary files to a borrower record.','YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type)
VALUES('UpdateTotalIssuesOnCirc','0','Whether to update the totalissues field
in the biblio on each circ.',NULL,'YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type)
VALUES('IntranetSlipPrinterJS','','Use this JavaScript for printing slips.
Define at least function printThenClose(). For use e.g. with Firefox PlugIn
jsPrintSetup, see http://jsprintsetup.mozdev.org/','','Free');
+INSERT INTO systempreferences (variable,value,explanation,options,type)
VALUES('OpacSuppressionByIPRange','','Restrict the suppression to IP adresses
outside of the IP range','','free');
+
diff --git a/installer/data/mysql/updatedatabase.pl
b/installer/data/mysql/updatedatabase.pl
index bb96644..237cd47 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -5536,6 +5536,13 @@ if ( C4::Context->preference("Version") <
TransformToNum($DBversion) ) {
SetVersion($DBversion);
}
+$DBversion = 'XXX';
+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+ $dbh->do("INSERT INTO systempreferences
(variable,value,explanation,options,type)
VALUES('OpacSuppressionByIPRange','','Restrict the suppression to IP adresses
outside of the IP range','','free');");
+ print "Upgrade to $DBversion done (Add OpacSuppressionByIPRange syspref)\n";
+ SetVersion ($DBversion);
+}
+
=head1 FUNCTIONS
=head2 TableExists($table)
diff --git
a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref
b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref
index fe5fd05..0545c3a 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref
@@ -141,4 +141,8 @@ Cataloging:
yes: Hide
no: "Don't hide"
- items marked as suppressed from OPAC search results. Note that
you must have the <code>Suppress</code> index set up in Zebra and at least one
suppressed item, or your searches will be broken.
+ - Restrict the suppression to IP adresses outside of the IP range
+ - pref: OpacSuppressionByIPRange
+ class: short
+ - (Leave blank if not used. Define a range like
<code>192.168.</code>.)
diff --git a/opac/opac-search.pl b/opac/opac-search.pl
index 1e5a0d7..5646443 100755
--- a/opac/opac-search.pl
+++ b/opac/opac-search.pl
@@ -449,7 +449,17 @@ my @limit_inputs = $limit_cgi ?
_input_cgi_parse($limit_cgi) : ();
#
# add OPAC suppression - requires at least one item indexed with Suppress
if (C4::Context->preference('OpacSuppression')) {
- $query = "($query) not Suppress=1";
+ # OPAC suppression by IP address
+ if (C4::Context->preference('OpacSuppressionByIPRange')) {
+ my $IPAddress = $ENV{'REMOTE_ADDR'};
+ my $IPRange = C4::Context->preference('OpacSuppressionByIPRange');
+ if ($IPAddress !~ /^$IPRange/) {
+ $query = "($query) not Suppress=1";
+ }
+ }
+ else {
+ $query = "($query) not Suppress=1";
+ }
}
$template->param ( LIMIT_INPUTS => \@limit_inputs );
--
1.7.2.5
_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/