Advanced forms api question (#submit and #programmed)
I'm trying to provide a patch for an issue I recently submitted <http://drupal.org/node/123702>. I'm having trouble grokking some forms API intricacies and I'm sure someone on this list can help. Briefly, I'm trying to customize the update.php form using hook_form_alter(). Unfortunately update.php does not handle its form the normal way. Normally, a form is created by calling drupal_get_form() and also processed by calling drupal_get_form(). Update.php does not do this. My first question is why not? But that is a bit off topic. Because update.php calls drupal_get_form() only when displaying the form and not when processing it, changes made (in my hook_form_alter) to $form['#submit'] have no effect. That is, there is no way to have my custom submit handler called when the form is submitted. So, I've added a call to drupal_get_form in my copy of update.php, in the update_update_page method. This does what I want, in that my #submit handler is called. But there is an unwanted side-effect, which is the forms code then redirects the browser. So I never get to the update.php progress page. So it seems I cannot add my own handler and also have update.php do its handling. I poured through the forms code looking for where (and why) it does the redirecting. There is a mysterious $form['#programmed'] variable which seems to control this, but I can't figure out what that variable is really supposed to be about, or where it's supposed to be set. I feel like I'm close to solving my problem. But I could be going down the wrong road. Or perhaps there is a much simpler solution. So I come here for advice. Any help is really appreciated. Thanks, -Dave
participants (1)
-
Dave Cohen