/[drupal]/contributions/modules/formdraft/formdraft.module
ViewVC logotype

Diff of /contributions/modules/formdraft/formdraft.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1, Fri Dec 15 18:54:54 2006 UTC revision 1.2, Thu Dec 21 22:31:02 2006 UTC
# Line 1  Line 1 
1  <?php  <?php // $Id$
2    
3  function formdraft_help($section) {  function formdraft_help($section) {
4    switch($section) {    switch($section) {
# Line 40  function formdraft_user($op, &$edit, &$a Line 40  function formdraft_user($op, &$edit, &$a
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);
# Line 54  function formdraft_form_alter($form_id, Line 54  function formdraft_form_alter($form_id,
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));
# Line 64  function formdraft_form_alter($form_id, Line 67  function formdraft_form_alter($form_id,
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
# Line 79  function formdraft_form_alter($form_id, Line 82  function formdraft_form_alter($form_id,
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) {
# Line 165  function _formdraft_save($form_id) { Line 168  function _formdraft_save($form_id) {
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)) {

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.2