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

DamienMcKenna’s picture

Status: Active » Closed (won't fix)

This was deprecated, I just needed to read more of the comments to notice this X-)