@@ -, +, @@ Days in Advance problem described. just be a boolean. The text selected="selected" is in the template. decide to apply this patch :) --- C4/Form/MessagingPreferences.pm | 10 ++++++---- C4/Members/Messaging.pm | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) --- a/C4/Form/MessagingPreferences.pm +++ a/C4/Form/MessagingPreferences.pm @@ -25,9 +25,11 @@ use C4::Context; use C4::Members::Messaging; use C4::Debug; +use constant MAX_DAYS_IN_ADVANCE => 30; + =head1 NAME -C4::Form::MessagingPreferences - manage messaging prefernces form +C4::Form::MessagingPreferences - manage messaging preferences form =head1 SYNOPSIS @@ -134,10 +136,10 @@ sub set_form_values { if ( $option->{'takes_days'} ) { my $days_in_advance = $pref->{'days_in_advance'} ? $pref->{'days_in_advance'} : 0; $option->{days_in_advance} = $days_in_advance; - @{$option->{'select_days'}} = map {; { + @{$option->{'select_days'}} = map { { day => $_, - selected => $_ == $days_in_advance ? 'selected="selected"' :'' } - } ( 0..30 ); # FIXME: 30 is a magic number. + selected => $_ == $days_in_advance } + } ( 0..MAX_DAYS_IN_ADVANCE ); } foreach my $transport ( keys %{$pref->{'transports'}} ) { $option->{'transports_'.$transport} = 1; --- a/C4/Members/Messaging.pm +++ a/C4/Members/Messaging.pm @@ -74,7 +74,7 @@ LEFT JOIN borrower_message_transport_preferences ON borrower_message_transport_preferences.borrower_message_preference_id = borrower_message_preferences.borrower_message_preference_id LEFT JOIN message_attributes ON message_attributes.message_attribute_id = borrower_message_preferences.message_attribute_id -JOIN message_transports +LEFT JOIN message_transports ON message_transports.message_attribute_id = message_attributes.message_attribute_id AND message_transports.message_transport_type = borrower_message_transport_preferences.message_transport_type WHERE message_attributes.message_name = ? --