diff options
author | Dries Buytaert <dries@buytaert.net> | 2006-01-04 09:04:27 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2006-01-04 09:04:27 +0000 |
commit | 9e23a23d7371a555f23da840a9f58f6469c42ad2 (patch) | |
tree | 6741d624c30f66939047b8ef28fbd739232235c5 | |
parent | 72ed68d48be7fa16ba8e191f87685361e385dc04 (diff) | |
download | brdo-9e23a23d7371a555f23da840a9f58f6469c42ad2.tar.gz brdo-9e23a23d7371a555f23da840a9f58f6469c42ad2.tar.bz2 |
- Patch #35770 by DriesK: make node preview settings work.
-rw-r--r-- | modules/node.module | 17 | ||||
-rw-r--r-- | modules/node/node.module | 17 |
2 files changed, 22 insertions, 12 deletions
diff --git a/modules/node.module b/modules/node.module index 06130581e..eb243ef75 100644 --- a/modules/node.module +++ b/modules/node.module @@ -1685,17 +1685,22 @@ function node_form($node) { $form['delete'] = array('#type' => 'button', '#value' => t('Delete'), '#weight' => 50); } - if ($op == t('Preview')) { - $form['#after_build'] = 'node_form_add_preview'; - } + $form['#after_build'] = 'node_form_add_preview'; return drupal_get_form($node->type . '_node_form', $form, 'node_form'); } function node_form_add_preview($form, $edit) { - $edit = (object)$edit; - node_validate($edit); - $form['node_preview'] = array('#value' => node_preview($edit), '#weight' => -100); + $op = isset($_POST['op']) ? $_POST['op'] : ''; + if ($op == t('Preview')) { + drupal_validate_form($form['form_id']['#value'], $form); + if (!form_get_errors()) { + $form['node_preview'] = array('#value' => node_preview((object)$edit), '#weight' => -100); + } + } + if (variable_get('node_preview', 0) && (form_get_errors() || $op != t('Preview'))) { + unset($form['submit']); + } return $form; } diff --git a/modules/node/node.module b/modules/node/node.module index 06130581e..eb243ef75 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -1685,17 +1685,22 @@ function node_form($node) { $form['delete'] = array('#type' => 'button', '#value' => t('Delete'), '#weight' => 50); } - if ($op == t('Preview')) { - $form['#after_build'] = 'node_form_add_preview'; - } + $form['#after_build'] = 'node_form_add_preview'; return drupal_get_form($node->type . '_node_form', $form, 'node_form'); } function node_form_add_preview($form, $edit) { - $edit = (object)$edit; - node_validate($edit); - $form['node_preview'] = array('#value' => node_preview($edit), '#weight' => -100); + $op = isset($_POST['op']) ? $_POST['op'] : ''; + if ($op == t('Preview')) { + drupal_validate_form($form['form_id']['#value'], $form); + if (!form_get_errors()) { + $form['node_preview'] = array('#value' => node_preview((object)$edit), '#weight' => -100); + } + } + if (variable_get('node_preview', 0) && (form_get_errors() || $op != t('Preview'))) { + unset($form['submit']); + } return $form; } |