function taxonomy_manager_tree_process_elements in Taxonomy Manager 6.2
Same name and namespace in other branches
- 5 taxonomy_manager.module \taxonomy_manager_tree_process_elements()
- 6 taxonomy_manager.module \taxonomy_manager_tree_process_elements()
- 7 taxonomy_manager.module \taxonomy_manager_tree_process_elements()
Processes the tree form element
Parameters
$element:
Return value
the tree element
1 string reference to 'taxonomy_manager_tree_process_elements'
- taxonomy_manager_elements in ./
taxonomy_manager.module - Implementation of hook_elements
File
- ./
taxonomy_manager.module, line 347 - Taxonomy Manager
Code
function taxonomy_manager_tree_process_elements($element) {
global $_taxonomy_manager_existing_ids;
//TEMP: seems like this functions gets called twice in preview and cause problem because of adding the settings to js twice
$_taxonomy_manager_existing_ids = is_array($_taxonomy_manager_existing_ids) ? $_taxonomy_manager_existing_ids : array();
$module_path = drupal_get_path('module', 'taxonomy_manager') . '/';
$id = form_clean_id(implode('-', $element['#parents']));
$vid = $element['#vid'];
if (!$element['#siblings_page'] && !in_array($id, $_taxonomy_manager_existing_ids)) {
$_taxonomy_manager_existing_ids[$id] = $id;
drupal_add_css($module_path . 'css/taxonomy_manager.css');
drupal_add_js($module_path . 'js/tree.js');
drupal_add_js(array(
'siblingsForm' => array(
'url' => url('admin/content/taxonomy_manager/siblingsform'),
'modulePath' => $module_path,
),
), 'setting');
drupal_add_js(array(
'childForm' => array(
'url' => url('admin/content/taxonomy_manager/childform'),
'modulePath' => $module_path,
),
), 'setting');
drupal_add_js(array(
'taxonomytree' => array(
'id' => $id,
'vid' => $vid,
),
), 'setting');
}
if (!is_array($element['#operations'])) {
$opertions_callback = 'taxonomy_manager_' . implode('_', $element['#parents']) . '_operations';
if (function_exists($opertions_callback)) {
$element['#operations_callback'] = $opertions_callback;
}
}
if (!isset($element['#link'])) {
$link_callback = 'taxonomy_manager_' . implode('_', $element['#parents']) . '_link';
if (function_exists($link_callback)) {
$element['#link_callback'] = $link_callback;
}
}
$tree = _taxonomy_manager_tree_get_item($element['#vid'], $element['#parent'], $element['#pager'], $element['#siblings_page'], $element['#search_string'], $element['#language']);
if ($element['#pager'] && !($element['#parent'] || $element['#siblings_page'])) {
$element['pager'] = array(
'#value' => theme('pager', NULL, variable_get('taxonomy_manager_pager_tree_page_size', 50)),
);
}
$element['#default_value'] = is_array($element['#default_value']) ? $element['#default_value'] : array();
$element['#multiple'] = isset($element['#multiple']) ? $element['#multiple'] : TRUE;
$element['#add_term_info'] = isset($element['#add_term_info']) ? $element['#add_term_info'] : TRUE;
$element['#tree'] = TRUE;
$element['#id'] = $id;
$element['#element_validate'] = array(
'taxonomy_manager_tree_validate',
);
$element['#required'] = isset($element['#tree_is_required']) ? $element['#tree_is_required'] : FALSE;
$terms_to_expand = array();
if ($element['#term_to_expand']) {
_taxonomy_manager_tree_get_first_path($element['#term_to_expand'], $tree, $terms_to_expand);
$terms_to_expand = taxonomy_manager_tree_get_terms_to_expand($tree, array(
$element['#term_to_expand'],
), TRUE);
}
if (count($element['#default_value']) && !$element['#expand_all']) {
$terms_to_expand = taxonomy_manager_tree_get_terms_to_expand($tree, $element['#default_value'], $element['#multiple']);
}
if (!empty($element['#language'])) {
$element['#elements']['language'] = array(
'#type' => 'hidden',
'#value' => $element['#language'],
'#attributes' => array(
'class' => 'tree-lang',
),
);
_taxonomy_manager_tree_element_set_params($element['#parents'], $element['#elements']);
}
taxonomy_manager_tree_build_form($index = 0, $tree, $element['#elements'], $element, $element['#parents'], $element['#siblings_page'], $element['#default_value'], $element['#multiple'], $terms_to_expand);
return $element;
}