X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=html.pl;h=ac4aeb3d047bbfa968a7895cae07dc453a36dde6;hb=7e31766306311ff51ff691ea631ccd9a5a126138;hp=cb76f145f60630cf72dad4fb612e3ebbd41d2e75;hpb=4d179b347d0fd811891bb675bd56f7772e3c88e7;p=koha-bibliografija diff --git a/html.pl b/html.pl index cb76f14..ac4aeb3 100755 --- a/html.pl +++ b/html.pl @@ -311,23 +311,32 @@ while( my $row = $sth_select_authors->fetchrow_hashref ) { $type_stats->{$type}++; - if ( $type =~ m/(edt|trl|com|ctb)/ ) { - push @{ $authors->{$authid}->{sec}->{ $category } }, $row->{biblionumber}; - push @{ $authors->{$authid}->{$1}->{ $category } }, $row->{biblionumber}; - } elsif ( $type =~ m/aut/ ) { - if ( ! $have_100 ) { - $have_edt = grep { exists $_->{4} && $_->{4} =~ m/edt/ } @{ $data->{700} } if ! defined $have_edt; - if ( $have_edt ) { - $skip->{ have_700_edt }->{ $row->{biblionumber} }++; + my @types = split(/\s+/, $type); + + foreach my $type ( @types ) { + $type_stats->{_count_each_type}->{$type}++; + + if ( $type =~ m/(edt|trl|com|ctb)/ ) { + push @{ $authors->{$authid}->{sec}->{ $category } }, $row->{biblionumber}; + push @{ $authors->{$authid}->{$type}->{ $category } }, $row->{biblionumber}; + $type =~ s/(com|ctb)/_ostalo/; + push @{ $authors->{$authid}->{$type}->{ $category } }, $row->{biblionumber}; + + } elsif ( $type =~ m/aut/ ) { + if ( ! $have_100 ) { + $have_edt = grep { exists $_->{4} && $_->{4} =~ m/edt/ } @{ $data->{700} } if ! defined $have_edt; + if ( $have_edt ) { + $skip->{ have_700_edt }->{ $row->{biblionumber} }++; + } else { + push @{ $authors->{$authid}->{aut}->{ $category } }, $row->{biblionumber}; + } } else { push @{ $authors->{$authid}->{aut}->{ $category } }, $row->{biblionumber}; } } else { - push @{ $authors->{$authid}->{aut}->{ $category } }, $row->{biblionumber}; +# warn "# SKIP ", $row->{biblionumber}, ' no 700$4 in ', dump($data); + $skip->{ 'no_700$4' }->{ $row->{biblionumber} }++; } - } else { -# warn "# SKIP ", $row->{biblionumber}, ' no 700$4 in ', dump($data); - $skip->{ 'no_700$4' }->{ $row->{biblionumber} }++; } } delete $data->{700}; @@ -410,7 +419,7 @@ sub author_html { return unless exists $authors->{$authid}->{$type}; - print $fh qq|

$label

\n|; + print $fh qq|

$label

\n|; foreach my $category ( sort keys %{ $authors->{$authid}->{$type} } ) { my $label = $category_label->{$category} || 'Bez kategorije'; @@ -436,6 +445,13 @@ sub count_author_years { return $years; } +my @toc_type_label = ( +'aut' => 'Primarno autorstvo', +'edt' => 'UredniÅ¡tva', +'trl' => 'Prijevodi', +'_ostalo' => 'Ostalo', +); + sub html_year_selection { my $fh = shift; my @authids = @_; @@ -452,6 +468,9 @@ sub html_year_selection { print $fh qq| \n|; foreach my $type_cat ( keys %{ $years->{$year} } ) { $type_cat_count->{ $type_cat } += $years->{$year}->{$type_cat}; + my ($type,$cat) = split(/-/, $type_cat); + $type_cat_count->{_toc}->{$type}->{$cat}++; + $type_cat_count->{_toc_count}->{$type} += $years->{$year}->{$type_cat}; } } @@ -477,6 +496,7 @@ function year_show(year) { $('a[name="'+type_cat+'"]').show(); console.debug(type_cat, 'show'); } + $('#toc-count-'+type_cat.replace('.','-')).text( type_cat_count[ type_cat ] ); } } @@ -488,6 +508,7 @@ function year_hide(year) { $('a[name="'+type_cat+'"]').hide(); console.debug(type_cat, 'hide'); } + $('#toc-count-'+type_cat.replace('.','-')).text( type_cat_count[ type_cat ] ); } } @@ -526,9 +547,31 @@ $(document).ready( function() { }); + |; + + # TOC + print $fh qq|\n|; + } + foreach my $row ( sort { $a->{full_name} cmp $b->{full_name} } @authors ) { my $first = substr( $row->{full_name}, 0, 1 ); @@ -546,8 +589,12 @@ foreach my $row ( sort { $a->{full_name} cmp $b->{full_name} } @authors ) { html_year_selection $fh => $row->{authid}; - author_html( $fh, $row->{authid}, 'aut' => 'Primarno autorstvo' ); - author_html( $fh, $row->{authid}, 'sec' => 'UredniÅ¡tva, prijevodi, kritička izdanja' ); + my $i = 0; + while ( $i < $#toc_type_label ) { + my $type = $toc_type_label[$i++] || die "type"; + my $label = $toc_type_label[$i++] || die "label"; + author_html( $fh, $row->{authid}, $type => $label ); + } print $fh html_end; close($fh); @@ -585,7 +632,7 @@ debug 'department_category_author' => $department_category_author; sub department_html { my ( $fh, $department, $type, $label ) = @_; - print $fh qq|

$label

\n|; + print $fh qq|

$label

\n|; foreach my $category ( sort keys %{ $department_category_author->{$department} } ) { @@ -628,7 +675,10 @@ foreach my $department ( sort keys %$department_category_author ) { department_html( $fh, $department, 'aut', 'Primarno autorstvo' ); - department_html( $fh, $department, 'sec', 'Sekundarno autorstvo' ); +# department_html( $fh, $department, 'sec', 'Sekundarno autorstvo' ); + department_html( $fh, $department, 'edt', 'Uredništva' ); + department_html( $fh, $department, 'trl', 'Prijevodi' ); + department_html( $fh, $department, '_ostalo', 'Ostalo' ); print $fh html_end; close($fh);