Changeset 125

Show
Ignore:
Timestamp:
11/16/06 09:52:40 (2 years ago)
Author:
takayama
Message:

Fixed BugId?: 31639

* Added "tags" attribute to <MTGoogleSearch>

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/GoogleSearch/plugins/GoogleSearch/GoogleSearch.pl

    r93 r125  
    9090    } elsif ($args->{keywords}) { 
    9191        $query = $ctx->_hdlr_entry_keywords or return ''; 
     92    } elsif ($args->{tags}) { 
     93        require MT::Tag; 
     94        my @tags = $plugin->_get_entry_tags($ctx); 
     95        $query = ''; 
     96        foreach my $tag (@tags) { 
     97            $query .= '"'.$tag->name.'" '; 
     98        } 
     99        $query = $ctx->_hdlr_entry_title unless $query; 
    92100    } 
    93101    $query = $ctx->stash('search_string') unless defined $query; 
     
    156164} 
    157165 
     166sub _get_entry_tags { 
     167    my $plugin = shift; 
     168    my($ctx) = @_; 
     169    require MT::ObjectTag; 
     170    require MT::Entry; 
     171    require MT::Tag; 
     172    my $type = MT::Entry->datasource; 
     173    my $entry = $ctx->stash('entry'); 
     174    return '' unless $entry; 
     175    my $iter = MT::Tag->load_iter(undef, { 'sort' => 'name', 
     176        join => ['MT::ObjectTag', 'tag_id', 
     177            { object_id => $entry->id, blog_id => $entry->blog_id, object_datasource => MT::Entry->datasource }, { unique => 1 } ]}); 
     178    my @tags; 
     179    while (my $tag = $iter->()) { 
     180        next if $tag->is_private; 
     181        push @tags, $tag; 
     182    } 
     183    return @tags; 
     184} 
     185 
     1861;