function autosave_form_alter in Autosave 5.3
Same name and namespace in other branches
- 5 autosave.module \autosave_form_alter()
- 5.2 autosave.module \autosave_form_alter()
- 6.2 autosave.module \autosave_form_alter()
- 6 autosave.module \autosave_form_alter()
- 7.2 autosave.module \autosave_form_alter()
- 7 autosave.module \autosave_form_alter()
Implementation of hook_form_alter().
File
- ./
autosave.module, line 59 - Automatically saves a node after a period of time.
Code
function autosave_form_alter(&$form, &$form_state, $form_id) {
// 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(AUTOSAVE_PATH . '/autosave.js');
drupal_add_js(AUTOSAVE_PATH . '/jquery.field.js');
drupal_add_css(AUTOSAVE_PATH . '/autosave.css');
}
if (isset($form['type']['#value']) && $form_id == $form['type']['#value'] . '_node_form') {
// check if this content_type has the autosave function enabled and make sure it's a node edit or add form
if (variable_get('autosave_' . $form['type']['#value'], 0) == 1 && (arg(0) == 'node' && is_numeric(arg(1)) && arg(2) == 'edit' || arg(0) == 'node' && arg(1) == 'add')) {
global $user;
$path = $_GET['q'];
drupal_add_js(AUTOSAVE_PATH . '/autosave.js');
drupal_add_js(AUTOSAVE_PATH . '/jquery.field.js');
drupal_add_css(AUTOSAVE_PATH . '/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');
}
}
}