[3.0.x](bug #3349) Display full borrower address
[koha.git] / opac / opac-browser.pl
index f1d98f0..df9c3ca 100755 (executable)
 # 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;