diff options
Diffstat (limited to 'modules/story/story.module')
-rw-r--r-- | modules/story/story.module | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/modules/story/story.module b/modules/story/story.module index dfb6c6cef..7f0c1ba64 100644 --- a/modules/story/story.module +++ b/modules/story/story.module @@ -45,8 +45,9 @@ function story_form($edit = array()) { $form .= form_textarea(t("Body"), "body", $edit[body], 50, 15, t("Allowed HTML tags") .": ". htmlspecialchars($allowed_html)); // hidden fields: - $form .= form_hidden("timestamp", $edit[timestamp]); - $form .= form_hidden("nid", $edit[nid]); + if ($edit[nid] > 0) { + $form .= form_hidden("nid", $edit[nid]); + } if (!$edit) { $form .= form_submit(t("Preview")); @@ -68,7 +69,14 @@ function story_form($edit = array()) { } function story_save($edit) { - node_save(array_diff(array_merge($edit, array(nid => $edit[nid], type => "story")), array(userid => $edit[userid]))); + global $status, $user; + + if (!$edit[nid]) { + node_save($edit, array(abstract, author => $user->id, body, cid, comment => category_comment($edit[cid]), moderate => topic_moderate($edit[tid]), promote => category_promote($edit[cid]), score => 0, status => (category_submission($edit[cid]) ? $status[queued] : $status[posted]), tid, timestamp => time(), title, type => "story", votes => 0)); + } + else if (user_access($user)) { + node_save($edit, array(abstract, body, cid, tid, title, type => "story")); + } } function story_block() { |