summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/blog.module5
-rw-r--r--modules/blog/blog.module5
-rw-r--r--modules/book.module9
-rw-r--r--modules/book/book.module9
-rw-r--r--modules/node.module65
-rw-r--r--modules/node/node.module65
-rw-r--r--modules/page.module21
-rw-r--r--modules/page/page.module21
-rw-r--r--modules/story.module7
-rw-r--r--modules/story/story.module7
10 files changed, 122 insertions, 92 deletions
diff --git a/modules/blog.module b/modules/blog.module
index 7e7662a4f..850a268fe 100644
--- a/modules/blog.module
+++ b/modules/blog.module
@@ -9,6 +9,7 @@ function blog_conf_options() {
}
+
function blog_node($field) {
global $user;
@@ -47,7 +48,7 @@ function blog_save($op, $node) {
}
if ($op == "create") {
- return array("promote" => 0, "moderate" => 1, "status" => 1);
+ return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1);
}
if ($op == "decline") {
@@ -67,7 +68,7 @@ function blog_save($op, $node) {
** entries through the admin pages.
*/
- return array("promote" => 0, "moderate" => 1, "score" => 0, "votes" => 0, "users" => 0);
+ return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "score" => 0, "votes" => 0, "users" => 0);
}
else if (user_access("adminster nodes")) {
/*
diff --git a/modules/blog/blog.module b/modules/blog/blog.module
index 7e7662a4f..850a268fe 100644
--- a/modules/blog/blog.module
+++ b/modules/blog/blog.module
@@ -9,6 +9,7 @@ function blog_conf_options() {
}
+
function blog_node($field) {
global $user;
@@ -47,7 +48,7 @@ function blog_save($op, $node) {
}
if ($op == "create") {
- return array("promote" => 0, "moderate" => 1, "status" => 1);
+ return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "status" => 1);
}
if ($op == "decline") {
@@ -67,7 +68,7 @@ function blog_save($op, $node) {
** entries through the admin pages.
*/
- return array("promote" => 0, "moderate" => 1, "score" => 0, "votes" => 0, "users" => 0);
+ return array("body" => filter($node->body), "promote" => 0, "moderate" => 1, "score" => 0, "votes" => 0, "users" => 0);
}
else if (user_access("adminster nodes")) {
/*
diff --git a/modules/book.module b/modules/book.module
index 80f9fa50c..30d50d8d7 100644
--- a/modules/book.module
+++ b/modules/book.module
@@ -310,8 +310,13 @@ function book_body($node) {
** Make sure only authorized users can preview PHP pages.
*/
- if ($op == t("Preview") && !user_access("adminster nodes")) {
- return;
+ if ($op == t("Preview")) {
+ if (user_access("adminster nodes")) {
+ $node->body = stripslashes($node->body); // see also book_form()
+ }
+ else {
+ return;
+ }
}
ob_start();
diff --git a/modules/book/book.module b/modules/book/book.module
index 80f9fa50c..30d50d8d7 100644
--- a/modules/book/book.module
+++ b/modules/book/book.module
@@ -310,8 +310,13 @@ function book_body($node) {
** Make sure only authorized users can preview PHP pages.
*/
- if ($op == t("Preview") && !user_access("adminster nodes")) {
- return;
+ if ($op == t("Preview")) {
+ if (user_access("adminster nodes")) {
+ $node->body = stripslashes($node->body); // see also book_form()
+ }
+ else {
+ return;
+ }
}
ob_start();
diff --git a/modules/node.module b/modules/node.module
index d03f8fa36..ea4dd0a35 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -178,11 +178,12 @@ function node_save($node, $filter) {
** Insert a new node:
*/
- // set some required fields:
+ // Set some required fields:
$node->created = time();
+ $node->changed = time();
$node->nid = db_result(db_query("SELECT MAX(nid) + 1 FROM node"));
- // prepare the query:
+ // Prepare the query:
foreach ($node as $key => $value) {
if (in_array($key, $fields)) {
$k[] = check_query($key);
@@ -190,10 +191,10 @@ function node_save($node, $filter) {
}
}
- // insert the node into the database:
+ // Insert the node into the database:
db_query("INSERT INTO node (". implode(", ", $k) .") VALUES (". implode(", ", $v) .")");
- // call the node specific callback (if any):
+ // Call the node specific callback (if any):
module_invoke($node->type, "insert", $node);
}
else {
@@ -202,20 +203,20 @@ function node_save($node, $filter) {
** Update an existing node:
*/
- // set some required fields:
+ // Set some required fields:
$node->changed = time();
- // prepare the query:
+ // Prepare the query:
foreach ($node as $key => $value) {
if (in_array($key, $fields)) {
$q[] = check_query($key) ." = '". check_query($value) ."'";
}
}
- // update the node in the database:
+ // Update the node in the database:
db_query("UPDATE node SET ". implode(", ", $q) ." WHERE nid = '$node->nid'");
- // call the node specific callback (if any):
+ // Call the node specific callback (if any):
module_invoke($node->type, "update", $node);
}
@@ -484,7 +485,7 @@ function node_admin_nodes() {
$queries = array(array("ORDER BY n.created DESC", "new nodes"), array("ORDER BY n.changed DESC", "updated nodes"), array("WHERE n.status = 1 AND n.moderate = 0 ORDER BY n.nid DESC", "published nodes"), array("WHERE n.status = 0 AND n.moderate = 0 ORDER BY n.nid DESC", "non-published nodes"), array("WHERE n.status = 1 AND n.moderate = 1 ORDER BY n.nid DESC", "pending nodes"), array("WHERE n.status = 1 AND n.promote = 1 ORDER BY n.nid DESC", "promoted nodes"));
- $result = db_query("SELECT n.*, u.name, u.uid FROM node n LEFT JOIN users u ON n.uid = u.uid ". $queries[$query ? $query : 0][0] ." LIMIT 50");
+ $result = db_query("SELECT n.*, u.name, u.uid FROM node n LEFT JOIN users u ON n.uid = u.uid ". $queries[$query ? $query : 1][0] ." LIMIT 50");
foreach ($queries as $key => $value) {
$links[] = "<a href=\"admin.php?mod=node&op=nodes&query=$key\">$value[1]</a>";
@@ -929,47 +930,53 @@ function node_edit($id) {
return $output;
}
-function node_preview($edit) {
+function node_preview($node) {
+
+ /*
+ ** Convert the array to an object:
+ */
+
+ $node = node_object($node);
/*
** Load the user's name when needed:
*/
- if (isset($edit["name"])) {
- /*
- ** The use of isset() is mandatory in the context of user IDs as uid
- ** 0 denotes the anonymous user.
- */
- if ($user = user_load(array("name" => $edit["name"]))) {
- $edit["uid"] = $user->uid;
+ if (isset($node->name)) {
+ /*
+ ** The use of isset() is mandatory in the context of user IDs as uid
+ ** 0 denotes the anonymous user.
+ */
+
+ if ($user = user_load(array("name" => $node->name))) {
+ $node->uid = $user->uid;
}
else {
- $edit["uid"] = 0; // anonymous user
+ $node->uid = 0; // anonymous user
}
}
else if ($edit["uid"]) {
- $user = user_load(array("uid" => $edit["uid"]));
- $edit["name"] = $user->name;
+ $user = user_load(array("uid" => $node->uid));
+ $node->name = $user->name;
}
/*
** Set the created time when needed:
*/
- if (empty($edit["nid"])) {
- $edit["created"] = time();
+ if (empty($node->nid)) {
+ $node->created = time();
}
/*
** Apply the required filters:
*/
- foreach ($edit as $key => $value) {
- $node->$key = check_output($value);
- /*
- ** NOTE: we can't do a check_query() or check_input() here as they
- ** add slashes which results in breakage.
- */
+ if ($node->nid) {
+ $node = array_merge($node, module_invoke($node->type, "save", "update", $node));
+ }
+ else {
+ $node = array_merge($node, module_invoke($node->type, "save", "create", $node));
}
/*
@@ -978,7 +985,7 @@ function node_preview($edit) {
node_view($node);
- return node_form($edit);
+ return node_form($node);
}
function node_submit($node) {
diff --git a/modules/node/node.module b/modules/node/node.module
index d03f8fa36..ea4dd0a35 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -178,11 +178,12 @@ function node_save($node, $filter) {
** Insert a new node:
*/
- // set some required fields:
+ // Set some required fields:
$node->created = time();
+ $node->changed = time();
$node->nid = db_result(db_query("SELECT MAX(nid) + 1 FROM node"));
- // prepare the query:
+ // Prepare the query:
foreach ($node as $key => $value) {
if (in_array($key, $fields)) {
$k[] = check_query($key);
@@ -190,10 +191,10 @@ function node_save($node, $filter) {
}
}
- // insert the node into the database:
+ // Insert the node into the database:
db_query("INSERT INTO node (". implode(", ", $k) .") VALUES (". implode(", ", $v) .")");
- // call the node specific callback (if any):
+ // Call the node specific callback (if any):
module_invoke($node->type, "insert", $node);
}
else {
@@ -202,20 +203,20 @@ function node_save($node, $filter) {
** Update an existing node:
*/
- // set some required fields:
+ // Set some required fields:
$node->changed = time();
- // prepare the query:
+ // Prepare the query:
foreach ($node as $key => $value) {
if (in_array($key, $fields)) {
$q[] = check_query($key) ." = '". check_query($value) ."'";
}
}
- // update the node in the database:
+ // Update the node in the database:
db_query("UPDATE node SET ". implode(", ", $q) ." WHERE nid = '$node->nid'");
- // call the node specific callback (if any):
+ // Call the node specific callback (if any):
module_invoke($node->type, "update", $node);
}
@@ -484,7 +485,7 @@ function node_admin_nodes() {
$queries = array(array("ORDER BY n.created DESC", "new nodes"), array("ORDER BY n.changed DESC", "updated nodes"), array("WHERE n.status = 1 AND n.moderate = 0 ORDER BY n.nid DESC", "published nodes"), array("WHERE n.status = 0 AND n.moderate = 0 ORDER BY n.nid DESC", "non-published nodes"), array("WHERE n.status = 1 AND n.moderate = 1 ORDER BY n.nid DESC", "pending nodes"), array("WHERE n.status = 1 AND n.promote = 1 ORDER BY n.nid DESC", "promoted nodes"));
- $result = db_query("SELECT n.*, u.name, u.uid FROM node n LEFT JOIN users u ON n.uid = u.uid ". $queries[$query ? $query : 0][0] ." LIMIT 50");
+ $result = db_query("SELECT n.*, u.name, u.uid FROM node n LEFT JOIN users u ON n.uid = u.uid ". $queries[$query ? $query : 1][0] ." LIMIT 50");
foreach ($queries as $key => $value) {
$links[] = "<a href=\"admin.php?mod=node&op=nodes&query=$key\">$value[1]</a>";
@@ -929,47 +930,53 @@ function node_edit($id) {
return $output;
}
-function node_preview($edit) {
+function node_preview($node) {
+
+ /*
+ ** Convert the array to an object:
+ */
+
+ $node = node_object($node);
/*
** Load the user's name when needed:
*/
- if (isset($edit["name"])) {
- /*
- ** The use of isset() is mandatory in the context of user IDs as uid
- ** 0 denotes the anonymous user.
- */
- if ($user = user_load(array("name" => $edit["name"]))) {
- $edit["uid"] = $user->uid;
+ if (isset($node->name)) {
+ /*
+ ** The use of isset() is mandatory in the context of user IDs as uid
+ ** 0 denotes the anonymous user.
+ */
+
+ if ($user = user_load(array("name" => $node->name))) {
+ $node->uid = $user->uid;
}
else {
- $edit["uid"] = 0; // anonymous user
+ $node->uid = 0; // anonymous user
}
}
else if ($edit["uid"]) {
- $user = user_load(array("uid" => $edit["uid"]));
- $edit["name"] = $user->name;
+ $user = user_load(array("uid" => $node->uid));
+ $node->name = $user->name;
}
/*
** Set the created time when needed:
*/
- if (empty($edit["nid"])) {
- $edit["created"] = time();
+ if (empty($node->nid)) {
+ $node->created = time();
}
/*
** Apply the required filters:
*/
- foreach ($edit as $key => $value) {
- $node->$key = check_output($value);
- /*
- ** NOTE: we can't do a check_query() or check_input() here as they
- ** add slashes which results in breakage.
- */
+ if ($node->nid) {
+ $node = array_merge($node, module_invoke($node->type, "save", "update", $node));
+ }
+ else {
+ $node = array_merge($node, module_invoke($node->type, "save", "create", $node));
}
/*
@@ -978,7 +985,7 @@ function node_preview($edit) {
node_view($node);
- return node_form($edit);
+ return node_form($node);
}
function node_submit($node) {
diff --git a/modules/page.module b/modules/page.module
index 61d15c9b8..31803526e 100644
--- a/modules/page.module
+++ b/modules/page.module
@@ -65,16 +65,23 @@ function page_link($type) {
function page_body($node) {
global $theme, $op;
- /*
- ** Make sure only authorized users can preview static (PHP)
- ** pages.
- */
- if ($op == t("Preview") && !user_access("adminster nodes")) {
- return;
- }
if ($node->format) {
+ /*
+ ** Make sure only authorized users can preview static (PHP)
+ ** pages.
+ */
+
+ if ($op == t("Preview")) {
+ if (user_access("adminster nodes")) {
+ $node->body = stripslashes($node->body); // see also page_form()
+ }
+ else {
+ return;
+ }
+ }
+
ob_start();
eval($node->body);
$output = ob_get_contents();
diff --git a/modules/page/page.module b/modules/page/page.module
index 61d15c9b8..31803526e 100644
--- a/modules/page/page.module
+++ b/modules/page/page.module
@@ -65,16 +65,23 @@ function page_link($type) {
function page_body($node) {
global $theme, $op;
- /*
- ** Make sure only authorized users can preview static (PHP)
- ** pages.
- */
- if ($op == t("Preview") && !user_access("adminster nodes")) {
- return;
- }
if ($node->format) {
+ /*
+ ** Make sure only authorized users can preview static (PHP)
+ ** pages.
+ */
+
+ if ($op == t("Preview")) {
+ if (user_access("adminster nodes")) {
+ $node->body = stripslashes($node->body); // see also page_form()
+ }
+ else {
+ return;
+ }
+ }
+
ob_start();
eval($node->body);
$output = ob_get_contents();
diff --git a/modules/story.module b/modules/story.module
index 747259463..89b57cd67 100644
--- a/modules/story.module
+++ b/modules/story.module
@@ -32,17 +32,12 @@ function story_save($op, $node) {
}
if ($op == "create") {
- return array("moderate" => 1);
+ return array("body" => filter($node->body), "moderate" => 1);
}
if ($op == "decline") {
return array("status" => 0, "promote" => 0);
}
-
- if ($op == "update") {
- return array("status");
- }
-
}
function story_help() {
diff --git a/modules/story/story.module b/modules/story/story.module
index 747259463..89b57cd67 100644
--- a/modules/story/story.module
+++ b/modules/story/story.module
@@ -32,17 +32,12 @@ function story_save($op, $node) {
}
if ($op == "create") {
- return array("moderate" => 1);
+ return array("body" => filter($node->body), "moderate" => 1);
}
if ($op == "decline") {
return array("status" => 0, "promote" => 0);
}
-
- if ($op == "update") {
- return array("status");
- }
-
}
function story_help() {