Bug Fixing:
[wip/koha-chris_n.git] / opac / opac-main.pl
1 #!/usr/bin/perl
2
3 # This file is part of Koha.
4 #
5 # Koha is free software; you can redistribute it and/or modify it under the
6 # terms of the GNU General Public License as published by the Free Software
7 # Foundation; either version 2 of the License, or (at your option) any later
8 # version.
9 #
10 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License along with
15 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
16 # Suite 330, Boston, MA  02111-1307 USA
17
18 # $Id$
19
20 use strict;
21 require Exporter;
22 use CGI;
23 use C4::Auth;    # get_template_and_user
24 use C4::Output;
25 use C4::BookShelves;
26 use C4::Languages;           # getTranslatedLanguages
27 use C4::Branch;         # GetBranches
28 use C4::Members;        # GetMember
29 use C4::NewsChannels;   # get_opac_news
30 use C4::Acquisition;    # GetRecentAcqui
31
32 my $input = new CGI;
33 my $dbh   = C4::Context->dbh;
34
35 my $limit = $input->param('recentacqui');
36
37 my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
38     {
39         template_name   => "opac-main.tmpl",
40         type            => "opac",
41         query           => $input,
42         authnotrequired => 1,
43         flagsrequired   => { borrow => 1 },
44     }
45 );
46
47 if($limit) {
48     my $recentacquiloop = GetRecentAcqui($limit);
49 #     warn Data::Dumper::Dumper($recentacquiloop);
50     $template->param(
51         recentacquiloop => $recentacquiloop,
52     );
53 }
54
55 # SearchMyLibraryFirst
56 if (C4::Context->preference("SearchMyLibraryFirst")){
57   if (C4::Context->userenv){
58   my $branches = GetBranches();
59   my @branchloop;  
60   
61   foreach my $thisbranch (keys %$branches) {
62         my $selected = 1 if (C4::Context->userenv && ($thisbranch eq C4::Context->userenv->{branch}));
63 #         warn $thisbranch;
64 #         warn C4::Context->userenv;
65 #         warn C4::Context->userenv->{branch};
66 #         warn " => ".C4::Context->userenv && ($thisbranch eq C4::Context->userenv->{branch});
67         my %row =(value => $thisbranch,
68                                 selected => $selected,
69                                 branchname => $branches->{$thisbranch}->{'branchname'},
70                         );
71         push @branchloop, \%row;
72   }
73     $template->param("mylibraryfirst"=>1,branchloop=>\@branchloop);
74   } else {
75     $template->param("mylibraryfirst"=>0)
76    }
77 }
78
79     my $borrower = GetMember( $borrowernumber,'borrowernumber' );
80 my @languages;
81 my $counter = 0;
82 my $langavail = getTranslatedLanguages('opac');
83 foreach my $language ( @$langavail ) {
84     #   next if $currently_selected_languages->{$language};
85         #   FIXME: could incorporate language_name and language_locale_name for better display
86     push @languages, { language => $language->{'language_code'}, counter => $counter };
87     $counter++;
88 }
89
90 # Template params
91 if ( $counter > 1 ) {
92     $template->param(languages => \@languages) if C4::Context->preference('opaclanguagesdisplay');
93 }
94
95 $template->param(
96     textmessaging        => $borrower->{textmessaging},
97     opaclanguagesdisplay => 0,
98 );
99
100 # display news
101 # use cookie setting for language, bug default to syspref if it's not set
102 my $news_lang = $input->cookie('KohaOpacLanguage') || C4::Context->preference('opaclanguages');
103 my  $all_koha_news  = &GetNewsToDisplay( $news_lang );
104 my $koha_news_count = scalar @$all_koha_news;
105
106
107 $template->param(
108     koha_news       => $all_koha_news,
109     koha_news_count => $koha_news_count
110 );
111
112 $template->param(
113     'Disable_Dictionary' => C4::Context->preference("Disable_Dictionary") )
114   if ( C4::Context->preference("Disable_Dictionary") );
115
116 output_html_with_http_headers $input, $cookie, $template->output;