Index: prepopulate.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/prepopulate/prepopulate.module,v retrieving revision 1.3 diff -u -F^f -r1.3 prepopulate.module --- prepopulate.module 28 Apr 2006 16:50:28 -0000 1.3 +++ prepopulate.module 28 Aug 2006 20:52:57 -0000 @@ -34,31 +34,22 @@ function prepopulate_form_alter($form_id if (variable_get('prepopulate_allowed_' . $type, TRUE) && $_GET['edit']) { foreach (array_keys( (array) $_GET['edit']) as $getvar) { - _prepopulate_get_walk($form, $getvar); + _prepopulate_get_walk($form[$getvar], $_GET['edit'][$getvar]); } // endforeach get variable } // endif any get vars } // endfunction prepopulate_form_alter() -function _prepopulate_get_walk(&$form, $getslice) { - foreach (array_keys( (array) $getslice) as $getvar) { - if (is_array($getslice)) { - _prepopulate_get_walk($form, $getslice); - } - else { - _prepopulate_form_walk($form, $getslice); - } - } // endforeach walking through get -} // endfunction _prepopulate_get_walk - -function _prepopulate_form_walk(&$form, $getvar) { - foreach (element_children($form) as $formkey) { - if ($formkey == $getvar) { - $form[$formkey]['#default_value'] = $_GET['edit'][$getvar]; - } - else { - _prepopulate_form_walk($form[$formkey], $getvar); - } - } // endforeach walking through form -} // endfunction _prepopulate_form_walk +function _prepopulate_get_walk(&$form, &$getslice) { + if (!is_array($getslice)) { + $form['#default_value'] = $getslice; + } + else { + foreach (array_keys($getslice) as $getvar) { + if (is_array($form) && !is_null($form[$getvar])) { + _prepopulate_get_walk($form[$getvar], $getslice[$getvar]); + } + } // endforeach walking through get + } // endif getslice is not an array +} // endfunction _prepopulate_get_walk() // vim: tw=300 nowrap syn=php