You are here

function ca_add_actions in Ubercart 7.3

Reads a predicate's actions array and add them to a Rule.

Parameters

Rule &$rule: The configuration to receive actions.

$actions: The predicate's actions array.

1 call to ca_add_actions()
ca_convert_predicate in uc_store/includes/ca.inc
Base helper function to convert CA predicates to Rules configurations.

File

uc_store/includes/ca.inc, line 276
Helper functions for upgrade from Ubercart 2.x to Ubercart 3.x.

Code

function ca_add_actions(&$rule, $actions) {
  foreach ($actions as $action) {
    $settings = array();

    // The argument maps are like data selectors pointing to event variables.
    foreach ($action['#argument_map'] as $key => $value) {
      $key .= ':select';
      $settings[$key] = $value;
    }
    foreach ($action['#settings'] as $key => $value) {
      $settings[$key] = $value;
    }
    switch ($action['#name']) {
      case 'ca_drupal_set_message':
        $name = 'drupal_message';
        $settings = array(
          'message' => $settings['message_text'],
          'error' => $settings['message_type'] == 'error',
        );
        break;
      case 'ca_action_custom_php':
        $name = 'php_eval';
        $settings = array(
          'code' => $settings['php'],
        );
        break;
      default:
        $name = $action['#name'];
        break;
    }
    $rule
      ->action($name, $settings);
  }
}