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