You are here

function rules_admin_form_edit_rule_submit in Rules 6

File

rules_admin/rules_admin.rule_forms.inc, line 218

Code

function rules_admin_form_edit_rule_submit(&$form, &$form_state) {
  $rule_ref =& $form_state['proxy']
    ->get_rule();
  foreach (array(
    'label',
    'active',
    'weight',
    'set',
  ) as $key) {
    $rule_ref['#' . $key] = $form_state['values'][$key];
  }
  $rule_ref['#categories'] = array_filter(array_map('trim', explode(',', $form_state['values']['categories'])));

  // Set the new rule name if needed.
  if ($rule_ref['#status'] == 'custom' && $form_state['values']['name'] != $form_state['proxy']
    ->get_rule_name()) {
    $name = 'rules_' . $form_state['values']['name'];
    $form_state['proxy']
      ->set_rule_name($name);
    $form_state['redirect'] = 'admin/rules/rules/' . $name . '/edit';
  }
  $form_state['proxy']
    ->save_changes();
  drupal_set_message(t("The rule %label has been updated.", array(
    '%label' => $rule_ref['#label'],
  )));
}