function webform_components_form in Webform 6.3
Same name and namespace in other branches
- 5.2 webform_components.inc \webform_components_form()
- 6.2 webform_components.inc \webform_components_form()
- 7.4 includes/webform.components.inc \webform_components_form()
- 7.3 includes/webform.components.inc \webform_components_form()
The table-based listing of all components for this webform.
1 string reference to 'webform_components_form'
- webform_components_page in includes/
webform.components.inc - Overview page of all components for this webform.
File
- includes/
webform.components.inc, line 39 - Webform module component handling.
Code
function webform_components_form($form_state, $node) {
$form = array(
'#tree' => TRUE,
'#node' => $node,
'components' => array(),
);
$form['nid'] = array(
'#type' => 'value',
'#value' => $node->nid,
);
$options = array();
foreach ($node->webform['components'] as $cid => $component) {
$options[$cid] = check_plain($component['name']);
$form['components'][$cid]['cid'] = array(
'#type' => 'hidden',
'#default_value' => $component['cid'],
);
$form['components'][$cid]['pid'] = array(
'#type' => 'hidden',
'#default_value' => $component['pid'],
);
$form['components'][$cid]['weight'] = array(
'#type' => 'textfield',
'#size' => 4,
'#title' => t('Weight'),
'#default_value' => $component['weight'],
);
$form['components'][$cid]['mandatory'] = array(
'#type' => 'checkbox',
'#title' => t('Mandatory'),
'#default_value' => $component['mandatory'],
'#access' => webform_component_feature($component['type'], 'required'),
);
if (!isset($max_weight) || $component['weight'] > $max_weight) {
$max_weight = $component['weight'];
}
}
$form['add']['name'] = array(
'#type' => 'textfield',
'#size' => 24,
'#maxlength' => 255,
);
$form['add']['type'] = array(
'#type' => 'select',
'#options' => webform_component_options(),
'#weight' => 3,
'#default_value' => isset($_GET['cid']) && isset($node->webform['components'][$_GET['cid']]) ? $node->webform['components'][$_GET['cid']]['type'] : 'textfield',
);
$form['add']['mandatory'] = array(
'#type' => 'checkbox',
);
$form['add']['cid'] = array(
'#type' => 'hidden',
'#default_value' => '',
);
$form['add']['pid'] = array(
'#type' => 'hidden',
'#default_value' => isset($_GET['cid']) && isset($node->webform['components'][$_GET['cid']]) ? $node->webform['components'][$_GET['cid']]['pid'] : 0,
);
$form['add']['weight'] = array(
'#type' => 'textfield',
'#size' => 4,
'#delta' => count($node->webform['components']) > 10 ? count($node->webform['components']) : 10,
);
if (isset($_GET['cid']) && isset($node->webform['components'][$_GET['cid']])) {
// Make the new component appear by default directly after the one that was
// just added.
$form['add']['weight']['#default_value'] = $node->webform['components'][$_GET['cid']]['weight'] + 1;
foreach (array_keys($node->webform['components']) as $cid) {
// Adjust all later components also, to make sure none of them have the
// same weight as the new component.
if ($form['components'][$cid]['weight']['#default_value'] >= $form['add']['weight']['#default_value']) {
$form['components'][$cid]['weight']['#default_value']++;
}
}
}
else {
// If no component was just added, the new component should appear by
// default at the end of the list.
$form['add']['weight']['#default_value'] = isset($max_weight) ? $max_weight + 1 : 0;
}
$form['add']['add'] = array(
'#type' => 'submit',
'#value' => t('Add'),
'#weight' => 45,
'#validate' => array(
'webform_components_form_add_validate',
'webform_components_form_validate',
),
'#submit' => array(
'webform_components_form_add_submit',
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
'#weight' => 45,
'#access' => count($node->webform['components']) > 0,
);
return $form;
}