X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=opac%2Fopac-browser.pl;h=0e9a6326337538f32022b7a2fefed62cc4fde040;hb=0c40ff9f9814295fe27f52047bfbe4ef7b47e78b;hp=360dcd9860090fc31fd6653b477df3b7272fb3e3;hpb=606ecb532aa42562687bf0d05b4d6df6697300d7;p=srvgit diff --git a/opac/opac-browser.pl b/opac/opac-browser.pl index 360dcd9860..0e9a632633 100755 --- a/opac/opac-browser.pl +++ b/opac/opac-browser.pl @@ -13,19 +13,20 @@ # 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. -=head1 opac-tags_subject.pl +=head1 opac-browser.pl TODO :: Description here =cut use strict; -require Exporter; +use warnings; + use C4::Auth; use C4::Context; use C4::Output; @@ -43,7 +44,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( template_name => "opac-browser.tmpl", query => $query, type => "opac", - authnotrequired => 1, + authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), debug => 1, } ); @@ -51,6 +52,7 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( # the level of browser to display my $level = $query->param('level') || 0; my $filter = $query->param('filter'); +$filter = '' unless defined $filter; $level++; # the level passed is the level of the PREVIOUS list, not the current one. Thus the ++ # build this level loop @@ -60,24 +62,43 @@ my @level_loop; my $i=0; while (my $line = $sth->fetchrow_hashref) { $line->{description} =~ s/\((.*)\)//g; - $i++; - $line->{count3}=1 unless $i %3; push @level_loop,$line; } +my $have_hierarchy = 0; + # now rebuild hierarchy loop -$sth = $dbh->prepare("SELECT * FROM browser where classification=?"); $filter =~ s/\.//g; my @hierarchy_loop; -for (my $i=1;$i <=length($filter);$i++) { - $sth->execute(substr($filter,0,$i)); - my $line = $sth->fetchrow_hashref; - push @hierarchy_loop,$line; +if ($filter eq '' and $level == 1) { + # we're starting from the top + $have_hierarchy = 1 if @level_loop; + unless (@level_loop) { + $sth->execute(1, "%"); + while (my $line = $sth->fetchrow_hashref) { + $line->{description} =~ s/\((.*)\)//g; + push @level_loop,$line; + } + } +} else { + $sth = $dbh->prepare("SELECT * FROM browser where classification=?"); + for (my $i=1;$i <=length($filter);$i++) { + $sth->execute(substr($filter,0,$i)); + my $line = $sth->fetchrow_hashref; + push @hierarchy_loop,$line; + } + $have_hierarchy = 1 if @hierarchy_loop; +} + +# mark every third entry in level_loop +for (my $i = 0; $i <= $#level_loop; $i++) { + $level_loop[$i]->{count3} = 1 if 2 == $i % 3 && $i != $#level_loop; } $template->param( LEVEL_LOOP => \@level_loop, HIERARCHY_LOOP => \@hierarchy_loop, + have_hierarchy => $have_hierarchy, ); output_html_with_http_headers $query, $cookie, $template->output;