function asaf_pagecache_get_form in Asaf (ajax submit for any form) 8
Same name and namespace in other branches
- 7 asaf.pages.inc \asaf_pagecache_get_form()
1 call to asaf_pagecache_get_form()
- asaf_pagecache_form_callback in ./asaf.pages.inc
File
- ./asaf.pages.inc, line 23
Code
function asaf_pagecache_get_form() {
$form_state = form_state_defaults();
$form_build_id = $_POST['form_build_id'];
$form = form_get_cache($form_build_id, $form_state);
if (!$form) {
$asaf_token = $_POST['asaf_form'];
if ($asaf_token && $asaf_token === asaf_get_security_token($_POST['form_id'], $_POST['form_build_id'])) {
$options_cache = cache_get('asaf_form_' . $_POST['form_id'] . '_options', 'cache_form');
$form_state['build_info']['files'] = isset($options_cache->data['needed_files']) && is_array($options_cache->data['needed_files']) ? $options_cache->data['needed_files'] : array();
asaf_load_needed_files($form_state['build_info']['files']);
if (isset($_POST['asaf_form_path'])) {
$form_state['asaf']['form_path'] = $_POST['asaf_form_path'];
}
if (isset($_POST['asaf_id_prefix'])) {
$form_state['asaf']['id_prefix'] = $_POST['asaf_id_prefix'];
}
$form = drupal_build_form($_POST['form_id'], $form_state);
}
else {
watchdog('ajax', 'Invalid form POST data.', array(), WATCHDOG_WARNING);
drupal_exit();
}
}
$form_state['no_redirect'] = TRUE;
$form_state['rebuild_info']['copy']['#build_id'] = TRUE;
$form_state['rebuild_info']['copy']['#action'] = TRUE;
$form_state['input'] = $_POST;
$form_id = $form['#form_id'];
return array(
$form,
$form_state,
$form_id,
$form_build_id,
);
}