Early Bird Registration for DrupalCon Portland 2024 is open! Register by 23:59 PST on 31 March 2024, to get $100 off your ticket.
While working on porting Panelizer I noticed that ctools_dependent_process() for D7 looks like this:
function ctools_dependent_process($element, &$form_state, &$form) {
return $element;
}
while for D6 it looks like this:
function ctools_dependent_process($element, $edit, &$form_state, &$form) {
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'],
);
if (!empty($form_state['ajax'])) {
$form_state['js settings']['CTools']['dependent'][$element['#id']] = $js;
}
else {
ctools_add_js('dependent');
$options['CTools']['dependent'][$element['#id']] = $js;
drupal_add_js($options, 'setting');
}
}
return $element;
}
As a result, any form value that has '#process' set to 'ctools_dependent_process' will not have its default value set correctly.
Comments
Comment #1
DamienMcKennaThis was deprecated, I just needed to read more of the comments to notice this X-)