X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=opac%2Fopac-browser.pl;h=0e9a6326337538f32022b7a2fefed62cc4fde040;hb=3d35521c0b39274a923e9e0a0a21219d6aa6348f;hp=f1d98f09ce45c9a77472dae7e950820fe5843f99;hpb=4bf76c2d77cb32dd7147b11334eb17aa959955ba;p=koha.git diff --git a/opac/opac-browser.pl b/opac/opac-browser.pl index f1d98f09ce..0e9a632633 100755 --- a/opac/opac-browser.pl +++ b/opac/opac-browser.pl @@ -13,18 +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; +use warnings; + use C4::Auth; use C4::Context; use C4::Output; @@ -42,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, } ); @@ -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;