| | 64 | |
| | 65 | # Cloner plugin: |
| | 66 | # $app->run_callbacks('ClonerPlugin::CloneBlog', $app, |
| | 67 | # OldBlogId => $blog_id, NewBlogId => $new_blog_id, |
| | 68 | # EntryMap => \%entry_map, |
| | 69 | # CategoryMap => \%cat_map, |
| | 70 | # TrackbackMap => \%tb_map, |
| | 71 | # TemplateMap => \%tmpl_map); |
| | 72 | |
| | 73 | # MTE: |
| | 74 | # MT->run_callbacks(ref($blog). '::post_clone', |
| | 75 | # OldObject => $blog, |
| | 76 | # NewObject => $new_blog, |
| | 77 | # EntryMap => \%entry_map, |
| | 78 | # CategoryMap => \%cat_map, |
| | 79 | # TrackbackMap => \%tb_map, |
| | 80 | # TemplateMap => \%tmpl_map, |
| | 81 | # Callback => $callback |
| | 82 | # ); |
| | 83 | |
| 69 | | my $report_meth = sub { }; |
| 70 | | if ( $MT::Plugin::Cloner::VERSION |
| 71 | | and $report_meth = MT::Plugin::Cloner->can('progress')) { |
| 72 | | $report_meth->($app, $app->translate('Cloning WidgetManagers for weblog')); |
| | 89 | my $report = sub {}; |
| | 90 | my $label = 'widgetmgr'; |
| | 91 | |
| | 92 | my %arg; |
| | 93 | if ($cb->{method} eq 'ClonerPlugin::CloneBlog') { |
| | 94 | %arg = ( |
| | 95 | old_blog_id => $params{OldBlogId}, |
| | 96 | new_blog_id => $params{NewBlogId}, |
| | 97 | template_map => $params{TemplateMap}, |
| | 98 | ); |
| | 99 | if ($MT::Plugin::Cloner::VERSION and MT::Plugin::Cloner->can('progress')) { |
| | 100 | my $callback = MT::Plugin::Cloner->can('progress'); |
| | 101 | $report = sub { $callback->($app, $app->translate(@_), $label) }; |
| | 102 | } |
| | 103 | } elsif ($cb->{method} eq 'MT::Blog::post_clone') { |
| | 104 | %arg = ( |
| | 105 | old_blog_id => $params{OldObject}->id, |
| | 106 | new_blog_id => $params{NewObject}->id, |
| | 107 | template_map => $params{TemplateMap}, |
| | 108 | ); |
| | 109 | if (defined $params{Callback}) { |
| | 110 | my $state; |
| | 111 | my $callback = $params{Callback}; |
| | 112 | $report = sub { |
| | 113 | my $msg; |
| | 114 | if ($state) { |
| | 115 | $msg = $state . ' ' . (+shift); |
| | 116 | } else { |
| | 117 | $msg = $state = shift; |
| | 118 | } |
| | 119 | $callback->($msg, $label) }; |
| | 120 | } |
| | 121 | } else { |
| | 122 | die $app->translate( |
| | 123 | "Unknown blog cloning callback method '[_1]' encountered in WidgetManager.", $cb->{method}); |