function node_form_add_preview in Drupal 5
Same name and namespace in other branches
- 4 modules/node.module \node_form_add_preview()
1 string reference to 'node_form_add_preview'
- node_form in modules/
node/ node.module - Generate the node add/edit form array.
File
- modules/
node/ node.module, line 2179 - The core that allows content to be submitted to the site. Modules and scripts may programmatically submit nodes using the usual form API pattern.
Code
function node_form_add_preview($form) {
global $form_values;
$op = isset($form_values['op']) ? $form_values['op'] : '';
if ($op == t('Preview')) {
// Invoke full validation for the form, to protect against cross site
// request forgeries (CSRF) and setting arbitrary values for fields such as
// the input format. Preview the node only when form validation does not
// set any errors.
drupal_validate_form($form['form_id']['#value'], $form);
if (!form_get_errors()) {
// Because the node preview may display a form, we must render it
// outside the node submission form tags using the #prefix property
// (i.e. to prevent illegally nested forms).
// If the node form already has a #prefix, we must preserve it.
// In this case, we put the preview before the #prefix so we keep
// the #prefix as "close" to the rest of the form as possible,
// for example, to keep a <div> only around the form, not the
// preview. We pass the global $form_values here to preserve
// changes made during form validation.
$preview = node_preview((object) $form_values);
$form['#prefix'] = isset($form['#prefix']) ? $preview . $form['#prefix'] : $preview;
}
}
if (variable_get('node_preview', 0) && (form_get_errors() || $op != t('Preview'))) {
unset($form['submit']);
}
return $form;
}