Changeset 236 for TagSupplementals/trunk

Show
Ignore:
Timestamp:
09/05/06 16:47:36 (2 years ago)
Author:
ogawa
Message:

Fix several silly bugs.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • TagSupplementals/trunk/TagSupplementals.pl

    r235 r236  
    8686    my $r = MT::Request->instance; 
    8787    my $otag_cache = $r->stash('object_tags_cache:' . $blog_id) || {}; 
    88     if (!$otag_cache) { 
     88    if (!$otag_cache->{$tag_id}) { 
    8989        my @otags = MT::ObjectTag->load({ 
    9090            blog_id => $blog_id, 
     
    9292            object_datasource => MT::Entry->datasource, 
    9393        }); 
    94         $otag_cache = \@otags; 
     94        $otag_cache->{$tag_id} = \@otags; 
    9595        $r->stash('object_tags_cache:' . $blog_id, $otag_cache); 
    9696    } 
    97     $otag_cache; 
     97    $otag_cache->{$tag_id}; 
    9898} 
    9999 
     
    103103        or return $ctx->_no_entry_error('MT' . $ctx->stash('tag')); 
    104104 
    105     my $weight = $args->{weight} || 'idf'; 
     105    my $weight = $args->{weight} || 'constant'; 
    106106    my $lastn = $args->{lastn} || 0; 
    107107 
     
    127127 
    128128    my %rank; 
    129     if ($weight eq 'idf') { 
    130         for my $tag_id (@tag_ids) { 
    131             my @otags = _object_tags($blog_id, $tag_id); 
    132             next if scalar @otags == 1; 
    133             my $rank = 1 / (scalar @otags - 1); 
    134             for my $otag (@otags) { 
    135                 $rank{$otag->object_id} += $rank; 
    136             } 
    137         } 
    138     } elsif ($weight eq 'constant') { 
     129    if ($weight eq 'constant') { 
    139130        if (MT::Object->driver->can('count_group_by')) { 
    140131            my $iter = MT::ObjectTag->count_group_by({ 
     
    158149            } 
    159150        } 
    160         delete $rank{$entry_id}; 
    161     } 
     151    } elsif ($weight eq 'idf') { 
     152        for my $tag_id (@tag_ids) { 
     153            my $otags = _object_tags($blog_id, $tag_id); 
     154            next if scalar @$otags == 1; 
     155            my $rank = 1 / (scalar @$otags - 1); 
     156            for my $otag (@$otags) { 
     157                $rank{$otag->object_id} += $rank; 
     158            } 
     159        } 
     160    } 
     161    delete $rank{$entry_id}; 
    162162 
    163163    my @eids = sort { $b <=> $a } keys %rank; 
     
    200200    my $blog_id = $ctx->stash('blog_id') or return ''; 
    201201 
    202     my @otags = _object_tags($blog_id, $tag->id); 
    203     my @eids = map { $_->object_id } @otags; 
     202    my $otags = _object_tags($blog_id, $tag->id); 
     203    my @eids = map { $_->object_id } @$otags; 
    204204 
    205205    my $iter = MT::Tag->load_iter(undef, {