projects
/
koha-bibliografija
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
check year validity and report invalid_year in $skip
[koha-bibliografija]
/
html.pl
diff --git
a/html.pl
b/html.pl
index
0c55a7a
..
84d54e2
100755
(executable)
--- a/
html.pl
+++ b/
html.pl
@@
-126,7
+126,7
@@
while( my $row = $sth_select_authors->fetchrow_hashref ) {
my ( undef, $doc ) = biblioitem_html( $row->{biblionumber} );
if ( ! $doc ) {
my ( undef, $doc ) = biblioitem_html( $row->{biblionumber} );
if ( ! $doc ) {
-
warn "ERROR can't parse MARCXML ", $row->{biblionumber}, " ", $row->{marcxml}, "\n";
+
#
warn "ERROR can't parse MARCXML ", $row->{biblionumber}, " ", $row->{marcxml}, "\n";
next;
}
next;
}
@@
-155,7
+155,12
@@
while( my $row = $sth_select_authors->fetchrow_hashref ) {
if ($elt->localname eq 'controlfield') {
if ( $tag eq '008' ) {
if ($elt->localname eq 'controlfield') {
if ( $tag eq '008' ) {
- $biblio_year->{ $row->{biblionumber} } = $elt->textContent;
+ my $year = substr($elt->textContent, 7, 4 );
+ if ( $year !~ m/^\d+$/ ) {
+ $year = 0;
+ push @{ $skip->{invalid_year} }, $row->{biblionumber};
+ }
+ $biblio_year->{ $row->{biblionumber} } = $data->{year} = $year;
}
next;
} elsif ($elt->localname eq 'datafield') {
}
next;
} elsif ($elt->localname eq 'datafield') {
@@
-173,6
+178,14
@@
while( my $row = $sth_select_authors->fetchrow_hashref ) {
}
}
}
}
+ if ( $data->{year} < 2008 ) {
+ push @{ $skip->{year_lt_2008} }, $row->{biblionumber};
+ next;
+ } elsif ( $data->{year} > 2013 ) {
+ push @{ $skip->{year_gt_2013} }, $row->{biblionumber};
+ next;
+ }
+
# warn "# ", $row->{biblionumber}, " data ",dump($data);
my $category = $data->{942}->[0]->{'t'};
# warn "# ", $row->{biblionumber}, " data ",dump($data);
my $category = $data->{942}->[0]->{'t'};
@@
-229,6
+242,7
@@
while( my $row = $sth_select_authors->fetchrow_hashref ) {
debug 'authors' => $authors;
debug 'type_stats' => $type_stats;
debug 'skip' => $skip;
debug 'authors' => $authors;
debug 'type_stats' => $type_stats;
debug 'skip' => $skip;
+debug 'biblio_year' => $biblio_year;
my $category_label;
my $sth_categories = $dbh->prepare(q{
my $category_label;
my $sth_categories = $dbh->prepare(q{
@@
-337,6
+351,13
@@
debug 'department_category_author' => $department_category_author;
mkdir 'html/departments' unless -d 'html/departments';
mkdir 'html/departments' unless -d 'html/departments';
+sub unique_biblionumber {
+ my @v = @_;
+ my $u;
+ $u->{$_}++ foreach @v;
+ return sort { $biblio_year->{$b} <=> $biblio_year->{$a} || $a <=> $b } keys %$u;
+}
+
open(my $dep_fh, '>:encoding(utf-8)', 'html/departments/index.new');
print $dep_fh html_title('Odsijeci Filozofskog fakulteta u Zagrebu'), qq|<ul>\n|;
foreach my $department ( sort keys %$department_category_author ) {
open(my $dep_fh, '>:encoding(utf-8)', 'html/departments/index.new');
print $dep_fh html_title('Odsijeci Filozofskog fakulteta u Zagrebu'), qq|<ul>\n|;
foreach my $department ( sort keys %$department_category_author ) {
@@
-355,7
+376,9
@@
foreach my $department ( sort keys %$department_category_author ) {
my @authids = @{ $department_category_author->{$department}->{$category} };
next unless @authids;
my @authids = @{ $department_category_author->{$department}->{$category} };
next unless @authids;
- my @biblionumber = map { @{ $authors->{$_}->{aut}->{$category} } } grep { exists $authors->{$_}->{aut}->{$category} } @authids;
+ my @biblionumber = unique_biblionumber map { @{ $authors->{$_}->{aut}->{$category} } } grep { exists $authors->{$_}->{aut}->{$category} } @authids;
+ my $unique;
+ $unique->{$_}++ foreach @biblionumber;
next unless @biblionumber;
next unless @biblionumber;
@@
-375,7
+398,7
@@
foreach my $department ( sort keys %$department_category_author ) {
my @authids = @{ $department_category_author->{$department}->{$category} };
next unless @authids;
my @authids = @{ $department_category_author->{$department}->{$category} };
next unless @authids;
- my @biblionumber = map { @{ $authors->{$_}->{sec}->{$category} } } grep { exists $authors->{$_}->{sec}->{$category} } @authids;
+ my @biblionumber =
unique_biblionumber
map { @{ $authors->{$_}->{sec}->{$category} } } grep { exists $authors->{$_}->{sec}->{$category} } @authids;
next unless @biblionumber;
next unless @biblionumber;