Changeset 1855 for branches/release-34/lib/MT/App/Search.pm
- Timestamp:
- 04/11/08 04:20:13 (19 months ago)
- Files:
-
- 1 modified
-
branches/release-34/lib/MT/App/Search.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-34/lib/MT/App/Search.pm
r1757 r1855 267 267 if $format !~ /\w+/; 268 268 } 269 my $method = "render $format";270 $method = 'render' unless $app->can($method);269 my $method = "render"; 270 $method .= $format if $format && $app->can($method . $format); 271 271 $out = $app->$method( $count, $iter ); 272 272 … … 367 367 push @terms, $parsed->{terms} if exists $parsed->{terms}; 368 368 369 my $desc = 'descend' eq $app->{searchparam}{SearchResultDisplay} ? 'DESC' : 'ASC'; 370 my @sort; 369 371 my $sort = $params->{'sort'}; 370 372 if ( $sort !~ /\w+\!$/ && $app->{searchparam}{SearchSortBy} ) { 371 373 my $sort_by = $app->{searchparam}{SearchSortBy}; 372 $sort_by =~ s/[\w\-\.]+//g; 373 $sort = $sort_by; 374 } 374 $sort_by =~ s/[^\w\-\.\,]+//g; 375 if ( $sort_by ) { 376 my @sort_bys = split ',', $sort_by; 377 foreach my $key ( @sort_bys ) { 378 push @sort, { 379 desc => $desc, 380 column => $key 381 }; 382 } 383 } 384 } 385 push @sort, { 386 desc => $desc, 387 column => $sort 388 }; 375 389 376 390 my %args = ( … … 378 392 $limit ? ( 'limit' => $limit ) : (), 379 393 $offset ? ( 'offset' => $offset ) : (), 380 $sort ? ( 'sort' => [ 381 { desc => 'descend' eq $app->{searchparam}{SearchResultDisplay} ? 'DESC' : 'ASC', 382 column => $sort } 383 ] ) : (), 394 @sort ? ( 'sort' => \@sort ) : (), 384 395 ); 385 386 if ( exists $app->{searchparam}{IncludeBlogs} ) {387 unshift @{ $args{'sort'} },388 { desc => 'ASC',389 column => 'blog_id' };390 }391 396 392 397 ( \@terms, \%args );
