Changeset 13888
- Timestamp:
- 2007-02-10T14:49:25+13:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/perllib/classify/NewList.pm
r13877 r13888 67 67 my $self = new BasClas($classifierslist, $inputargs, $hashArgOptLists); 68 68 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 80 69 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'; 86 71 } 87 72 … … 91 76 $self->{'list'} = []; 92 77 93 # Clean out the unused keys94 delete $self->{"metadata"}; # Delete this key95 78 return bless $self, $class; 96 79 } … … 108 91 my $doc_OID = $doc_obj->get_OID(); 109 92 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 "")){ 117 94 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 } 121 105 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"; 122 108 my $value_lastmodified= 123 109 $doc_obj->get_metadata_element($topsection, 'lastmodified'); 124 110 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){ 132 112 push (@{$self->{'lastmodified_values'}},$value_lastmodified); 133 113 push (@{$self->{'list'}}, $doc_OID); 134 }else{135 return;136 114 } 137 138 115 }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); 140 122 } 141 123 … … 151 133 my $memberof = &supports_memberof(); 152 134 my $return_doc_size=0; 153 if (defined $self->{'return_doc_size'}){154 $return_doc_size=$self->{'return_doc_size'};155 }156 157 135 my @list = (); 158 136 @list = @{$self->{'list'}}; … … 171 149 #mapping lastmodified with OID in a hashtable 172 150 my %metavaluetoOIDhash=(); 173 my $size= @{$self->{'lastmodified_values'}};174 print STDERR "size of lastmodified_values: ", $size, "\n";175 151 my @lastmodified_values=(); 176 152 @lastmodified_values = @{$self->{'lastmodified_values'}}; … … 178 154 my $i; 179 155 for ($i=0;($i<$size);$i++){ 180 #print STDERR "lastmodified_values : " . $lastmodified_values[$i] . "list : " . $list[$i], "\n";181 156 $metavaluetoOIDhash{$list[$i]}=$lastmodified_values[$i]; 182 157 } … … 184 159 #sort the hashtable by values, then form an array containing keys 185 160 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++){ 189 178 my $OID= $sortedOIDbylastmodified[$i]; 190 179 my $hashref={}; 191 # special oid format, if using offsets (from AZCompactList)192 if ($OID =~ s/\.offset(\d+)$//) {193 $hashref->{'offset'}=$1;194 }195 180 $hashref->{'OID'}=$OID; 196 197 181 push (@{$classifyinfo{'contains'}}, $hashref); 198 $j++;199 200 if($return_doc_size>0 && $j>=$return_doc_size){201 last;202 }203 182 } 204 183
Note:
See TracChangeset
for help on using the changeset viewer.