diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/node.module | 44 | ||||
-rw-r--r-- | modules/node/node.module | 44 |
2 files changed, 64 insertions, 24 deletions
diff --git a/modules/node.module b/modules/node.module index 530e24ced..bd03b311c 100644 --- a/modules/node.module +++ b/modules/node.module @@ -1677,23 +1677,43 @@ function node_form_add_preview($form) { } function theme_node_form($form) { - $output = '<div class="node-form">'; + $output = "\n<div class=\"node-form\">\n"; if (isset($form['node_preview'])) { $output .= form_render($form['node_preview']); } - $output .= ' <div class="standard">'; + // Admin form fields and submit buttons must be rendered first, because + // they need to go to the bottom of the form, and so should not be part of + // the catch-all call to form_render(). + $admin = ''; + if (isset($form['author'])) { + $admin .= " <div class=\"authored\">\n"; + $admin .= form_render($form['author']); + $admin .= " </div>\n"; + } + if (isset($form['options'])) { + $admin .= " <div class=\"options\">\n"; + $admin .= form_render($form['options']); + $admin .= " </div>\n"; + } + $buttons = form_render($form['preview']); + $buttons .= form_render($form['submit']); + $buttons .= isset($form['delete']) ? form_render($form['delete']) : ''; + + // Everything else gets rendered here, and is displayed before the admin form + // field and the submit buttons. + $output .= " <div class=\"standard\">\n"; $output .= form_render($form); - $output .= ' </div>'; - $output .= ' <div class="admin">'; - $output .= ' <div class="authored">'; - $output .= form_render($form['author']); - $output .= ' </div>'; - $output .= ' <div class="options">'; - $output .= form_render($form['options']); - $output .= ' </div>'; - $output .= ' </div>'; - $output .= '</div>'; + $output .= " </div>\n"; + + if (!empty($admin)) { + $output .= " <div class=\"admin\">\n"; + $output .= $admin; + $output .= " </div>\n"; + } + $output .= $buttons; + $output .= "</div>\n"; + return $output; } diff --git a/modules/node/node.module b/modules/node/node.module index 530e24ced..bd03b311c 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -1677,23 +1677,43 @@ function node_form_add_preview($form) { } function theme_node_form($form) { - $output = '<div class="node-form">'; + $output = "\n<div class=\"node-form\">\n"; if (isset($form['node_preview'])) { $output .= form_render($form['node_preview']); } - $output .= ' <div class="standard">'; + // Admin form fields and submit buttons must be rendered first, because + // they need to go to the bottom of the form, and so should not be part of + // the catch-all call to form_render(). + $admin = ''; + if (isset($form['author'])) { + $admin .= " <div class=\"authored\">\n"; + $admin .= form_render($form['author']); + $admin .= " </div>\n"; + } + if (isset($form['options'])) { + $admin .= " <div class=\"options\">\n"; + $admin .= form_render($form['options']); + $admin .= " </div>\n"; + } + $buttons = form_render($form['preview']); + $buttons .= form_render($form['submit']); + $buttons .= isset($form['delete']) ? form_render($form['delete']) : ''; + + // Everything else gets rendered here, and is displayed before the admin form + // field and the submit buttons. + $output .= " <div class=\"standard\">\n"; $output .= form_render($form); - $output .= ' </div>'; - $output .= ' <div class="admin">'; - $output .= ' <div class="authored">'; - $output .= form_render($form['author']); - $output .= ' </div>'; - $output .= ' <div class="options">'; - $output .= form_render($form['options']); - $output .= ' </div>'; - $output .= ' </div>'; - $output .= '</div>'; + $output .= " </div>\n"; + + if (!empty($admin)) { + $output .= " <div class=\"admin\">\n"; + $output .= $admin; + $output .= " </div>\n"; + } + $output .= $buttons; + $output .= "</div>\n"; + return $output; } |