function term_reference_tree_process_checkbox_tree in Taxonomy Term Reference Tree Widget 7.2
Same name and namespace in other branches
- 7 term_reference_tree.widget.inc \term_reference_tree_process_checkbox_tree()
Process the checkbox_tree widget.
This function processes the checkbox_tree widget.
Parameters
$element: The element to be drawn.$element['#field_name']
$form_state: The form state.
Return value
The processed element.
1 string reference to 'term_reference_tree_process_checkbox_tree'
- term_reference_tree_element_info in ./
term_reference_tree.module - Implements hook_element_info().
File
- ./
term_reference_tree.widget.inc, line 271
Code
function term_reference_tree_process_checkbox_tree($element, $form_state) {
$path = drupal_get_path('module', 'term_reference_tree');
$defaults = array();
$defaults['#attached']['js'] = array(
$path . '/term_reference_tree.js',
);
$defaults['#attached']['css'] = array(
$path . '/term_reference_tree.css',
);
$defaults['#type'] = 'checkbox_tree';
$defaults['#max_choices'] = 1;
$defaults['#max_depth'] = '';
$defaults['#start_minimized'] = FALSE;
$defaults['#leaves_only'] = FALSE;
$defaults['#filter_view'] = '';
$defaults['#select_parents'] = FALSE;
$defaults['#required'] = FALSE;
$defaults['#cascading_selection'] = FALSE;
$defaults['#track_list'] = FALSE;
$defaults['#parent_tid'] = '';
$defaults['#token_display'] = FALSE;
$defaults['#default_value'] = array();
$defaults += array(
'#value_key' => 'tid',
'#element_validate' => array(),
'#properties' => array(),
);
foreach ($defaults as $key => $val) {
if (!isset($element[$key])) {
$element[$key] = $val;
}
}
dsm($element['#default_value']);
$element['#default_value'] = _term_reference_tree_flatten_default_value($element['#default_value']);
dsm($element['#default_value']);
if (is_array($form_state)) {
if (!empty($element['#max_choices']) && $element['#max_choices'] != '-1') {
drupal_add_js(array(
'term_reference_tree' => array(
'trees' => array(
$element['#id'] => array(
'max_choices' => $element['#max_choices'],
),
),
),
), 'setting');
}
$allowed = '';
if (isset($element['#filter_view']) && $element['#filter_view'] != '') {
$allowed = _term_reference_tree_get_allowed_values($element['#filter_view']);
}
$value = !empty($element['#default_value']) ? $element['#default_value'] : array();
if (empty($element['#options'])) {
$element['#options_tree'] = _term_reference_tree_get_term_hierarchy($element['#parent_tid'], $element['#vocabulary'], $allowed, $element['#filter_view'], '', $value);
$required = $element['#required'];
if ($element['#max_choices'] == 1 && !$required) {
array_unshift($element['#options_tree'], (object) array(
'tid' => '',
'name' => 'N/A',
'depth' => 0,
));
}
$element['#options'] = _term_reference_tree_get_options($element['#options_tree'], $allowed, $element['#filter_view']);
}
$terms = !empty($element['#options_tree']) ? $element['#options_tree'] : array();
$max_choices = !empty($element['#max_choices']) ? $element['#max_choices'] : 1;
if (array_key_exists('#select_parents', $element) && $element['#select_parents']) {
$element['#attributes']['class'][] = 'select-parents';
}
if ($max_choices != 1) {
$element['#tree'] = TRUE;
}
$tree = new stdClass();
$tree->children = $terms;
$element[] = _term_reference_tree_build_level($element, $tree, $form_state, $value, $max_choices, array(), 1);
//Add a track list element?
$track_list = !empty($element['#track_list']) && $element['#track_list'];
if ($track_list) {
$element[] = array(
'#type' => 'checkbox_tree_track_list',
'#max_choices' => $max_choices,
);
}
}
return $element;
}