Changeset 154

Show
Ignore:
Timestamp:
02/26/06 07:15:12
Author:
miyagawa
Message:

MTWidget: Adds MT republishing support in finalize hook

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plagger/lib/Plagger/Plugin/Publish/MTWidget.pm

    r146 r154  
    1818        require MT;  
    1919        require MT::Template; 
    20         MT->new(Config => $mt_home . 'mt.cfg', 
    21                 Directory => $mt_home) or Plagger->context->error(MT->errstr); 
     20        $self->{mt} = MT->new or Plagger->context->error(MT->errstr); 
    2221    }; 
    2322    if ($@) { 
    24         Plagger->context->error("Can't find MT modules. Check your mt_path: $@"); 
     23        Plagger->context->error("Error loading MT: $@"); 
    2524    } 
    2625} 
     
    3130        $self, 
    3231        'publish.feed' => \&feed, 
     32        'publish.finalize' => \&finalize, 
    3333    ); 
    3434} 
     
    7171} 
    7272 
     73sub finalize { 
     74    my($self, $context) = @_; 
     75 
     76    my $rebuild = $self->conf->{rebuild} or return; 
     77       $rebuild = [ $rebuild ] unless ref($rebuild); 
     78    my $blog_id = $self->conf->{blog_id}; 
     79 
     80    for my $tmpl (@{$rebuild}) { 
     81        $context->log(info => "Rebuilding Template $tmpl"); 
     82 
     83        my $template = MT::Template->load({ 
     84            name => $rebuild, blog_id => $blog_id, 
     85        }); 
     86        unless ($template) { 
     87            $context->log(error => "Can't load template $rebuild"); 
     88            next; 
     89        } 
     90 
     91        $self->{mt}->rebuild_indexes( BlogID => $blog_id, Template => $template, Force => 1 ) 
     92            or $context->log(error => "Rebuild error: " . $self->{mt}->errstr); 
     93    } 
     94} 
     95 
    73961; 
    7497 
     
    85108      blog_id: 1 
    86109      mt_path: /path/to/mt 
     110    rebuild: 
     111      - Main Index 
    87112 
    88113=head1 DESCRIPTION