You are here

function webform_validation_entity_uuid_save in Webform Validation 7

Implements hook_entity_uuid_save().

File

./webform_validation.module, line 621

Code

function webform_validation_entity_uuid_save($node, $entity_type) {
  if ($entity_type == 'node') {
    if (isset($node->webform['validation'])) {
      $rules = $node->webform['validation'];
      $orig_rules = webform_validation_get_node_rules_assoc($node->nid);
      $transaction = db_transaction();

      // Delete obsolete rules.
      $delete = array_diff_key($orig_rules, $rules);
      foreach ($delete as $rule) {
        webform_dynamic_delete_rule($rule['ruleid']);
      }

      // Add new rules.
      $new = array_diff_key($rules, $orig_rules);
      foreach ($new as $rule) {
        $rule['action'] = 'add';
        $rule['nid'] = $node->nid;
        $rule['rule_components'] = $rule['components'];
        webform_validation_rule_save($rule);
      }

      // Update existing rules.
      $existing = array_diff_key($rules, $new + $delete);
      foreach ($existing as $name => $rule) {
        $orig_rule = $orig_rules[$name];
        $rule['nid'] = $orig_rule['nid'];
        $rule['ruleid'] = $orig_rule['ruleid'];
        if ($rule != $orig_rule) {
          $rule['action'] = 'edit';
          $rule['rule_components'] = $rule['components'];
          webform_validation_rule_save($rule);
        }
      }
    }
  }
}