use Data::Dump qw(dump);
use autodie;
use locale;
+use Text::Unaccent;
use lib '/srv/koha_ffzg';
use C4::Context;
}
my $auth_header;
+my $auth_department;
my @authors;
my $all_authids = join(',', grep { length($_) > 0 } keys %$authors);
my $sth_auth = $dbh->prepare(q{
select
authid,
- ExtractValue(marcxml,'//datafield[@tag="100"]/subfield[@code="a"]') as full_name
+ ExtractValue(marcxml,'//datafield[@tag="100"]/subfield[@code="a"]') as full_name,
+ ExtractValue(marcxml,'//datafield[@tag="680"]/subfield[@code="a"]') as department
from auth_header
where
- ExtractValue(marcxml,'//datafield[@tag="024"]/subfield[@code="a"]') <> '' and
authid in (} . $all_authids . q{)
});
$sth_auth->execute();
while( my $row = $sth_auth->fetchrow_hashref ) {
-# warn dump( $row );
$auth_header->{ $row->{authid} } = $row->{full_name};
+ $row->{department} =~ s/, Filozofski fakultet u Zagrebu\s*//;
+ $row->{department} =~ s/^.+\.\s*//;
+ push @{ $auth_department->{ $row->{department} } }, $row->{authid};
+ warn dump( $row );
push @authors, $row;
}
return qq|</body>\n</html\n|;
}
+my $biblio_html;
sub biblioitem_html {
my $biblionumber = shift;
+ return $biblio_html->{$biblionumber} if exists $biblio_html->{$biblionumber};
+
my $xmlrecord = $marcxml->{$biblionumber} || die "missing $biblionumber marcxml";
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $parsed = $xslt->parse_stylesheet($style_doc);
my $transformed = $parsed->transform($source);
- return $parsed->output_string( $transformed );
+ return $biblio_html->{$biblionumber} = $parsed->output_string( $transformed );
}
#print dump( $authors );
-#print dump( $auth_header );
+print dump( $auth_header );
+
+print dump( $auth_department );
+
+
+my $department_category_author;
+foreach my $department ( sort keys %$auth_department ) {
+ foreach my $authid ( sort @{ $auth_department->{$department} } ) {
+ foreach my $category ( sort keys %{ $authors->{$authid} } ) {
+ push @{ $department_category_author->{$department}->{$category} }, $authid;
+ }
+ }
+}
+
+print dump( $department_category_author );
+
+mkdir 'html/departments' unless -d 'html/departments';
+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 ) {
+ my $dep = $department || 'Nema odsjeka';
+ my $dep_file = unac_string('utf-8',$dep);
+ print $dep_fh qq|<li><a href="$dep_file.html">$dep</a></li>\n|;
+ open(my $fh, '>:encoding(utf-8)', "html/departments/$dep_file.new");
+ print $fh html_title($department . ' bibliografija');
+ foreach my $category ( sort keys %{ $department_category_author->{$department} } ) {
+ my $label = $category_label->{$category} || 'Bez kategorije';
+ print $fh qq|<h1>$label</h1>\n<ul>\n|;
+
+ foreach my $authid ( @{ $department_category_author->{$department}->{$category} } ) {
+ foreach my $biblionumber ( @{ $authors->{$authid}->{$category} } ) {
+ print $fh qq|<li>|,
+ qq|<a href="https://koha.ffzg.hr/cgi-bin/koha/opac-detail.pl?biblionumber=$biblionumber">$biblionumber</a>|,
+ biblioitem_html($biblionumber),
+ qq|<a href="https://koha.ffzg.hr:8443/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=$biblionumber">edit</a>|,
+ qq|</li>\n|;
+ }
+ }
+ print $fh qq|</ul>|;
+ }
+ print $fh html_end;
+ close($fh);
+ rename "html/departments/$dep_file.new", "html/departments/$dep_file.html";
+}
+print $dep_fh qq|</ul>\n|, html_end;
+close($dep_fh);
+rename 'html/departments/index.new', 'html/departments/index.html';