function _sliderfield_element_sliderfield_structure in SliderField 7.2
Processes transfer slider: add textfields
Parameters
unknown_type $element:
2 calls to _sliderfield_element_sliderfield_structure()
- theme_sliderfield_sliderfield in ./
sliderfield_element_sliderfield.inc - Theme output of sliderfield
- _sliderfield_sliderfield_process in ./
sliderfield_element_sliderfield.inc - Processes transfer slider: add textfields
File
- ./
sliderfield_element_sliderfield.inc, line 199
Code
function _sliderfield_element_sliderfield_structure($element, &$form_state) {
$element['#tree'] = TRUE;
/*
$values = NULL;
$input = NULL;
if (isset($form_state['values'])) {
$values = drupal_array_get_nested_value($form_state['values'], $element['#parents']);
$input = drupal_array_get_nested_value($form_state['input'], $element['#parents']);
}
*/
if (is_array($element['#value'])) {
$value = isset($element['#value']['value']) ? $element['#value']['value'] : NULL;
$value2 = isset($element['#value']['value2']) ? $element['#value']['value2'] : NULL;
}
else {
$value = $element['#value'];
$value2 = NULL;
}
if ($element['#display_inside_fieldset']) {
$element['slider'] = array(
'#type' => 'fieldset',
'#title' => $element['#title'],
);
}
elseif ($element['#title']) {
$element['slider'] = array(
'#type' => 'container',
);
/*
$element['slider']['title'] = array(
'#type' => 'item',
'#markup' => '<label>' . $element['#title'] . '</label>'
);
*/
}
if (!is_null($value) && $value !== '') {
if ($value < $element['#min']) {
$value = $element['#min'];
}
if ($value > $element['#max']) {
$value = $element['#max'];
}
}
$values = array();
$values[] = $value;
$group_css = '';
if ($element['#group']) {
$group_css = 'sliderfield-group-' . $element['#group'];
if ($element['#group_master']) {
$group_css .= ' sliderfield-group-master';
}
}
if ($element['#display_ignore_button'] && !$element['#display_inputs']) {
$element['ignore'] = array(
'#type' => 'checkbox',
'#title' => t('Not Selected (Uncheck to select a value)'),
'#value' => is_null($value) || $value === '',
'#disabled' => $element['#disabled'],
'#attributes' => array(
'class' => array(
'sliderfield-ignore',
),
),
);
}
// Generate input for slider
$element['value'] = array(
'#tree' => TRUE,
'#prefix' => '<div id="' . $element['#id'] . '" class="sliderfield ' . $group_css . '">' . '<div class="sliderfield-event-field-container">',
'#suffix' => '</div>',
'#type' => 'textfield',
'#required' => $element['#required'],
'#element_validate' => array(
'sliderfield_validate_number',
),
'#title' => $element['#input_title'],
'#default_value' => $value,
'#disabled' => $element['#disabled'],
'#size' => $element['#size'],
'#attributes' => array(
'class' => array(
'sliderfield-value-field',
),
),
);
//Only show title for input fields when there is more than one value
if (is_null($value2)) {
$element['value']['#title'] = NULL;
}
#--(Begin)--> For Ajax compatibility
if (isset($element['#ajax'])) {
$ajax = @$element['#ajax'];
if (!isset($ajax['trigger_as']) && isset($element['#name'])) {
$value = NULL;
$ajax['trigger_as'] = array(
'name' => $element['#name'],
'value' => $value,
);
}
if (!isset($ajax['event'])) {
$ajax['event'] = 'change';
}
// Generate input for slider
$element['value']['#ajax'] = $ajax;
}
#--(End)--> For Ajax compatibility
if (!is_null($value2)) {
if (!is_null($value2) && $value2 !== '') {
if ($value2 < $element['#min']) {
$value2 = $element['#min'];
}
if ($value2 > $element['#max']) {
$value2 = $element['#max'];
}
}
if ($value2 < $value) {
$value2 = $value;
}
$values[] = $value2;
$element['value2'] = array(
'#type' => 'textfield',
'#default_value' => $value2,
'#required' => $element['#required'],
'#title' => $element['#input2_title'],
'#element_validate' => array(
'sliderfield_validate_number',
),
'#disabled' => $element['#disabled'],
'#size' => $element['#size'],
'#attributes' => array(
'class' => array(
'sliderfield-value2-field',
),
),
);
}
if ($element['#range'] === TRUE && (!isset($value2) || is_null($value2))) {
$element['#range'] = FALSE;
}
if ($element['#display_values']) {
foreach ($values as $key => $value) {
$values[$key] = str_replace('%{value}%', $value, $element['#display_values_format']);
}
$element['values_text'] = array(
'#markup' => '<div class="sliderfield-display-values-field">' . htmlentities(implode(' - ', $values)) . '</div>',
);
}
$style = NULL;
if (!is_null($element['#slider_length'])) {
if ($element['#orientation'] == 'horizontal') {
$style = "width : {$element['#slider_length']}";
}
else {
$style = "height : {$element['#slider_length']}";
}
}
if ($element['#hide_slider_handle_when_no_value'] && !empty($element['#no_value_text'])) {
$element['note'] = array(
'#type' => 'markup',
'#markup' => '<div class="sliderfield-selectvalue-description">' . t($element['#no_value_text']) . '</div>',
);
}
$_attributes_new = array(
'class' => array(
'sliderfield-container',
$element['#slider_style'],
),
'style' => $style,
);
if (isset($element['#attributes']) && is_array($element['#attributes'])) {
$_attributes_new = drupal_array_merge_deep($_attributes_new, $element['#attributes']);
}
// Create markup for slider container
$element['container'] = array(
'#type' => 'container',
'#attributes' => $_attributes_new,
'#attached' => array(
'library' => array(
array(
'system',
'ui.slider',
),
),
'js' => array(
drupal_get_path('module', 'sliderfield') . '/sliderfield_element_sliderfield.js',
array(
'data' => array(
'sliderfield_' . $element['#id'] => array(
'animate' => $element['#animate'],
'adjust_field_min_css_selector' => $element['#adjust_field_min'],
'adjust_field_max_css_selector' => $element['#adjust_field_max'],
'disabled' => $element['#disabled'],
'max' => $element['#max'] * 1,
'min' => $element['#min'] * 1,
'orientation' => $element['#orientation'],
'range' => $element['#range'],
'step' => $element['#step'] * 1,
'display_inputs' => $element['#display_inputs'],
'display_values_format' => $element['#display_values_format'],
'display_bubble' => $element['#display_bubble'],
'display_bubble' => $element['#display_bubble'],
'display_bubble_format' => $element['#display_bubble_format'],
'display_values' => $element['#display_values'],
'group' => $element['#group'],
'group_type' => $element['#group_type'],
'group_master' => $element['#group_master'],
'fields_to_sync_css_selector' => $element['#fields_to_sync_css_selector'],
'display_ignore_button' => $element['#display_ignore_button'],
'hide_slider_handle_when_no_value' => $element['#hide_slider_handle_when_no_value'],
'no_value_text_auto_hide' => $element['#no_value_text_auto_hide'],
'no_value_first_select_slider_effect' => $element['#no_value_first_select_slider_effect'],
'no_value_text' => $element['#no_value_text'],
),
),
'type' => 'setting',
),
),
'css' => array(
array(
'data' => drupal_get_path('module', 'sliderfield') . '/sliderfield_element_sliderfield.css',
'type' => 'file',
//'group' => CSS_SYSTEM,
'weight' => 2000,
),
),
),
'#markup' => '',
'#suffix' => '</div>',
);
if ($element['#title2']) {
$element['title2'] = array(
'#type' => 'item',
'#markup' => '<label>' . $element['#title2'] . '</label>',
);
}
// Generate input for sliders with adjustable min/max
if (!empty($element['#adjust_field_min'])) {
$element['container']['min_value'] = array(
'#tree' => TRUE,
'#type' => 'hidden',
'#default_value' => $element['#min'],
'#attributes' => array(
'class' => array(
'sliderfield-min-value-field',
),
),
);
}
if (!empty($element['#adjust_field_max'])) {
$element['container']['max_value'] = array(
'#tree' => TRUE,
'#type' => 'hidden',
'#default_value' => $element['#max'],
'#attributes' => array(
'class' => array(
'sliderfield-max-value-field',
),
),
);
}
//$element = ajax_pre_render_element($element);
//dpm($element);
return $element;
}