Changeset 571 for branches/CustomFieldsUpgradeAssistant-bugfix
- Timestamp:
- 03/20/08 03:08:27 (21 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/CustomFieldsUpgradeAssistant-bugfix/plugins/CustomFields/customfields.pl
r569 r571 12 12 use MT::Util qw( escape_unicode ); 13 13 use CustomFields::Util qw( get_meta save_meta ); 14 use CustomFields::Upgrade;15 14 use CustomFields::Field; 16 15 … … 263 262 # Author CF is always in plugindata 264 263 $upg->progress(_translate_escape('Moving metadata storage for users...')); 265 CustomFields::Upgrade::customfields_move_meta($upg, 'author');264 customfields_move_meta_fixed($upg, 'author'); 266 265 267 266 # Process custom fields stored in plugindata 268 267 # Category and folder stays in plugindata. 269 268 $upg->progress(_translate_escape('Moving metadata storage for entries...')); 270 CustomFields::Upgrade::customfields_move_meta($upg, 'entry');269 customfields_move_meta_fixed($upg, 'entry'); 271 270 $upg->progress(_translate_escape('Moving metadata storage for pages...')); 272 CustomFields::Upgrade::customfields_move_meta($upg, 'page');271 customfields_move_meta_fixed($upg, 'page'); 273 272 274 273 # Process custom fields stored in custom tables … … 309 308 } 310 309 310 sub customfields_move_meta_fixed { 311 my $plugin = shift; 312 my ($obj_type) = @_; 313 # CF21b stores authors data as "_NN" ('author' isn't there)! 314 my $t = $obj_type eq 'author' ? q() : $obj_type; 315 316 require MT::PluginData; 317 my $pd_iter = MT::PluginData->load_iter( 318 { 319 plugin => 'CustomFields', 320 key => "${t}_%", 321 }, 322 { 323 like => { key => 1 } 324 } 325 ); 326 327 my @pd_ids; 328 while ( my $pd = $pd_iter->() ) { 329 if ( $pd->key =~ /^${t}_(\d+)$/ ) { 330 my $id = $1; 331 my $pd_data = $pd->data; 332 next unless $pd_data; 333 my $old_meta = $pd_data->{customfields}; 334 unless ( $old_meta ) { 335 $old_meta = $pd_data; 336 } 337 my $obj = MT->model($obj_type)->load($id); 338 next unless $obj; 339 save_meta($obj, $old_meta); 340 push @pd_ids, $pd->id; 341 } 342 } 343 344 MT::PluginData->remove( { id => \@pd_ids } ); 345 1; 346 } 347 311 348 1; 312 349
