From ace9aa724869d878f098c4713d013361c8c69a9b Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Fri, 15 May 2009 09:40:00 -0500 Subject: [PATCH] bug 1448: improve subject classification browser * turn on warnings * fix problem where the top level of the classification hiearchy wasn't displayed, instead pointing to the link to the Wiki page with instructions on how to set up the feature. * fix XHTML validation errors Signed-off-by: Galen Charlton --- .../prog/en/modules/opac-browser.tmpl | 21 +++++----- opac/opac-browser.pl | 38 +++++++++++++++---- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-browser.tmpl b/koha-tmpl/opac-tmpl/prog/en/modules/opac-browser.tmpl index 726d218369..05f974f3aa 100644 --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-browser.tmpl +++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-browser.tmpl @@ -10,35 +10,36 @@

Browse our catalogue

- +
The browser table is empty. this feature is not fully set-up. See the Koha Wiki for more information on what it does and how to configure it.
@@ -52,4 +53,4 @@
- \ No newline at end of file + diff --git a/opac/opac-browser.pl b/opac/opac-browser.pl index f1d98f09ce..df9c3ca704 100755 --- a/opac/opac-browser.pl +++ b/opac/opac-browser.pl @@ -18,13 +18,15 @@ # Suite 330, Boston, MA 02111-1307 USA -=head1 opac-tags_subject.pl +=head1 opac-browser.pl TODO :: Description here =cut use strict; +use warnings; + use C4::Auth; use C4::Context; use C4::Output; @@ -50,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 @@ -59,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; -- 2.39.5