| 1 |
<?php |
<?php // $Id$ |
| 2 |
|
|
| 3 |
function formdraft_help($section) { |
function formdraft_help($section) { |
| 4 |
switch($section) { |
switch($section) { |
| 40 |
if ($list = _formdraft_list($account->uid)) { |
if ($list = _formdraft_list($account->uid)) { |
| 41 |
$items[] = array( |
$items[] = array( |
| 42 |
'type' => 'item', |
'type' => 'item', |
| 43 |
'title' => t('Unsaved forms'), |
'title' => t('Form drafts'), |
| 44 |
'value' => theme('formdraft_list', $list), |
'value' => theme('formdraft_list', $list), |
| 45 |
); |
); |
| 46 |
return array(t('History') => $items); |
return array(t('History') => $items); |
| 54 |
$path = $_GET['q']; |
$path = $_GET['q']; |
| 55 |
$formkey = $form_id.'|'.$path; |
$formkey = $form_id.'|'.$path; |
| 56 |
|
|
| 57 |
|
// hide this confusing functionality from admin forms |
| 58 |
|
if (substr($path, 0, 5) == 'admin') return; |
| 59 |
|
|
| 60 |
if (user_access('administer formdraft')) { |
if (user_access('administer formdraft')) { |
| 61 |
if (in_array($formkey, $forms)) { |
if (in_array($formkey, $forms)) { |
| 62 |
$link = l(t('Do not allow users to save drafts of this form'), 'formdraft/remove/', array(), drupal_get_destination().'&formkey='.urlencode($formkey)); |
$link = l(t('Do not allow users to save drafts of this form'), 'formdraft/remove/', array(), drupal_get_destination().'&formkey='.urlencode($formkey)); |
| 67 |
$form['formdraft'] = array( |
$form['formdraft'] = array( |
| 68 |
'#type' => 'markup', |
'#type' => 'markup', |
| 69 |
'#value' => '<p>'.$link.'</p>', |
'#value' => '<p>'.$link.'</p>', |
| 70 |
'#weight' => 10000, |
'#weight' => 9999999999, |
| 71 |
); |
); |
| 72 |
} |
} |
| 73 |
|
|
| 74 |
if (!in_array($formkey, $forms) || !user_access('save form drafts')) return; |
if (!in_array($formkey, $forms) || !user_access('save form drafts')) return; |
| 75 |
|
|
| 76 |
$post_values = _formdraft_load($form_id); |
$post_values = _formdraft_load($form_id, $path); |
| 77 |
_formdraft_set_value($form, '', $post_values['edit']); |
_formdraft_set_value($form, '', $post_values['edit']); |
| 78 |
|
|
| 79 |
// add validate hook disable validation if necessary |
// add validate hook disable validation if necessary |
| 82 |
if (is_array($validate)) $form['#validate'] += $validate; |
if (is_array($validate)) $form['#validate'] += $validate; |
| 83 |
|
|
| 84 |
// add save values button |
// add save values button |
| 85 |
$form['save'] = array('#type' => 'submit', '#value' => t('Save for later')); |
$form['save'] = array('#type' => 'submit', '#weight' => 99999999, '#value' => t('Save for later')); |
| 86 |
} |
} |
| 87 |
|
|
| 88 |
function _formdraft_admin($op) { |
function _formdraft_admin($op) { |
| 168 |
drupal_goto($path); |
drupal_goto($path); |
| 169 |
} |
} |
| 170 |
|
|
| 171 |
function _formdraft_load($form_id) { |
function _formdraft_load($form_id, $path) { |
| 172 |
global $user; |
global $user; |
| 173 |
|
|
| 174 |
if ($user->uid == 0) { |
if ($user->uid == 0) { |
| 175 |
$res = db_query("SELECT post_values FROM {formdraft} |
$res = db_query("SELECT post_values FROM {formdraft} |
| 176 |
WHERE form_id = '%s' AND sid = '%s'", $form_id, session_id()); |
WHERE form_id = '%s' AND path = '%s' AND sid = '%s'", $form_id, $path, session_id()); |
| 177 |
} |
} |
| 178 |
else { |
else { |
| 179 |
$res = db_query("SELECT post_values FROM {formdraft} |
$res = db_query("SELECT post_values FROM {formdraft} |
| 180 |
WHERE form_id = '%s' AND uid = %d", $form_id, $user->uid); |
WHERE form_id = '%s' AND path = '%s' AND uid = %d", $form_id, $path, $user->uid); |
| 181 |
} |
} |
| 182 |
|
|
| 183 |
if ($post_values = db_result($res)) { |
if ($post_values = db_result($res)) { |