Projet

Général

Profil

Révision 950416da

Ajouté par Assos Assos il y a plus de 5 ans

Weekly update of contrib modules

Voir les différences:

drupal7/sites/all/modules/rules/includes/rules.upgrade.inc
28 28
    '#prefix' => '<p>',
29 29
    '#suffix' => '</p>',
30 30
    '#markup' => t('This form allows you to convert rules or rule sets from Rules 1.x to Rules 2.x.') . ' ' .
31
      t('In order to convert a rule or rule set make sure you have all dependend modules installed and upgraded, i.e. modules which provide Rules integration that has been used in your rules or rule sets. In addition those modules may need to implement some Rules specific update hooks for the conversion to properly work.') . ' ' .
32
      t('After conversion, the old rules and rule sets will stay in the database until you manually delete them. That way you can make sure the conversion has gone right before you delete the old rules and rule sets.')
31
      t('In order to convert a rule or rule set make sure you have all dependent modules installed and upgraded, i.e. modules which provide Rules integration that has been used in your rules or rule sets. In addition those modules may need to implement some Rules specific update hooks for the conversion to properly work.') . ' ' .
32
      t('After conversion, the old rules and rule sets will stay in the database until you manually delete them. That way you can make sure the conversion has gone right before you delete the old rules and rule sets.'),
33 33
  );
34 34

  
35 35
  $option_rules = $option_sets = array();
......
51 51
    $form['clear'] = array(
52 52
      '#prefix' => '<p>',
53 53
      '#suffix' => '</p>',
54
      '#markup' => t('Once you have successfully converted your configuration, you can clean up your database and <a href="!url">delete</a> all Rules 1.x configurations.', array('!url' => url('admin/config/workflow/rules/upgrade/clear')))
54
      '#markup' => t('Once you have successfully converted your configuration, you can clean up your database and <a href="!url">delete</a> all Rules 1.x configurations.', array('!url' => url('admin/config/workflow/rules/upgrade/clear'))),
55 55
    );
56 56
  }
57 57

  
......
72 72
    '#type' => 'radios',
73 73
    '#title' => t('Method'),
74 74
    '#options' => array(
75
       'export' => t('Convert configuration and export it.'),
76
       'save' => t('Convert configuration and save it.'),
75
      'export' => t('Convert configuration and export it.'),
76
      'save' => t('Convert configuration and save it.'),
77 77
    ),
78 78
    '#default_value' => 'export',
79 79
  );
......
81 81
  $form['actions']['convert'] = array(
82 82
    '#type' => 'submit',
83 83
    '#value' => t('Convert'),
84
    '#disabled' => !db_table_exists('rules_rules')
84
    '#disabled' => !db_table_exists('rules_rules'),
85 85
  );
86 86
  return $form;
87 87
}
......
137 137
  return confirm_form($form, $confirm_question, 'admin/config/workflow/rules/upgrade', $confirm_question_long, t('Delete data'), t('Cancel'));
138 138
}
139 139

  
140
/**
141
 * Submit handler for deleting data.
142
 */
140 143
function rules_upgrade_confirm_clear_form_submit($form, &$form_state) {
141 144
  db_drop_table('rules_rules');
142 145
  db_drop_table('rules_sets');
......
206 209
  }
207 210

  
208 211
  // Add in all rules of the set.
