X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=opac%2Fopac-suggestions.pl;h=ac6172d4cc2fe23937ada09c4caef8c482416040;hb=5d6c092921919526ade501facb1220f8a108a08f;hp=7c07c9f65b0aeda821cf7b37caf7cd9d15a50a03;hpb=4747ea7462c04770484386538b1594c1760bc75b;p=koha_fer diff --git a/opac/opac-suggestions.pl b/opac/opac-suggestions.pl index 7c07c9f65b..ac6172d4cc 100755 --- a/opac/opac-suggestions.pl +++ b/opac/opac-suggestions.pl @@ -11,31 +11,42 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; use warnings; use CGI; use C4::Auth; # get_template_and_user +use C4::Members; use C4::Branch; use C4::Koha; use C4::Output; use C4::Suggestions; use C4::Koha; use C4::Dates; +use C4::Scrubber; my $input = new CGI; my $allsuggestions = $input->param('showall'); my $op = $input->param('op'); my $suggestion = $input->Vars; +my $negcaptcha = $input->param('negcap'); + +# If a spambot accidentally populates the 'negcap' field in the sugesstions form, then silently skip and return. +if ($negcaptcha ) { + print $input->redirect("/cgi-bin/koha/opac-suggestions.pl"); + exit; +} + delete $$suggestion{$_} foreach qw; $op = 'else' unless $op; my ( $template, $borrowernumber, $cookie ); - +my $deleted = $input->param('deleted'); +my $submitted = $input->param('submitted'); if ( C4::Context->preference("AnonSuggestions") ) { ( $template, $borrowernumber, $cookie ) = get_template_and_user( @@ -43,11 +54,11 @@ if ( C4::Context->preference("AnonSuggestions") ) { template_name => "opac-suggestions.tmpl", query => $input, type => "opac", - authnotrequired => 1, + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), } ); if ( !$$suggestion{suggestedby} ) { - $$suggestion{suggestedby} = C4::Context->preference("AnonSuggestions"); + $$suggestion{suggestedby} = C4::Context->preference("AnonymousPatron"); } } else { @@ -66,17 +77,22 @@ if ($allsuggestions){ else { $$suggestion{suggestedby} ||= $borrowernumber unless ($allsuggestions); } -warn "bornum:",$borrowernumber; -use YAML; +# warn "bornum:",$borrowernumber; + my $suggestions_loop = &SearchSuggestion( $suggestion); if ( $op eq "add_confirm" ) { if (@$suggestions_loop>=1){ - #some suggestion are answering the request Donot Add - } + #some suggestion are answering the request Donot Add + } else { - $$suggestion{'suggestioncreateddate'}=C4::Dates->today; - $$suggestion{'branchcode'}=C4::Context->userenv->{"branch"}; + my $scrubber = C4::Scrubber->new(); + foreach my $suggest (keys %$suggestion){ + $suggestion->{$suggest} = $scrubber->scrub($suggestion->{$suggest}); + } + $$suggestion{'suggesteddate'}=C4::Dates->today; + $$suggestion{'branchcode'}= $input->param('branch') || C4::Context->userenv->{"branch"}; + &NewSuggestion($suggestion); # empty fields, to avoid filter in "SearchSuggestion" $$suggestion{$_}='' foreach qw; @@ -84,6 +100,8 @@ if ( $op eq "add_confirm" ) { &SearchSuggestion( $suggestion ); } $op = 'else'; + print $input->redirect("/cgi-bin/koha/opac-suggestions.pl?op=else&submitted=1"); + exit; } if ( $op eq "delete_confirm" ) { @@ -92,26 +110,58 @@ if ( $op eq "delete_confirm" ) { &DelSuggestion( $borrowernumber, $delete_field ); } $op = 'else'; + print $input->redirect("/cgi-bin/koha/opac-suggestions.pl?op=else&deleted=1"); + exit; } -map{ $_->{'branchcodesuggestedby'}=GetBranchInfo($_->{'branchcodesuggestedby'})->[0]->{'branchname'}} @$suggestions_loop; -my $supportlist=GetSupportList(); +map{ $_->{'branchcodesuggestedby'}=GetBranchInfo($_->{'branchcodesuggestedby'})->[0]->{'branchname'}} @$suggestions_loop; +my $supportlist=GetSupportList(); foreach my $support(@$supportlist){ if ($$support{'imageurl'}){ - $$support{'imageurl'}= getitemtypeimagelocation( 'intranet', $$support{'imageurl'} ); + $$support{'imageurl'}= getitemtypeimagelocation( 'opac', $$support{'imageurl'} ); } else { delete $$support{'imageurl'} } } + +foreach my $suggestion(@$suggestions_loop) { + if($suggestion->{'suggestedby'} == $borrowernumber) { + $suggestion->{'showcheckbox'} = $borrowernumber; + } else { + $suggestion->{'showcheckbox'} = 0; + } + if($suggestion->{'patronreason'}){ + $suggestion->{'patronreason'} = GetKohaAuthorisedValueLib("OPAC_SUG",$suggestion->{'patronreason'},1); + } +} + +my $patron_reason_loop = GetAuthorisedValues("OPAC_SUG"); + +# Is the person allowed to choose their branch +if ( C4::Context->preference("AllowPurchaseSuggestionBranchChoice") ) { + my ( $borr ) = GetMemberDetails( $borrowernumber ); + +# pass the pickup branch along.... + my $userbranch = ''; + if (C4::Context->userenv && C4::Context->userenv->{'branch'}) { + $userbranch = C4::Context->userenv->{'branch'}; + } + my $branch = $input->param('branch') || $borr->{'branchcode'} || $userbranch || '' ; + +# make branch selection options... + my $branchloop = GetBranchesLoop($branch); + $template->param( branchloop => $branchloop ); +} + $template->param( %$suggestion, itemtypeloop=> $supportlist, suggestions_loop => $suggestions_loop, + patron_reason_loop => $patron_reason_loop, showall => $allsuggestions, "op_$op" => 1, - suggestionsview => 1 + suggestionsview => 1, ); - output_html_with_http_headers $input, $cookie, $template->output;