You are here

function autosave_form_alter in Autosave 5

Same name and namespace in other branches
  1. 5.3 autosave.module \autosave_form_alter()
  2. 5.2 autosave.module \autosave_form_alter()
  3. 6.2 autosave.module \autosave_form_alter()
  4. 6 autosave.module \autosave_form_alter()
  5. 7.2 autosave.module \autosave_form_alter()
  6. 7 autosave.module \autosave_form_alter()

Implementation of hook_form_alter().

File

./autosave.module, line 50
Automatically saves a node after a period of time.

Code

function autosave_form_alter($form_id, &$form) {

  // TODO: Allow user to configure which forms can be autosaved.
  if (end(explode('/', $_GET['q'])) == 'configure-autosave') {
    drupal_add_js('var configure_autosave = true;', 'inline');
    drupal_add_js(drupal_get_path('module', 'autosave') . '/autosave.js');
    drupal_add_js(drupal_get_path('module', 'autosave') . '/jquery.field.js');
    drupal_add_css(drupal_get_path('module', 'autosave') . '/autosave.css');
  }
  if ($form_id != 'search_theme_form') {
    global $user;
    $path = $_GET['q'];
    drupal_add_js(drupal_get_path('module', 'autosave') . '/autosave.js');
    drupal_add_js(drupal_get_path('module', 'autosave') . '/jquery.field.js');
    drupal_add_css(drupal_get_path('module', 'autosave') . '/autosave.css');
    if ($form['type']['#value'] . '_node_form' == $form_id) {
      $settings['form_id'] = 'node_form';
    }
    else {
      $settings['form_id'] = $form_id;
    }
    $settings['period'] = variable_get('autosave_period', 10);
    $settings['autosave_url'] = url('admin/autosave');
    $settings['q'] = $path;

    // If an autosaved version of the form exists, make it available via javascript.
    if ($autosaved_form = autosave_get_autosaved_form($form_id, $path, $user->uid)) {
      $autosaved_form_id = $form['type']['#value'] . '_node_form' == $form_id ? 'node_form' : $form_id;
      $settings['autosaved_form'][] = array(
        'form_id' => $autosaved_form_id,
        'serialized' => unserialize($autosaved_form['serialized']),
        'saved_date' => format_date($autosaved_form['timestamp'], 'medium'),
      );
    }
    drupal_add_js($settings, 'setting');
  }
}