@@ -, +, @@
that can be nested inside a given login tag.
Recommendation: s/Greetings from Koha./Welcome to your library!/g
---
C4/SIP/Sip.pm | 15 +++++++++++++--
C4/SIP/Sip/MsgType.pm | 32 ++++++++++++++++----------------
etc/SIPconfig.xml | 5 ++++-
3 files changed, 33 insertions(+), 19 deletions(-)
--- a/C4/SIP/Sip.pm
+++ a/C4/SIP/Sip.pm
@@ -13,7 +13,7 @@ use POSIX qw(strftime);
use Socket qw(:crlf);
use IO::Handle;
-use Sip::Constants qw(SIP_DATETIME);
+use Sip::Constants qw(SIP_DATETIME FID_SCREEN_MSG);
use Sip::Checksum qw(checksum);
use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
@@ -91,7 +91,18 @@ sub add_field {
# NOTE: if zero is a valid value for your field, don't use maybe_add!
#
sub maybe_add {
- my ($fid, $value) = @_;
+ my ($fid, $value, $server) = @_;
+
+ if ( $fid eq FID_SCREEN_MSG && $server->{account}->{screen_msg_regex} ) {
+ foreach my $regex (
+ ref $server->{account}->{screen_msg_regex} eq "ARRAY"
+ ? @{ $server->{account}->{screen_msg_regex} }
+ : $server->{account}->{screen_msg_regex} )
+ {
+ $value =~ s/$regex->{find}/$regex->{replace}/g;
+ }
+ }
+
return (defined($value) && $value) ? add_field($fid, $value) : '';
}
--- a/C4/SIP/Sip/MsgType.pm
+++ a/C4/SIP/Sip/MsgType.pm
@@ -452,8 +452,8 @@ sub build_patron_status {
$resp .= maybe_add(FID_FEE_AMT, $patron->fee_amount);
}
- $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg );
- $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode} )
+ $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg, $server );
+ $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode}, $server )
if ( $server->{account}->{send_patron_home_library_in_af} );
$resp .= maybe_add(FID_PRINT_LINE, $patron->print_line);
@@ -556,7 +556,7 @@ sub handle_checkout {
$resp .= add_field(FID_DUE_DATE, q{});
}
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
if ($protocol_version >= 2) {
@@ -593,7 +593,7 @@ sub handle_checkout {
# it's not due, so leave the date blank
$resp .= add_field(FID_DUE_DATE, '');
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
if ($protocol_version >= 2) {
@@ -693,7 +693,7 @@ sub handle_checkin {
}
$resp .= maybe_add(FID_ALERT_TYPE, $status->alert_type) if $status->alert;
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
$self->write_msg($resp,undef,$server->{account}->{terminator},$server->{account}->{encoding});
@@ -997,8 +997,8 @@ sub handle_patron_info {
# Custom protocol extension to report patron internet privileges
$resp .= maybe_add(FID_INET_PROFILE, $patron->inet_privileges);
- $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg );
- $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode} )
+ $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg, $server );
+ $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode}, $server )
if ( $server->{account}->{send_patron_home_library_in_af} );
$resp .= maybe_add(FID_PRINT_LINE, $patron->print_line);
@@ -1043,7 +1043,7 @@ sub handle_end_patron_session {
$resp .= add_field(FID_INST_ID, $server->{ils}->institution);
$resp .= add_field(FID_PATRON_ID, $fields->{(FID_PATRON_ID)});
- $resp .= maybe_add(FID_SCREEN_MSG, $screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $print_line);
$self->write_msg($resp,undef,$server->{account}->{terminator},$server->{account}->{encoding});
@@ -1077,7 +1077,7 @@ sub handle_fee_paid {
$resp .= add_field(FID_INST_ID, $inst_id);
$resp .= add_field(FID_PATRON_ID, $patron_id);
$resp .= maybe_add(FID_TRANSACTION_ID, $status->transaction_id);
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
$self->write_msg($resp,undef,$server->{account}->{terminator},$server->{account}->{encoding});
@@ -1143,7 +1143,7 @@ sub handle_item_information {
$resp .= add_field(FID_HOLD_PICKUP_DATE, Sip::timestamp($i));
}
- $resp .= maybe_add(FID_SCREEN_MSG, $item->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $item->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $item->print_line);
}
@@ -1193,7 +1193,7 @@ sub handle_item_status_update {
$resp .= maybe_add(FID_ITEM_PROPS, $item->sip_item_properties);
}
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
$self->write_msg($resp,undef,$server->{account}->{terminator},$server->{account}->{encoding});
@@ -1241,7 +1241,7 @@ sub handle_patron_enable {
sipbool($patron->check_password($patron_pwd)));
}
$resp .= add_field(FID_VALID_PATRON, 'Y');
- $resp .= maybe_add(FID_SCREEN_MSG, $patron->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $patron->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $patron->print_line);
}
@@ -1310,7 +1310,7 @@ sub handle_hold {
}
$resp .= add_field(FID_INST_ID, $ils->institution);
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
$self->write_msg($resp,undef,$server->{account}->{terminator},$server->{account}->{encoding});
@@ -1399,7 +1399,7 @@ sub handle_renew {
}
$resp .= add_field(FID_INST_ID, $ils->institution);
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
$self->write_msg($resp,undef,$server->{account}->{terminator},$server->{account}->{encoding});
@@ -1449,7 +1449,7 @@ sub handle_renew_all {
$resp .= join('', map(add_field(FID_RENEWED_ITEMS , $_), @renewed ));
$resp .= join('', map(add_field(FID_UNRENEWED_ITEMS, $_), @unrenewed));
- $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg);
+ $resp .= maybe_add(FID_SCREEN_MSG, $status->screen_msg, $server);
$resp .= maybe_add(FID_PRINT_LINE, $status->print_line);
$self->write_msg($resp,undef,$server->{account}->{terminator},$server->{account}->{encoding});
@@ -1549,7 +1549,7 @@ sub send_acs_status {
$msg .= add_field(FID_SUPPORTED_MSGS, $supported_msgs);
}
- $msg .= maybe_add(FID_SCREEN_MSG, $screen_msg);
+ $msg .= maybe_add(FID_SCREEN_MSG, $screen_msg, $server);
if (defined($account->{print_width}) && defined($print_line)
&& $account->{print_width} < length($print_line)) {
--- a/etc/SIPconfig.xml
+++ a/etc/SIPconfig.xml
@@ -42,7 +42,10 @@
+ send_patron_home_library_in_af="1" >
+
+
+