209
  foreach(_rules_upgrade_fetch_all_rules() as $rule_name => $rule) {
212
  foreach (_rules_upgrade_fetch_all_rules() as $rule_name => $rule) {
210 213
    if ($rule['#set'] == $name) {
211 214
      drupal_set_message(' >> ' . t('Converting %plugin %name...', array('%plugin' => t('rule'), '%name' => $rule_name . ': ' . $rule['#label'])));
212 215
      $new_rule = rules_upgrade_plugin_factory($rule);
......
220 223
/**
221 224
 * Convert a single element.
222 225
 *
223
 * @param $element
226
 * @param array $element
224 227
 *   The element to convert.
225
 * @param $target
228
 * @param RulesPlugin $target
226 229
 *   The converted element to write to.
227 230
 */
228 231
function rules_upgrade_convert_element(array $element, RulesPlugin $target) {
......
235 238
  foreach ($target->pluginParameterInfo() as $name => $info) {
236 239
    rules_upgrade_element_parameter_settings($element, $target, $name);
237 240
  }
238
  // @todo: Care about php input evaluator for non-text parameters.
241
  // @todo Care about php input evaluator for non-text parameters.
239 242

  
240 243
  // Take care of variable names and labels.
241 244
  foreach ($target->pluginProvidesVariables() as $name => $info) {
......
268 271

  
269 272
  // Invoke action/condition specific hooks and a general one.
270 273
  if (($element['#type'] == 'action' || $element['#type'] == 'condition')) {
271
    if (function_exists($function = $element['#name'] .'_upgrade')) {
274
    if (function_exists($function = $element['#name'] . '_upgrade')) {
272 275
      $element_name = $function($element, $target);
273 276
    }
274
    elseif (isset($element['#info']['base']) && function_exists($function = $element['#info']['base'] .'_upgrade')) {
277
    elseif (isset($element['#info']['base']) && function_exists($function = $element['#info']['base'] . '_upgrade')) {
275 278
      $element_name = $function($element, $target);
276 279
    }
277 280
  }
......
299 302
  switch ($element['#type']) {
300 303
    case 'OR':
301 304
      return rules_plugin_factory('or');
305

  
302 306
    case 'AND':
303 307
      return rules_plugin_factory('and');
308

  
304 309
    default:
305 310
      return rules_plugin_factory($element['#type']);
306 311

  
......
329 334
        }
330 335

  
331 336
        // Call the upgrade callback if one has been defined.
332
        if (function_exists($function = $element['#name'] .'_upgrade_map_name') || (isset($element['#info']['base']) && function_exists($function = $element['#info']['base'] .'_upgrade_map_name'))) {
337
        if (function_exists($function = $element['#name'] . '_upgrade_map_name') || (isset($element['#info']['base']) && function_exists($function = $element['#info']['base'] . '_upgrade_map_name'))) {
333 338
          $element_name = $function($element);
334 339
        }
335 340
        if (!isset($element_name)) {
......
380 385
 * Upgrade callbacks for upgrading the provided Rules 1.x integration.
381 386
 */
382 387

  
383
// Comment.module integration.
388
/**
389
 * Comment.module integration.
390
 */
384 391
function rules_action_load_comment_upgrade_map_name($element) {
385 392
  return 'entity_fetch';
386 393
}
394

  
387 395
function rules_action_load_comment_upgrade($element, $target) {
388 396
  $target->settings['type'] = 'comment';
389 397
  rules_upgrade_element_parameter_settings($element, $target, 'cid', 'id');
390 398
  rules_upgrade_element_variable_settings($element, $target, 'comment_loaded', 'entity_fetched');
391 399
}
392 400

  
393
// Node.module integration.
401
/**
402
 * Node.module integration.
403
 */
394 404
function rules_condition_content_is_type_upgrade_map_name($element) {
395 405
  return 'node_is_of_type';
396 406
}
407

  
397 408
function rules_condition_content_is_published_upgrade_map_name($element) {
398 409
  return 'node_is_published';
399 410
}
411

  
400 412
function rules_condition_content_is_sticky_upgrade_map_name($element) {
401 413
  return 'node_is_sticky';
402 414
}
415

  
403 416
function rules_condition_content_is_promoted_upgrade_map_name($element) {
404 417
  return 'node_is_promoted';
405 418
}
419

  
406 420
function rules_condition_content_is_new_upgrade_map_name($element) {
407 421
  return 'entity_is_new';
408 422
}
423

  
409 424
function rules_condition_content_is_new_upgrade($element, $target) {
410 425
  rules_upgrade_element_parameter_settings($element, $target, 'node', 'entity');
411 426
}
427

  
412 428
function rules_action_node_set_author_upgrade_map_name($element) {
413 429
  return 'data_set';
414 430
}
431

  
415 432
function rules_action_node_set_author_upgrade($element, $target) {
416 433
  $target->settings['data:select'] = $element['#settings']['#argument map']['node'] . ':author';
417 434
  $target->settings['value:select'] = $element['#settings']['#argument map']['author'];
418 435
}
436

  
419 437
function rules_action_node_load_author_upgrade_map_name($element) {
420 438
  return 'entity_fetch';
421 439
}
440

  
422 441
function rules_action_node_load_author_upgrade($element, $target) {
423 442
  $target->settings['type'] = 'user';
424 443
  $target->settings['id'] = $element['#settings']['#argument map']['node'] . ':author:uid';
425 444
}
445

  
426 446
function rules_action_set_node_title_upgrade_map_name($element) {
427 447
  return 'data_set';
428 448
}
449

  
429 450
function rules_action_set_node_title_upgrade($element, $target) {
430 451
  $target->settings['data:select'] = $element['#settings']['#argument map']['node'] . ':title';
431 452
  $target->settings['value'] = $element['#settings']['title'];
432 453
}
454

  
433 455
function rules_action_add_node_upgrade_map_name($element) {
434 456
  return 'entity_create';
435 457
}
458

  
436 459
function rules_action_add_node_upgrade($element, $target) {
437 460
  $target->settings['type'] = 'node';
438 461
  rules_upgrade_element_parameter_settings($element, $target, 'title', 'param_title');
......
443 466
    drupal_set_message(t('Warning: The node-access check option for the node creation action is not supported any more.'));
444 467
  }
445 468
}
469

  
446 470
function rules_action_load_node_upgrade_map_name($element) {
447 471
  return 'entity_fetch';
448 472
}
473

  
449 474
function rules_action_load_node_upgrade($element, $target) {
450 475
  $target->settings['type'] = 'node';
451 476
  rules_upgrade_element_parameter_settings($element, $target, 'nid', 'id');
452 477
  rules_upgrade_element_parameter_settings($element, $target, 'vid', 'revision_id');
453 478
  rules_upgrade_element_variable_settings($element, $target, 'node_loaded', 'entity_fetched');
454 479
}
480

  
455 481
function rules_action_delete_node_upgrade_map_name($element) {
456 482
  return 'entity_delete';
457 483
}
484

  
458 485
function rules_action_delete_node_upgrade($element, $target) {
459 486
  rules_upgrade_element_parameter_settings($element, $target, 'node', 'entity');
460 487
}
488

  
461 489
function rules_core_node_publish_action_upgrade_map_name($element) {
462 490
  return 'node_publish';
463 491
}
492

  
464 493
function rules_core_node_unpublish_action_upgrade_map_name($element) {
465 494
  return 'node_unpublish';
466 495
}
496

  
467 497
function rules_core_node_make_sticky_action_upgrade_map_name($element) {
468 498
  return 'node_make_sticky_action';
469 499
}
500

  
470 501
function rules_core_node_make_unsticky_action_upgrade_map_name($element) {
471 502
  return 'node_make_unsticky_action';
472 503
}
504

  
473 505
function rules_core_node_promote_action_upgrade_map_name($element) {
474 506
  return 'node_promote_action';
475 507
}
508

  
476 509
function rules_core_node_unpromote_action_upgrade_map_name($element) {
477 510
  return 'node_unpromote_action';
478 511
}
479 512

  
480

  
481
// Path.module integration.
513
/**
514
 * Path.module integration.
515
 */
482 516
function rules_condition_url_has_alias_upgrade_map_name($element) {
483 517
  return 'path_has_alias';
484 518
}
519

  
485 520
function rules_condition_url_has_alias_upgrade($element, $target) {
486 521
  $target->settings['source'] = $element['#settings']['src'];
487 522
  $target->settings['alias'] = $element['#settings']['dst'];
488 523
}
524

  
489 525
function rules_condition_alias_exists_upgrade_map_name($element) {
490 526
  return 'path_alias_exists';
491 527
}
528

  
492 529
function rules_condition_alias_exists_upgrade($element, $target) {
493 530
  $target->settings['alias'] = $element['#settings']['dst'];
494 531
}
532

  
495 533
function rules_action_path_alias_upgrade($element, $target) {
496 534
  $target->settings['source'] = $element['#settings']['src'];
497 535
  $target->settings['alias'] = $element['#settings']['dst'];
498 536
}
537

  
499 538
function rules_action_node_path_alias_upgrade($element, $target) {
500 539
  $target->settings['alias'] = $element['#settings']['dst'];
501 540
}
502 541

  
503
// PHP.module integration.
542
/**
543
 * PHP.module integration.
544
 */
504 545
function rules_condition_custom_php_upgrade_map_name($element) {
505 546
  return 'php_eval';
506 547
}
548

  
507 549
function rules_action_custom_php_upgrade_map_name($element) {
508 550
  return 'php_eval';
509 551
}
510 552

  
511
// General Rules integration.
553
/**
554
 * General Rules integration.
555
 */
512 556
function rules_condition_text_compare_upgrade_map_name($element) {
513
  // @todo: Support regex.
557
  // @todo Support regex.
514 558
  return 'data_is';
515 559
}
560

  
516 561
function rules_condition_text_compare_upgrade($element, $target) {
517 562
  rules_upgrade_element_parameter_settings($element, $target, 'text1', 'data');
518 563
  rules_upgrade_element_parameter_settings($element, $target, 'text2', 'value');
519 564
}
565

  
520 566
function rules_condition_number_compare_upgrade_map_name($element) {
521 567
  return 'data_is';
522 568
}
569

  
523 570
function rules_condition_number_compare_upgrade($element, $target) {
524 571
  rules_upgrade_element_parameter_settings($element, $target, 'number1', 'data');
525 572
  rules_upgrade_element_parameter_settings($element, $target, 'number2', 'value');
526 573
}
574

  
527 575
function rules_condition_check_boolean_upgrade_map_name($element) {
528 576
  return 'data_is';
529 577
}
578

  
530 579
function rules_condition_check_boolean_upgrade($element, $target) {
531 580
  rules_upgrade_element_parameter_settings($element, $target, 'boolean', 'data');
532 581
  $target->settings['value'] = TRUE;
533 582
}
583

  
534 584
function rules_action_invoke_set_upgrade_map_name($element) {
535 585
  return 'component_' . $element['#info']['set'];
536 586
}
587

  
537 588
function rules_action_invoke_set_upgrade($element, $target) {
538 589
  foreach ($element['#info']['arguments'] as $name => $info) {
539 590
    rules_upgrade_element_parameter_settings($element, $target, $name);
540 591
  }
541 592
}
593

  
542 594
function rules_action_save_variable_upgrade_map_name($element) {
543 595
  return isset($element['#info']['new variables']) ? 'variable_add' : 'entity_save';
544 596
}
597

  
545 598
function rules_action_save_variable_upgrade($element, $target) {
546 599
  $type = $element['#info']['arguments']['var_name']['default value'];
547 600
  if (isset($element['#info']['new variables'])) {
......
554 607
  }
555 608
}
556 609

  
557

  
558
// System.module integration.
610
/**
611
 * System.module integration.
612
 */
559 613
function rules_action_set_breadcrumb_upgrade_map_name($element) {
560
  return 'breadcumb_set';
614
  return 'breadcrumb_set';
561 615
}
616

  
562 617
function rules_action_mail_to_user_upgrade_map_name($element) {
563 618
  return 'mail';
564 619
}
620

  
565 621
function rules_action_mail_to_user_upgrade($element, $target) {
566 622
  $target->settings['to:select'] = $element['#settings']['#argument map']['user'] . ':mail';
567 623
}
624

  
568 625
function rules_action_drupal_goto_upgrade_map_name($element) {
569 626
  return 'redirect';
570 627
}
628

  
571 629
function rules_action_drupal_goto_upgrade($element, $target) {
572 630
  $settings = $element['#settings'];
573 631
  $target->settings['url'] = $settings['path'];
......
579 637
}
580 638

  
581 639
function rules_action_watchdog_upgrade_map_name($element) {
582
  // @todo: Support action in Rules 2.x!
640
  // @todo Support action in Rules 2.x!
583 641
  return NULL;
584 642
}
585 643

  
586
// Taxonomy.module integration.
587
// @todo: Finish.
644
/**
645
 * Taxonomy.module integration.
646
 *
647
 * @todo Finish.
648
 */
588 649
function rules_action_taxonomy_load_term_upgrade_map_name($element) {
589 650
  return 'entity_fetch';
590 651
}
652

  
591 653
function rules_action_taxonomy_add_term_upgrade_map_name($element) {
592 654
  return 'entity_create';
593 655
}
656

  
594 657
function rules_action_taxonomy_delete_term_upgrade_map_name($element) {
595 658
  return 'entity_delete';
596 659
}
660

  
597 661
function rules_action_taxonomy_term_assign_to_content_upgrade_map_name($element) {
598
  // @todo : list.
662
  // @todo List.
599 663
  return NULL;
600 664
}
665

  
601 666
function rules_action_taxonomy_term_remove_from_content_upgrade_map_name($element) {
602
  // @todo : list.
667
  // @todo List.
603 668
  return NULL;
604 669
}
670

  
605 671
function rules_action_taxonomy_load_vocab_upgrade_map_name($element) {
606 672
  return 'entity_fetch';
607 673
}
674

  
608 675
function rules_action_taxonomy_add_vocab_upgrade_map_name($element) {
609 676
  return 'data_set';
610 677
}
611 678

  
612
// User.module integration.
679
/**
680
 * User.module integration.
681
 */
613 682
function rules_condition_user_hasrole_upgrade_map_name($element) {
614 683
  return 'user_has_role';
615 684
}
685

  
616 686
function rules_condition_user_hasrole_upgrade($element, $target) {
617 687
  rules_upgrade_element_parameter_settings($element, $target, 'user', 'account');
618 688
}
689

  
619 690
function rules_condition_user_comparison_upgrade_map_name($element) {
620 691
  return 'data_is';
621 692
}
693

  
622 694
function rules_condition_user_comparison_upgrade($element, $target) {
623 695
  rules_upgrade_element_parameter_settings($element, $target, 'user1', 'data');
624 696
  rules_upgrade_element_parameter_settings($element, $target, 'user2', 'value');
625 697
}
698

  
626 699
function rules_action_user_addrole_upgrade_map_name($element) {
627 700
  return 'user_add_role';
628 701
}
702

  
629 703
function rules_action_user_addrole_upgrade($element, $target) {
630 704
  rules_upgrade_element_parameter_settings($element, $target, 'user', 'account');
631 705
}
706

  
632 707
function rules_action_user_removerole_upgrade_map_name($element) {
633 708
  return 'user_remove_role';
634 709
}
710

  
635 711
function rules_action_user_removerole_upgrade($element, $target) {
636 712
  rules_upgrade_element_parameter_settings($element, $target, 'user', 'account');
637 713
}
714

  
638 715
function rules_action_load_user_upgrade_map_name($element) {
639 716
  if (!empty($element['#settings']['username'])) {
640 717
    drupal_set_message(t('Warning: Directly upgrading the load user by name action is not supported.'));
641 718
  }
642 719
  return 'entity_fetch';
643 720
}
721

  
644 722
function rules_action_load_user_upgrade($element, $target) {
645 723
  $target->settings['type'] = 'user';
646 724
  rules_upgrade_element_parameter_settings($element, $target, 'userid', 'id');
647 725
  rules_upgrade_element_variable_settings($element, $target, 'user_loaded', 'entity_fetched');
648 726
}
727

  
649 728
function rules_action_user_create_upgrade_map_name($element) {
650 729
  return 'entity_create';
651 730
}
731

  
652 732
function rules_action_user_create_upgrade($element, $target) {
653 733
  $target->settings['type'] = 'user';
654 734
  rules_upgrade_element_parameter_settings($element, $target, 'username', 'param_name');
655 735
  rules_upgrade_element_parameter_settings($element, $target, 'email', 'param_mail');
656 736
  rules_upgrade_element_variable_settings($element, $target, 'user_added', 'entity_created');
657

  
658 737
}
738

  
659 739
function rules_core_user_block_user_action_upgrade_map_name($element) {
660 740
  return 'user_block';
661 741
}
742

  
662 743
function rules_core_user_block_user_action_upgrade($element, $target) {
663 744
  $target->settings['account:select'] = $element['#settings']['#argument map']['user'];
664 745
}

Formats disponibles : Unified diff