Changeset 13888 for trunk


Ignore:
Timestamp:
2007-02-10T14:49:25+13:00 (17 years ago)
Author:
qq6
Message:

modify the input date format

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/perllib/classify/NewList.pm

    r13877 r13888  
    6767    my $self = new BasClas($classifierslist, $inputargs, $hashArgOptLists);
    6868
    69     # Transfer value from Auto Parsing to the variable name that used in previous GreenStone.
    70     my (@meta_list,$meta1);
    71     if ($self->{"metadata"}) {
    72     @meta_list = split(/,/, $self->{"metadata"});
    73     $meta1 = $meta_list[0];
    74     $self->{'meta_list'} = \@meta_list;
    75     } else {
    76     $meta1=undef;
    77     @meta_list = undef;
    78     }
    79 
    8069    if (!$self->{"buttonname"}) {
    81     if (defined ($self->{'metadata'})) {
    82         $self->{"buttonname"} = $self->generate_title_from_metadata($self->{'metadata'});
    83     } else {
    84         $self->{"buttonname"} = 'NewList';
    85     }
     70    $self->{"buttonname"} = 'NewList';
    8671    }
    8772
     
    9176    $self->{'list'} = [];
    9277
    93     # Clean out the unused keys
    94     delete $self->{"metadata"}; # Delete this key
    9578    return bless $self, $class;
    9679}
     
    10891    my $doc_OID = $doc_obj->get_OID();
    10992
    110     # are we sorting the list??
    111     my $nosort = 0;
    112     if (defined $self->{'sort'} && $self->{'sort'} eq "nosort") {
    113     $nosort = 1;
    114     }
    115    
    116     if (defined $self->{'after_specified_date'}){
     93    if (defined $self->{'after_specified_date'} && !($self->{'after_specified_date'} eq "")){
    11794    my $topsection=$doc_obj->get_top_section();
    118     my @values=split('/',$self->{'after_specified_date'});
    119 
    120     my $specified_date=timelocal(0,0,0,$values[0],$values[1]-1,$values[2]);
     95    my @values;
     96    if ($self->{'after_specified_date'}=~/-/){
     97        @values=split('-',$self->{'after_specified_date'});
     98      #  print STDERR  "date format yyyy-mm-dd " . "@values" . "\n";
     99    }else{
     100        $values[0]=substr ($self->{'after_specified_date'},0,4);
     101        $values[1]=substr ($self->{'after_specified_date'},4,2);
     102        $values[2]=substr ($self->{'after_specified_date'},6,2);
     103      #  print STDERR  "date format yyyymmdd" . "@values" . "\n";
     104    }
    121105   
     106    my $specified_date=timelocal(0,0,0,$values[2],$values[1]-1,$values[0]);
     107    print STDERR "scalar specified date : " . scalar localtime($specified_date). "\n";
    122108    my $value_lastmodified=
    123109            $doc_obj->get_metadata_element($topsection, 'lastmodified');
    124110
    125     my @values_lastmodi=(localtime($value_lastmodified))[3,4,5];
    126     #print STDERR "$values_lastmodi[0],  $values_lastmodi[1],  $values_lastmodi[2]+1900  \n";
    127     my $lastmodified_date=timelocal(0,0,0,$values_lastmodi[0],$values_lastmodi[1],$values_lastmodi[2]+1900);
    128 
    129     #print STDERR "specified_date : " .  localtime($specified_date)  . "\n";
    130     if ($lastmodified_date>=$specified_date){
    131         print STDERR " lastmodified_value: ", localtime($value_lastmodified), "\n";
     111    if ($value_lastmodified>=$specified_date){
    132112        push (@{$self->{'lastmodified_values'}},$value_lastmodified);
    133113        push (@{$self->{'list'}}, $doc_OID);
    134     }else{
    135         return;
    136114    }
    137    
    138115    }else{
    139     return;
     116    my $topsection=$doc_obj->get_top_section();
     117    my $value_lastmodified=
     118            $doc_obj->get_metadata_element($topsection, 'lastmodified');
     119    print STDERR " lastmodified_value: ", localtime($value_lastmodified), "\n";
     120    push (@{$self->{'lastmodified_values'}},$value_lastmodified);
     121    push (@{$self->{'list'}}, $doc_OID);
    140122    }
    141123
     
    151133    my $memberof = &supports_memberof();
    152134    my $return_doc_size=0;
    153     if (defined $self->{'return_doc_size'}){
    154     $return_doc_size=$self->{'return_doc_size'};
    155     }
    156 
    157135    my @list = ();
    158136    @list = @{$self->{'list'}};
     
    171149    #mapping lastmodified with OID in a hashtable
    172150    my %metavaluetoOIDhash=();
    173     my $size= @{$self->{'lastmodified_values'}};
    174     print STDERR "size of lastmodified_values: ", $size, "\n";
    175151    my @lastmodified_values=();
    176152    @lastmodified_values = @{$self->{'lastmodified_values'}};
     
    178154    my $i;
    179155    for ($i=0;($i<$size);$i++){
    180     #print STDERR "lastmodified_values : " .  $lastmodified_values[$i] .  "list : " .  $list[$i], "\n";
    181156    $metavaluetoOIDhash{$list[$i]}=$lastmodified_values[$i];
    182157    }
     
    184159    #sort the hashtable by values, then form an array containing keys
    185160    my @sortedOIDbylastmodified = sort { $metavaluetoOIDhash{$b} <=> $metavaluetoOIDhash{$a} } keys %metavaluetoOIDhash;
    186 
    187     my $j=0;
    188     for ($i=0;($i<$size);$i++){
     161   
     162    #get the number of docs returned
     163    if (defined $self->{'return_doc_size'} && $self->{'return_doc_size'} ne ""){
     164    if  ($self->{'return_doc_size'}<=@list){
     165        $return_doc_size=$self->{'return_doc_size'};
     166    }else{
     167        $return_doc_size=@list;
     168    }
     169    }else{
     170    if (@list>20){
     171        $return_doc_size=20;
     172    }else{
     173        $return_doc_size=@list;
     174    }
     175    }
     176   
     177    for ($i=0;($i<$return_doc_size);$i++){
    189178    my $OID= $sortedOIDbylastmodified[$i];
    190179    my $hashref={};
    191     # special oid format, if using offsets (from AZCompactList)
    192     if ($OID =~ s/\.offset(\d+)$//) {
    193         $hashref->{'offset'}=$1;
    194     }
    195180    $hashref->{'OID'}=$OID;
    196 
    197181    push (@{$classifyinfo{'contains'}}, $hashref);
    198     $j++;
    199    
    200     if($return_doc_size>0 && $j>=$return_doc_size){
    201         last;
    202     }
    203182    }
    204183
Note: See TracChangeset for help on using the changeset viewer.