function ctools_dependent_pre_render in Chaos Tool Suite (ctools) 7
1 string reference to 'ctools_dependent_pre_render'
- ctools_dependent_element_info_alter in includes/
dependent.inc - CTools alters the element_info to be able to add #process functions to every major form element to make it much more handy to use #dependency, because you don't have to add #process.
File
- includes/
dependent.inc, line 133 - Provide dependent checkboxes that can be easily used in forms.
Code
function ctools_dependent_pre_render($element) {
// Preprocess only items with #dependency set.
if (isset($element['#dependency'])) {
if (!isset($element['#dependency_count'])) {
$element['#dependency_count'] = 1;
}
if (!isset($element['#dependency_type'])) {
$element['#dependency_type'] = 'hide';
}
$js = array(
'values' => $element['#dependency'],
'num' => $element['#dependency_count'],
'type' => $element['#dependency_type'],
);
// Add a additional wrapper id around fieldsets, textareas to support depedency on it.
if (in_array($element['#type'], array(
'textarea',
'fieldset',
'text_format',
))) {
$element['#theme_wrappers'][] = 'container';
$element['#attributes']['id'] = $element['#id'] . '-wrapper';
}
// Text formats need to unset the dependency on the textarea
// or it gets applied twice.
if ($element['#type'] == 'text_format') {
unset($element['value']['#dependency']);
}
$element['#attached']['js'][] = ctools_attach_js('dependent');
$options['CTools']['dependent'][$element['#id']] = $js;
$element['#attached']['js'][] = array(
'type' => 'setting',
'data' => $options,
);
}
return $element;
}