You are here

function rules_admin_default_argument_form in Rules 6

Returns the argument form for the given element

2 calls to rules_admin_default_argument_form()
rules_admin_form_edit_action in rules_admin/rules_admin.rule_forms.inc
Returns the edit form for an action
rules_admin_form_edit_condition in rules_admin/rules_admin.rule_forms.inc
Returns the edit form for a condition

File

rules_admin/rules_admin.rule_forms.inc, line 765

Code

function rules_admin_default_argument_form(&$form, &$form_state, $element) {
  $form['input_help'] = rules_input_evaluators_help($element, $form_state['proxy']
    ->get_available_variables($form_state['element']['#id']));
  $form['settings'] = array(
    '#tree' => TRUE,
  );
  $form['map'] = array(
    '#tree' => TRUE,
  );
  $function = $element['#name'] . '_form';
  $info = rules_retrieve_element_info($element);
  if (isset($info['arguments']) && count($info['arguments'])) {
    $variables = $form_state['proxy']
      ->get_available_variables($element['#id']);
    foreach ($info['arguments'] as $name => $arg_info) {
      $arg = rules_get_data_object($arg_info);
      if ($arg
        ->uses_input_form()) {
        $value = isset($element['#settings'][$name]) ? $element['#settings'][$name] : NULL;
        $form['settings'][$name] = $arg
          ->get_default_input_form($arg_info, $value, $form_state);
      }
      else {
        $args = rules_admin_map_get_possible_arguments($arg_info, $variables);
        $form['map'][$name] = array(
          '#type' => 'select',
          '#title' => $arg_info['label'],
          '#options' => $args,
          '#default_value' => rules_admin_element_map_variable_name($name, $element),
          '#description' => isset($arg_info['description']) ? $arg_info['description'] : '',
        );
      }
    }
    if (element_children($form['map'])) {
      $form['map'] += array(
        '#type' => 'fieldset',
        '#title' => t('Arguments configuration'),
        '#weight' => -2,
      );
    }
  }
}