You are here

function rules_admin_form_rule_settings in Rules 6

Returns the form for the settings of a rule

Parameters

$is_set: When adding a new rule for a rule set, TRUE.

3 calls to rules_admin_form_rule_settings()
rules_admin_form_add_rule in rules_admin/rules_admin.rule_forms.inc
Returns the add rule form
rules_admin_form_clone in rules_admin/rules_admin.rule_forms.inc
Clones a rule
rules_admin_form_edit_rule in rules_admin/rules_admin.rule_forms.inc
Returns the form for editing a rule

File

rules_admin/rules_admin.rule_forms.inc, line 108

Code

function rules_admin_form_rule_settings($rule, $is_set = FALSE, $changable_name = TRUE) {
  $form['settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Rule settings'),
    '#collapsible' => TRUE,
  );
  $form['settings']['label'] = array(
    '#title' => t('Label'),
    '#type' => 'textfield',
    '#description' => t('Choose an appropriate label for this rule.'),
    '#default_value' => isset($rule['#label']) ? $rule['#label'] : '',
    '#required' => TRUE,
  );
  $form['settings']['name'] = array(
    '#title' => t('Machine readable name'),
    '#type' => 'textfield',
    '#description' => t('Specify a unique name containing only alphanumeric characters, and underscores.'),
    '#default_value' => isset($rule['#name']) ? $rule['#name'] : '',
    '#disabled' => !$changable_name,
    '#required' => TRUE,
  );

  // Only set the value if name isn't changable.
  if (!$changable_name) {
    $form['settings']['name']['#value'] = $rule['#name'];
  }
  $form['settings']['set'] = array(
    '#type' => 'select',
    '#default_value' => isset($rule['#set']) ? $rule['#set'] : '',
    '#required' => TRUE,
  );
  if ($is_set) {
    $form['settings']['set'] += array(
      '#title' => t('Rule set'),
      '#options' => rules_admin_get_grouped_labels(rules_admin_get_compatible_sets($rule, rules_get_configured_items('rule_sets'))),
      '#description' => t('Select to which rule set this rule should belong.'),
    );
  }
  else {
    $form['settings']['set'] += array(
      '#title' => t('Event'),
      '#options' => rules_admin_get_grouped_labels(rules_admin_get_compatible_sets($rule, rules_get_event_sets())),
      '#description' => t('Select the event on which you want to evaluate this rule.'),
    );
  }
  $form['settings']['categories'] = array(
    '#type' => 'textfield',
    '#title' => t('Categories'),
    '#default_value' => isset($rule['#categories']) ? implode(', ', $rule['#categories']) : '',
    '#description' => t('A comma-separated list of terms describing this rule. Example: funny, bungee jumping.'),
    '#autocomplete_path' => RULES_ADMIN_PATH . '/autocomplete',
  );
  $form['settings']['active'] = array(
    '#title' => t('This rule is active and should be evaluated when the associated event occurs.'),
    '#type' => 'checkbox',
    '#default_value' => isset($rule['#active']) ? $rule['#active'] : 1,
  );
  $form['settings']['weight'] = array(
    '#title' => t('Weight'),
    '#type' => 'weight',
    '#description' => t('Adjust the weight to customize the evaluation order of rules.'),
    '#default_value' => isset($rule['#weight']) ? $rule['#weight'] : 0,
  );
  $form['settings']['button'] = array(
    '#type' => 'submit',
    '#weight' => 10,
    '#value' => t('Save changes'),
  );
  return $form;
}