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);
}
}
}
}
}