Changeset 1724

Show
Ignore:
Timestamp:
04/02/08 18:36:46 (4 months ago)
Author:
bchoate
Message:

Issue blog->touch calls for XMLRPC updates. BugId:75087

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/release-33/lib/MT/XMLRPCServer.pm

    r1419 r1724  
    204204 
    205205    my @categories; 
     206    my $changed = 0; 
    206207 
    207208    if ($param->{page}) { 
     
    224225                    $folder->basename($basename); 
    225226                    $folder->label($basename); 
     227                    $changed = 1; 
    226228                    $folder->save 
    227229                      or die _fault(MT->translate("Saving folder failed: [_1]", 
     
    236238    elsif (my $cats = $item->{categories}) { 
    237239        if (@$cats) { 
    238            my $cat_class = MT->model('category'); 
    239            # The spec says to ignore invalid category names. 
    240            @categories = grep { defined } $cat_class->search({ 
    241                blog_id => $entry->blog_id, 
    242                label   => $cats, 
    243            }); 
    244        
     240            my $cat_class = MT->model('category'); 
     241            # The spec says to ignore invalid category names. 
     242            @categories = grep { defined } $cat_class->search({ 
     243                blog_id => $entry->blog_id, 
     244                label   => $cats, 
     245            }); 
     246       
    245247    } 
    246248 
     
    281283    } 
    282284 
    283     1
     285    $changed
    284286} 
    285287 
     
    372374    $entry->save; 
    373375 
    374     $class->_save_placements($entry, $item, \%param); 
     376    my $changed = $class->_save_placements($entry, $item, \%param); 
     377 
     378    my @types = ( $obj_type ); 
     379    if ($changed) { 
     380        push @types, 'folder'; # folders are the only type that can be 
     381                               # created in _save_placements 
     382    } 
     383    $blog->touch( @types ); 
     384    $blog->save; 
    375385 
    376386    MT->run_callbacks("api_post_save.$obj_type", $mt, $entry, $orig_entry); 
     
    436446        die _fault(MT->translate("Invalid entry ID '[_1]'", $entry_id)); 
    437447    } 
     448    require MT::Blog; 
     449    my $blog = MT::Blog->load($blog_id) 
     450        or die _fault(MT->translate("Invalid blog ID '[_1]'", $blog_id)); 
    438451    my($author, $perms) = $class->_login($user, $pass, $entry->blog_id); 
    439452    die _fault(MT->translate("Invalid login")) unless $author; 
     
    483496    $entry->save; 
    484497 
    485     $class->_save_placements($entry, $item, \%param); 
     498    my $changed = $class->_save_placements($entry, $item, \%param); 
     499    my @types = ( $obj_type ); 
     500    if ($changed) { 
     501        push @types, 'folder'; # folders are the only type that can be 
     502                               # created in _save_placements 
     503    } 
     504    $blog->touch( @types ); 
    486505 
    487506    MT->run_callbacks("api_post_save.$obj_type", $mt, $entry, 
     
    10011020    my $iter = MT::Entry->load_iter({ 
    10021021        blog_id => $blog->id, 
     1022        class => '*', 
    10031023        status => MT::Entry::FUTURE()}, 
    10041024        {'sort' => 'authored_on', 
     
    10131033    my $total_changed = 0; 
    10141034    my @results; 
     1035    my %types; 
    10151036    foreach my $entry_id (@queue) { 
    10161037        my $entry = MT::Entry->load($entry_id); 
     
    10211042                or die $entry->errstr; 
    10221043 
     1044            $types{$entry->class} = 1; 
    10231045            start_background_task(sub { 
    10241046                $mt->rebuild_entry( Entry => $entry, Blog => $blog ) 
     
    10291051        } 
    10301052    } 
     1053    $blog->touch( keys %types ) if $changed; 
     1054    $blog->save if $changed && (keys %types); 
     1055 
    10311056    if ($changed) { 
    10321057        $mt->rebuild_indexes( Blog => $blog ) 
     
    11251150    $asset->mime_type($file->{type}); 
    11261151    $asset->save; 
     1152 
     1153    $blog->touch('asset'); 
     1154    $blog->save; 
    11271155 
    11281156    MT->run_callbacks(