[development] finding the $form_id of a particular form / allforms.

Nedjo Rogers nedjo at islandnet.com
Sun Jul 2 16:09:52 UTC 2006


> Heh, I hit this just yesterday. While my solution probably wasn't 
> "correct",
> it worked for me. I just put a "print ($form_id);" as the first statement 
> of
> my custom form_alter function, then I navigated to the form I wanted the 
> ID
> for, and it was the first thing printed at the top of the page.

Somewhat related: In the jstools module we cache references to each form, 
along with a page they're available on. The resulting array can be used to 
generate a list of available forms for, e.g, attaching a behaviour to given 
forms, as we do in formcheck.module. It can also be used, with some Forms 
API tricks, to fetch a particular form's array. Here's the caching function:

/**
 * Implementation of hook_form_alter().
 *
 * Register available forms into an array variable.
 */
function jstools_form_alter($form_id, &$form) {
  // If this form_id is not already registered, register it.
  $options = variable_get('jstools_forms_options', array());
  if (!array_key_exists($form_id, $options)) {
    $options[$form_id] = $_GET['q'];
    variable_set('jstools_forms_options', $options);
  }
} 



More information about the development mailing list