Changeset 1026 for trunk/LinkedEntryCustomFields
- Timestamp:
- 09/05/08 00:17:03 (3 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/LinkedEntryCustomFields/plugins/LinkedEntryCustomFields/config.yaml
r895 r1026 6 6 author_link: http://www.sixapart.com/ 7 7 version: 1.0 8 9 schema_version: 1 8 10 9 11 applications: … … 16 18 template_param.list_field: $LinkedEntryCustomFields::LinkedEntryCustomFields::App::inject_field_list_page_actions 17 19 cms_pre_save.field: $LinkedEntryCustomFields::LinkedEntryCustomFields::App::presave_field 18 page_actions:19 list_field:20 convert_rf2cf:21 label: Convert RightFields to Custom Fields22 order: 90023 condition: sub { !MT->app->blog }24 handler: $LinkedEntryCustomFields::LinkedEntryCustomFields::Convert::convert_rf2cf25 permission: sys_admin26 20 customfield_types: 27 21 entry: … … 33 27 no_default: 1 34 28 tags: $LinkedEntryCustomFields::LinkedEntryCustomFields::App::load_customfield_tags 29 upgrade_functions: 30 rf2cf_convert_fields: 31 handler: $LinkedEntryCustomFields::LinkedEntryCustomFields::Convert::step_convert_fields 32 rf2cf_convert_data: 33 version_limit: 0 34 handler: $LinkedEntryCustomFields::LinkedEntryCustomFields::Convert::step_convert_data trunk/LinkedEntryCustomFields/plugins/LinkedEntryCustomFields/lib/LinkedEntryCustomFields/Convert.pm
r1024 r1026 155 155 156 156 sub _copy_asset_custom_fields_from_file { 157 my %param= @_;157 my ($self, %param) = @_; 158 158 my ($blog_id, $field_id, $field_data, $datasource) = @param{qw( blog_id field_id data datasource )}; 159 159 MT->log("Copying values of file RF $field_id to an asset CF") if DEBUG(); 160 161 $self->progress($self->translate_escape('Converting data for file field "[_1]" to asset custom fields data...', $param{field_id})); 160 162 161 163 my $iter; … … 241 243 } 242 244 243 return 1;245 return 0; 244 246 } 245 247 246 248 sub _copy_custom_field_data_from_pseudofields { 247 my %param= @_;249 my ($self, %param) = @_; 248 250 my ($blog_id, $field_id, $field_data, $datasource) = @param{qw( blog_id field_id data datasource )}; 249 251 my $field_type = $field_data->{type}; 252 253 $self->progress($self->translate_escape('Converting data for field "[_1]" from plugindata to custom fields data...', $param{field_id})); 250 254 251 255 my $data_iter = MT->model('plugindata')->load_iter({ plugin => 'RightFieldsPseudo' }); … … 276 280 } 277 281 278 return 1;282 return 0; 279 283 } 280 284 … … 307 311 } 308 312 309 sub _copy_custom_field_data { 310 my %param = @_; 313 sub step_convert_data { 314 my ($self, %param) = @_; 315 return 0 if !%param; # nothing to convert? 311 316 my ($blog_id, $field_id, $field_data, $datasource) = @param{qw( blog_id field_id data datasource )}; 312 317 my $field_type = $field_data->{type}; 313 318 314 return _copy_asset_custom_fields_from_file( %param)319 return _copy_asset_custom_fields_from_file($self, %param) 315 320 if $field_type eq 'file'; 316 321 # TODO: if this is a choice field, convert keys of key=value choice pairs 317 322 # into values... by converting them loopily. or something. 318 return _copy_custom_field_data_from_pseudofields( %param)323 return _copy_custom_field_data_from_pseudofields($self, %param) 319 324 if $datasource eq '_pseudo'; 325 326 $self->progress($self->translate_escape('Converting data for field "[_1]" to custom fields data...', $param{field_id})); 320 327 321 328 my $rf_pkg = _make_rightfields_table_pkg(%param); … … 353 360 $dbh->do($insert_sql, {}, "field.$field_id") 354 361 or die $dbh->errstr || $DBI::errstr; 355 } 356 357 sub convert_rf2cf { 358 my $app = shift; 362 363 return 0; 364 } 365 366 sub step_convert_fields { 367 my ($self, %param) = @_; 359 368 360 369 # Look for RF field definitions. 361 370 my $def_iter = MT->model('plugindata')->load_iter({ plugin => 'rightfields' }); 371 372 $self->progress($self->translate_escape('Discovering RightFields settings...')); 362 373 363 374 my (@tags, @fields); … … 369 380 } 370 381 382 $self->progress($self->translate_escape('Cataloguing RightFields tags...')); 383 371 384 my %tags_for_fields; 372 385 TAG: for my $tag_def (@tags) { … … 384 397 } 385 398 } 399 400 $self->progress($self->translate_escape('Cataloguing RightFields fields...')); 386 401 387 402 my (%fields_for_blog, %fields_by_id, %datasource_for_blog); … … 409 424 } 410 425 } 426 427 $self->progress($self->translate_escape('Converting RightFields fields to custom fields...')); 411 428 412 429 # Upgrade duplicates to global fields. … … 463 480 464 481 # Make corresponding custom fields. 465 my $fields_converted = 0;466 482 while (my ($blog_id, $fields) = each %fields_for_blog) { 467 483 my $datasource = $datasource_for_blog{$blog_id}; 468 484 while (my ($field_id, $field_data) = each %$fields) { 469 $fields_converted++; 470 _copy_custom_field_data( 485 $self->add_step('rf2cf_convert_data', 471 486 blog_id => $blog_id, 472 487 field_id => $field_id, … … 477 492 } 478 493 479 $app->add_return_arg( converted => $fields_converted ); 480 return $app->call_return(); 494 return 0; # done 481 495 } 482 496
