finder_admin_element_edit
- Versions
- 6--1
finder_admin_element_edit($form_state, $finder, $finder_element_id)
Admin finder element add/edit page. Must have a Finder object at this point.
Code
includes/finder.admin.inc, line 577
<?php
function finder_admin_element_edit($form_state, $finder, $finder_element_id) {
$element = &finder_element($finder, $finder_element_id);
// allow modules to change the element here
finder_invoke_finderapi($element, 'finder_admin_element_edit');
$module = &$finder->base_handler['#module'];
$fields = module_invoke($module, 'finder_fields', $finder, $finder_element_id);
$form_state['storage']['finder'] = $finder;
$form_state['storage']['finder_element_id'] = $finder_element_id;
$form_state['storage']['finder_element_defaults'] = $element;
$form = array();
$form['#tree'] = TRUE;
$form['finder_id'] = array(
'#type' => 'value',
'#value' => $finder->finder_id,
'#weight' => 0,
);
$form['finder_element_id'] = array(
'#type' => 'value',
'#value' => $finder_element_id,
'#weight' => 2,
);
$form['element'] = array(
'#type' => 'select',
'#title' => t('Element'),
'#default_value' => $element->element ? $element->element : '',
'#options' => finder_admin_get_element_options(),
'#description' => t('The form element to use.'),
'#required' => TRUE,
'#weight' => 10,
);
$form['title'] = array(
'#type' => 'textfield',
'#title' => t('Title'),
'#default_value' => $element->title ? $element->title : '',
'#size' => 40,
'#maxlength' => 255,
'#required' => TRUE,
'#weight' => 20,
'#description' => t('The label on the form element.'),
);
$form['settings'] = array(
'#weight' => 30,
);
$form['settings']['form'] = array(
'#type' => 'fieldset',
'#title' => t('Finder form element settings'),
'#weight' => 0,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['settings']['form']['description'] = array(
'#type' => 'textfield',
'#title' => t('Description'),
'#default_value' => isset($element->settings['form']['description']) ? $element->settings['form']['description'] : '',
'#weight' => 10,
'#description' => t('The description or help message to display with the form element.'),
);
$form['settings']['form']['prefix'] = array(
'#type' => 'textarea',
'#title' => t('Prefix'),
'#default_value' => isset($element->settings['form']['prefix']) ? $element->settings['form']['prefix'] : '',
'#weight' => 20,
'#description' => t('Displayed before the form element.'),
);
$form['settings']['form']['prefix_format'] = filter_form($element->settings['form']['prefix_format'], 21, array('settings', 'form', 'prefix_format'));
$form['settings']['form']['suffix'] = array(
'#type' => 'textarea',
'#title' => t('Suffix'),
'#default_value' => isset($element->settings['form']['suffix']) ? $element->settings['form']['suffix'] : '',
'#weight' => 30,
'#description' => t('Displayed after the form element.'),
);
$form['settings']['form']['suffix_format'] = filter_form($element->settings['form']['suffix_format'], 31, array('settings', 'form', 'suffix_format'));
$form['settings']['form']['default_value'] = array(
'#type' => 'textfield',
'#title' => t('Default value'),
'#default_value' => isset($element->settings['form']['default_value']) ? $element->settings['form']['default_value'] : '',
'#weight' => 40,
'#description' => t('Default value of the form element.'),
);
$form['settings']['form']['required'] = array(
'#type' => 'checkbox',
'#title' => t('Required'),
'#default_value' => isset($element->settings['form']['required']) ? $element->settings['form']['required'] : 0,
'#weight' => 50,
'#description' => t('Enforce user input in this field.'),
);
$form['settings']['choices'] = array(
'#type' => 'fieldset',
'#title' => t('Possible choices'),
'#weight' => 60,
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
if ($fields) {
$form['settings']['choices']['field'] = array(
'#type' => 'select',
'#title' => t('Find items by this field'),
'#default_value' => $element->settings['choices']['field'],
'#options' => $fields,
'#description' => t('This is the field that will be searched on. If you pick multiple fields performance may be affected.'),
'#weight' => 20,
'#required' => TRUE,
'#multiple' => TRUE,
'#size' => min(6, count($fields)+1),
);
}
else {
$form['settings']['choices']['no_field'] = array(
'#value' => t("<em>There are currently no fields to choose from.</em>"),
'#weight' => 20,
);
}
$form['settings']['choices']['sort'] = array(
'#type' => 'checkbox',
'#title' => t('Sort options'),
'#default_value' => $element->settings['choices']['sort'],
'#weight' => 100,
'#description' => t('Will put the list into order for easier scanning.'),
);
$form['settings']['advanced'] = array(
'#type' => 'fieldset',
'#title' => t('Advanced element settings'),
'#weight' => 500,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['settings']['advanced']['delimit'] = array(
'#type' => 'textfield',
'#title' => t('Treat delimited values as separate keywords upon submission'),
'#default_value' => isset($element->settings['advanced']['delimit']) ? $element->settings['advanced']['delimit'] : '',
'#weight' => 10,
'#description' => t('For example, if you type a space here, the submitted value will be expanded into a value for each word. Leave empty to disable this feature.'),
);
$form['settings']['advanced']['value_combination'] = array(
'#type' => 'radios',
'#title' => t('Multiple value/field result combination'),
'#default_value' => isset($element->settings['advanced']['value_combination']) ? $element->settings['advanced']['value_combination'] : 0,
'#weight' => 20,
'#description' => t('With multiple submitted values for this element, or with multiple fields being select above, how should the values/fields be combined when calculating results?'),
'#options' => array(
0 => t('Match <em>any</em> value.'),
1 => t('Match <em>all</em> values.'),
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save finder element'),
'#weight' => 10000,
);
$form['delete'] = array(
'#type' => 'submit',
'#value' => t('Delete finder element'),
'#weight' => 10020,
);
return $form;
}
?>
