From bf810154f6f1ccde131bf5435a3403cce0242972 Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Sun, 9 Dec 2001 15:15:10 +0000
Subject: [PATCH] - Added a "queue for moderation"-toggle to a node's admin
 form and   updated the node modules to support this.

---
 modules/blog.module                  |  7 ++++++-
 modules/blog/blog.module             |  7 ++++++-
 modules/book.module                  |  7 ++++++-
 modules/book/book.module             |  7 ++++++-
 modules/node.module                  | 10 +++++-----
 modules/node/node.module             | 10 +++++-----
 modules/statistics.module            |  2 +-
 modules/statistics/statistics.module |  2 +-
 modules/story.module                 |  4 ++++
 modules/story/story.module           |  4 ++++
 10 files changed, 44 insertions(+), 16 deletions(-)

diff --git a/modules/blog.module b/modules/blog.module
index 21d21cf66233..c622f4f7f30a 100644
--- a/modules/blog.module
+++ b/modules/blog.module
@@ -48,7 +48,12 @@ function blog_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    if (user_access("adminster nodes")) {
+      return array();
+    }
+    else {
+      return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/blog/blog.module b/modules/blog/blog.module
index 21d21cf66233..c622f4f7f30a 100644
--- a/modules/blog/blog.module
+++ b/modules/blog/blog.module
@@ -48,7 +48,12 @@ function blog_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    if (user_access("adminster nodes")) {
+      return array();
+    }
+    else {
+      return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1, "teaser" => filter($node->teaser));
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/book.module b/modules/book.module
index 30d50d8d7065..9c486fe6e6fa 100644
--- a/modules/book.module
+++ b/modules/book.module
@@ -56,7 +56,12 @@ function book_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    if (user_access("adminster nodes")) {
+      return array("format", "parent", "weight");
+    }
+    else {
+      return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/book/book.module b/modules/book/book.module
index 30d50d8d7065..9c486fe6e6fa 100644
--- a/modules/book/book.module
+++ b/modules/book/book.module
@@ -56,7 +56,12 @@ function book_save($op, $node) {
   }
 
   if ($op == "create") {
-    return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    if (user_access("adminster nodes")) {
+      return array("format", "parent", "weight");
+    }
+    else {
+      return array("format", "moderate" => 1, "parent", "promote" => 0, "status" => 1, "weight");
+    }
   }
 
   if ($op == "decline") {
diff --git a/modules/node.module b/modules/node.module
index ea4dd0a354ae..6aa0f79054dd 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -708,7 +708,6 @@ function node_validate($node, &$error) {
 
   $node = node_object($node);
 
-
   /*
   ** Validate the title field:
   */
@@ -870,8 +869,9 @@ function node_form($edit) {
     $output .= form_textfield(t("Authored on"), "date", $edit->date, 20, 25, $error["date"]);
     $output .= "<br />";
     $output .= form_select(t("Set public/published"), "status", $edit->status, array("Disabled", "Enabled"));
-    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
+    $output .= form_select(t("Queue for moderation"), "moderate", $edit->moderate, array("Disabled", "Enabled"));
     $output .= form_select(t("Promote to front page"), "promote", $edit->promote, array("Disabled", "Enabled"));
+    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
     $output .= form_select(t("Create new revision"), "revision", $edit->revision, array("Disabled", "Enabled"));
   }
 
@@ -973,17 +973,17 @@ function node_preview($node) {
   */
 
   if ($node->nid) {
-    $node = array_merge($node, module_invoke($node->type, "save", "update", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "update", $node));
   }
   else {
-    $node = array_merge($node, module_invoke($node->type, "save", "create", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "create", $node));
   }
 
   /*
   ** Display a preview of the node:
   */
 
-  node_view($node);
+  node_view($view);
 
   return node_form($node);
 }
diff --git a/modules/node/node.module b/modules/node/node.module
index ea4dd0a354ae..6aa0f79054dd 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -708,7 +708,6 @@ function node_validate($node, &$error) {
 
   $node = node_object($node);
 
-
   /*
   ** Validate the title field:
   */
@@ -870,8 +869,9 @@ function node_form($edit) {
     $output .= form_textfield(t("Authored on"), "date", $edit->date, 20, 25, $error["date"]);
     $output .= "<br />";
     $output .= form_select(t("Set public/published"), "status", $edit->status, array("Disabled", "Enabled"));
-    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
+    $output .= form_select(t("Queue for moderation"), "moderate", $edit->moderate, array("Disabled", "Enabled"));
     $output .= form_select(t("Promote to front page"), "promote", $edit->promote, array("Disabled", "Enabled"));
+    $output .= form_select(t("Allow users comments"), "comment", $edit->comment, array("Disabled", "Enabled"));
     $output .= form_select(t("Create new revision"), "revision", $edit->revision, array("Disabled", "Enabled"));
   }
 
@@ -973,17 +973,17 @@ function node_preview($node) {
   */
 
   if ($node->nid) {
-    $node = array_merge($node, module_invoke($node->type, "save", "update", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "update", $node));
   }
   else {
-    $node = array_merge($node, module_invoke($node->type, "save", "create", $node));
+    $view = array_merge($node, module_invoke($node->type, "save", "create", $node));
   }
 
   /*
   ** Display a preview of the node:
   */
 
-  node_view($node);
+  node_view($view);
 
   return node_form($node);
 }
diff --git a/modules/statistics.module b/modules/statistics.module
index 78ee849ff96c..6a243b2fffce 100644
--- a/modules/statistics.module
+++ b/modules/statistics.module
@@ -10,7 +10,7 @@ function statistics_help() {
   $output .= "<p>1. The external referrer log indicates which other sites are linking your website and how many visitors they refer. Each link made to your site - when a user on another site clicks on a link to your site - generates a referral entry in the log.</p>";
   $output .= "<p>2. The internal referrer log indicates the referrals within the domain of your site.  This log is useful for assessing and evaluating the structure of your website, to learn which pages are being accessed, and to gain insight into the way users are navigating your site.</p>";
   $output .= "<p>Drupal automatically rotates the referrer logs after a set period of time. The life-time of the accumulated data can be configured via the settings and filters option under site administration.</p>";
-  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This not always set properly by web browsers.</p>";
+  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This is not always set properly by web browsers.</p>";
   return $output;
 }
 
diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module
index 78ee849ff96c..6a243b2fffce 100644
--- a/modules/statistics/statistics.module
+++ b/modules/statistics/statistics.module
@@ -10,7 +10,7 @@ function statistics_help() {
   $output .= "<p>1. The external referrer log indicates which other sites are linking your website and how many visitors they refer. Each link made to your site - when a user on another site clicks on a link to your site - generates a referral entry in the log.</p>";
   $output .= "<p>2. The internal referrer log indicates the referrals within the domain of your site.  This log is useful for assessing and evaluating the structure of your website, to learn which pages are being accessed, and to gain insight into the way users are navigating your site.</p>";
   $output .= "<p>Drupal automatically rotates the referrer logs after a set period of time. The life-time of the accumulated data can be configured via the settings and filters option under site administration.</p>";
-  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This not always set properly by web browsers.</p>";
+  $output .= "<p>Warning: Drupal gets the referrer information from the HTTP_REFERER environment variable. This is not always set properly by web browsers.</p>";
   return $output;
 }
 
diff --git a/modules/story.module b/modules/story.module
index fbaa7d6a1950..b9252b4dd38a 100644
--- a/modules/story.module
+++ b/modules/story.module
@@ -38,6 +38,10 @@ function story_save($op, $node) {
   if ($op == "decline") {
     return array("status" => 0, "promote" => 0);
   }
+
+  if ($op == "update") {
+    return array();
+  }
 }
 
 function story_help() {
diff --git a/modules/story/story.module b/modules/story/story.module
index fbaa7d6a1950..b9252b4dd38a 100644
--- a/modules/story/story.module
+++ b/modules/story/story.module
@@ -38,6 +38,10 @@ function story_save($op, $node) {
   if ($op == "decline") {
     return array("status" => 0, "promote" => 0);
   }
+
+  if ($op == "update") {
+    return array();
+  }
 }
 
 function story_help() {
-- 
GitLab