Changeset 10028


Ignore:
Timestamp:
2005-06-08T15:14:23+12:00 (19 years ago)
Author:
mdewsnip
Message:

Now looks at each metadata value (not just the first), when deciding what to include in a subcollection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/perllib/basebuildproc.pm

    r9919 r10028  
    401401        my ($bool) = $field =~ /^(.)/;
    402402        $field =~ s/^.// if $bool eq '!';
     403        my @metadata_values;
    403404        if ($field =~ /^filename$/i) {
    404         $field = $doc_obj->get_source_filename();
    405         } else {
    406         $field = $doc_obj->get_metadata_element($doc_obj->get_top_section(), $field);
    407         }
    408         next unless defined $field;
    409         if ($bool eq '!') {
    410         if ($options =~ /^i$/i) {
    411             if ($field !~ /$exp/i) {$indexed_doc = 1; last;}
     405        push(@metadata_values, $doc_obj->get_source_filename());
     406        }
     407        else {
     408        @metadata_values = @{$doc_obj->get_metadata($doc_obj->get_top_section(), $field)};
     409        }
     410        next unless @metadata_values;
     411        foreach my $metadata_value (@metadata_values) {
     412        if ($bool eq '!') {
     413            if ($options =~ /^i$/i) {
     414            if ($metadata_value !~ /$exp/i) {$indexed_doc = 1; last;}
     415            } else {
     416            if ($metadata_value !~ /$exp/) {$indexed_doc = 1; last;}
     417            }
    412418        } else {
    413             if ($field !~ /$exp/) {$indexed_doc = 1; last;}
     419            if ($options =~ /^i$/i) {
     420            if ($metadata_value =~ /$exp/i) {$indexed_doc = 1; last;}
     421            } else {
     422            if ($metadata_value =~ /$exp/) {$indexed_doc = 1; last;}
     423            }
    414424        }
    415         } else {
    416         if ($options =~ /^i$/i) {
    417             if ($field =~ /$exp/i) {$indexed_doc = 1; last;}
    418         } else {
    419             if ($field =~ /$exp/) {$indexed_doc = 1; last;}
    420         }
    421         }
     425        }
     426
     427        last if ($indexed_doc == 1);
    422428    }
    423429    }
Note: See TracChangeset for help on using the changeset viewer.