You are here

function form_get_cache in Drupal 6

Same name and namespace in other branches
  1. 7 includes/form.inc \form_get_cache()

Fetch a form from cache.

Related topics

4 calls to form_get_cache()
book_form_update in modules/book/book.pages.inc
Renders a new parent page select element when the book selection changes.
drupal_get_form in includes/form.inc
Retrieves a form from a constructor function, or from the cache if the form was built in a previous page-load. The form is then passed on for processing, after and rendered for display if necessary.
poll_choice_js in modules/poll/poll.module
Menu callback for AHAH additions.
upload_js in modules/upload/upload.module
Menu-callback for JavaScript-based uploads.

File

includes/form.inc, line 253

Code

function form_get_cache($form_build_id, &$form_state) {
  global $user;
  if ($cached = cache_get('form_' . $form_build_id, 'cache_form')) {
    $form = $cached->data;
    if (isset($form['#cache_token']) && drupal_valid_token($form['#cache_token']) || !isset($form['#cache_token']) && !$user->uid) {
      if ($cached = cache_get('storage_' . $form_build_id, 'cache_form')) {
        $form_state['storage'] = $cached->data;
      }

      // Generate a new #build_id if the cached form was rendered on a cacheable
      // page.
      if (!empty($form['#immutable'])) {
        $form['#build_id'] = 'form-' . drupal_random_key();
        $form['form_build_id']['#value'] = $form['#build_id'];
        $form['form_build_id']['#id'] = $form['#build_id'];
        unset($form['#immutable']);
        form_build_id_map($form_build_id, $form['#build_id']);
      }
      return $form;
    }
  }
}