You are here

function rules_admin_form_edit_rule in Rules 6

Returns the form for editing a rule

1 string reference to 'rules_admin_form_edit_rule'
rules_admin_menu in rules_admin/rules_admin.module
Implementation of hook_menu().

File

rules_admin/rules_admin.rule_forms.inc, line 177

Code

function rules_admin_form_edit_rule(&$form_state, $proxy) {
  $form_state['proxy'] =& $proxy;
  $rule = $proxy
    ->get_rule();
  _rules_element_defaults($rule);
  $rule['#name'] = drupal_substr($proxy
    ->get_rule_name(), drupal_strlen('rules_'));
  $is_set = strpos($rule['#set'], 'event_') !== 0;
  $form = rules_admin_form_rule_settings($rule, $is_set, $rule['#status'] == 'custom');
  $form['settings']['#collapsed'] = TRUE;

  // Add help
  rules_admin_element_help($form, $proxy
    ->get_set_info());

  // Show a warning when editing custom rules form other modules
  if ($rule['#status'] == 'custom' && strpos($proxy
    ->get_rule_name(), 'rules_') !== 0) {
    drupal_set_message(t('<em>Warning</em>: This rule has been provided by another module. <br />Be aware that any changes made through this interface might be overwritten once the providing module updates the rule.'));
  }
  $form['elements'] = array(
    '#type' => 'fieldset',
    '#title' => t('Rule elements'),
    '#collapsible' => TRUE,
  );

  //this will render the whole rule with the help of drupal_render(),

  //see rules_admin.render.inc
  $form['elements']['rule'] = $proxy
    ->get_indexed_rule();
  $form['elements']['rule']['#name'] = $proxy
    ->get_rule_name();
  $form['elements']['rule']['#theme'] = array(
    'rules_admin_rule_render',
  );
  return $form;
}