Changeset 11965
- Timestamp:
- 2006-06-22T15:05:12+12:00 (18 years ago)
- Location:
- trunk/gsdl/perllib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/basebuilder.pm
r11963 r11965 323 323 $self->{'buildproc'}->zero_reset(); 324 324 325 # don't need this anymore 326 #$self->output_collection_meta($handle); 325 # this has changed to only output collection meta if its 326 # not in the config file 327 $self->output_collection_meta($handle); 327 328 328 329 &plugin::read ($self->{'pluginfo'}, $self->{'source_dir'}, … … 512 513 } 513 514 514 # d on't use this anymore - get rid of it???515 # default is to do nothing 515 516 sub output_collection_meta { 516 517 my $self = shift(@_); 517 518 my ($handle) = @_; 518 my $outhandle = $self->{'outhandle'}; 519 if (defined $self->{'collect_cfg'}->{'collectionmeta'}) { 520 521 if (!defined $self->{'index_mapping'}) { 522 $self->{'index_mapping'} = 523 $self->create_index_mapping ($self->{'collect_cfg'}->{'indexes'}); 524 } 525 526 print $handle "[collection]\n"; 527 528 foreach my $cmeta (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}})) { 529 my $defaultfound=0; 530 my $first=1; 531 my $metadata_entry = ""; 532 my $default=""; 533 my $cmetamap = ""; 534 if ($cmeta =~ s/^\.//) { 535 if (defined $self->{'index_mapping'}->{$cmeta}) { 536 $cmetamap = $self->{'index_mapping'}->{$cmeta}; 537 $cmeta = ".$cmeta"; 538 } 539 else { 540 print $outhandle "mgbuilder: warning bad collectionmeta option '$cmeta' - ignored\n"; 541 next; #ignore this one 542 } 543 } 544 else { 545 $cmetamap = $cmeta; # just using the same name 546 } 547 #iterate through the languages 548 foreach my $lang (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}})) { 549 if ($first) { 550 $first=0; 551 #set the default default to the first entry 552 $default=$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{$lang}; 553 } 554 if ($lang =~ /default/) { 555 $defaultfound=1; 556 #the default entry goes first 557 $metadata_entry = "<$cmetamap>" . 558 $self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{'default'} . "\n" . $metadata_entry; 559 } 560 else { 561 my ($l) = $lang =~ /^\[l=(\w*)\]$/; 562 if ($l) { 563 $metadata_entry .= "<$cmetamap:$l>" . 564 $self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{$lang} . "\n"; 565 566 # Use the English value as the default if no default is specified 567 if ($l =~ /en/i) { 568 $default=$self->{'collect_cfg'}->{'collectionmeta'}->{$cmeta}->{$lang}; 569 } 570 } 571 } 572 } 573 #if we haven't found a default, put one in 574 if (!$defaultfound) { 575 $metadata_entry = "<$cmetamap>$default\n" . $metadata_entry; 576 } 577 #write the entry to the file 578 print $handle $metadata_entry; 579 580 } 581 582 print $handle "\n" . ('-' x 70) . "\n"; 583 } 584 585 } 586 519 } 587 520 sub print_stats { 588 521 my $self = shift (@_); -
trunk/gsdl/perllib/mgppbuilder.pm
r11963 r11965 592 592 } 593 593 594 # no t used anymore594 # now only outputs stuff if you can't generate it from collectionmeta - e.g. if someone has specified 'metadata' as an index. 595 595 sub output_collection_meta { 596 596 my $self = shift(@_); … … 610 610 if (defined $self->{'collect_cfg'}->{'collectionmeta'}) { 611 611 $collmetadefined = 1; 612 foreach my $cmeta (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}})) { 613 next if ($cmeta =~ /^\./); # for now, ignore ones with dots 614 $metadata_entry = $self->create_language_db_map($cmeta, $cmeta); 615 #write the entry to the file 616 print $handle $metadata_entry; 617 618 } # foreach collmeta key 619 } 612 } 613 620 614 #add the index field macros to [collection] 621 615 # eg <TI>Title … … 628 622 next if $shortfield eq 1; 629 623 630 # we need to check if some coll meta has been defined 624 # we need to check if some coll meta has been defined - don't output 625 # any that have 631 626 $collmeta = ".$longfield"; 632 if ($collmetadefined && defined $self->{'collect_cfg'}->{'collectionmeta'}->{$collmeta}) { 633 $metadata_entry = $self->create_language_db_map($collmeta, $shortfield); 634 $field_entry .= $metadata_entry; 635 } else { #use the metadata names, or the text macros for allfields and textonly 627 if (!$collmetadefined || !defined $self->{'collect_cfg'}->{'collectionmeta'}->{$collmeta}) { 636 628 if ($longfield eq "allfields") { 637 629 $field_entry .= "<$shortfield>_query:textallfields_\n"; … … 643 635 } 644 636 } 645 print $handle $field_entry;637 print $handle $field_entry; 646 638 647 639 # now add the level names … … 651 643 $level =~ tr/A-Z/a-z/; # make it lower case 652 644 my $levelid = $level_map{$level}; # find the actual value we used in the index 653 if ($collmetadefined && defined $self->{'collect_cfg'}->{'collectionmeta'}->{$collmeta}) { 654 $metadata_entry = $self->create_language_db_map($collmeta, $levelid); 655 $level_entry .= $metadata_entry; 656 } else { 645 if (!$collmetadefined || !defined $self->{'collect_cfg'}->{'collectionmeta'}->{$collmeta}) { 657 646 # use the default macro 658 647 $level_entry .= "<$levelid>" . $level_map{$levelid} . "\n"; … … 666 655 my $one_entry = ""; 667 656 foreach my $subcoll (@{$self->{'index_mapping'}->{'subcollectionmaporder'}}) { 668 if (defined $self->{'collect_cfg'}->{'collectionmeta'}->{".$subcoll"}) { 669 $shortname = $self->{'index_mapping'}->{$subcoll}; 670 $one_entry = $self->create_language_db_map(".$subcoll", $shortname); 671 $subcoll_entry .= $one_entry; 672 } else { 657 $shortname = $self->{'index_mapping'}->{$subcoll}; 658 if (!$collmetadefined || !defined $self->{'collect_cfg'}->{'collectionmeta'}->{".$subcoll"}) { 673 659 $subcoll_entry .= "<$shortname>$subcoll\n"; 674 660 } … … 679 665 my $lang_entry = ""; 680 666 foreach my $lang (@{$self->{'index_mapping'}->{'languagemaporder'}}) { 681 if (defined $self->{'collect_cfg'}->{'collectionmeta'}->{".$lang"}) { 682 $shortname = $self->{'index_mapping'}->{$lang}; 683 $one_entry = $self->create_language_db_map(".$lang", $shortname); 684 $lang_entry .= $one_entry; 685 } else { 667 $shortname = $self->{'index_mapping'}->{$lang}; 668 if (!$collmetadefined || !defined $self->{'collect_cfg'}->{'collectionmeta'}->{".$lang"}) { 686 669 $lang_entry .= "<$shortname>$lang\n"; 687 670 } … … 692 675 693 676 694 }695 sub create_language_db_map {696 my $self = shift (@_);697 my ($metaname, $mapname) = @_;698 my $outhandle = $self->{'outhandle'};699 my $defaultfound=0;700 my $first=1;701 my $metadata_entry = "";702 my $default="";703 #iterate through the languages704 foreach my $lang (keys (%{$self->{'collect_cfg'}->{'collectionmeta'}->{$metaname}})) {705 if ($first) {706 $first=0;707 #set the default default to the first entry708 $default=$self->{'collect_cfg'}->{'collectionmeta'}->{$metaname}->{$lang};709 }710 if ($lang =~ /default/) {711 $defaultfound=1;712 #the default entry goes first713 $metadata_entry = "<$mapname>" .714 $self->{'collect_cfg'}->{'collectionmeta'}->{$metaname}->{'default'} . "\n" . $metadata_entry;715 }716 else {717 my ($l) = $lang =~ /^\[l=(\w*)\]$/;718 if ($l) {719 $metadata_entry .= "<$mapname:$l>" .720 $self->{'collect_cfg'}->{'collectionmeta'}->{$metaname}->{$lang} . "\n";721 722 # Use the English value as the default if no default is specified723 if ($l =~ /en/i) {724 $default=$self->{'collect_cfg'}->{'collectionmeta'}->{$metaname}->{$lang};725 }726 }727 }728 } #foreach lang729 #if we haven't found a default, put one in730 if (!$defaultfound) {731 $metadata_entry = "<$mapname>$default\n" . $metadata_entry;732 }733 return $metadata_entry;734 735 677 } 736 678
Note:
See TracChangeset
for help on using the changeset viewer.