--- Documents/Projecten/DPL_drupal/repository/drupal44/contributions/modules/notify/notify.module 2004-04-21 08:13:57.000000000 +0200 +++ tmp/notify.module 2004-07-01 15:40:10.000000000 +0200 @@ -1,5 +1,6 @@ moderate) { $body .= strtr(t("%status %type by %author: %title"), array("%status" => "queued", "%type" => $node->type, "%title" => $node->title, "%author" => ($node->name ? $node->name : variable_get(anonymous, "Anonymous")))) ."\n"; $body .= notify_content($node, $notify); - $body .= " [ ". url("queue/view/$node->nid") ." ]\n\n"; + // 040701AH Applied patch by Capnj (http://drupal.org/node/view/7166#comment-7892) + $body .= " [ ". url("queue/view/$node->nid", NULL, NULL, TRUE) ." ]\n\n"; } elseif (!$notify->moderate && $node->nid) { $body .= strtr(t("%status %type by %author: %title"), array("%status" => "published", "%type" => $node->type, "%title" => $node->title, "%author" => ($node->name ? $node->name : variable_get(anonymous, "Anonymous")))) ."\n"; $body .= notify_content($node, $notify); - $body .= " [ ". url("node/view/$node->nid") ." ]\n\n"; + // 040701AH Applied patch by Capnj (http://drupal.org/node/view/7166#comment-7892) + $body .= " [ ". url("node/view/$node->nid", NULL, NULL, TRUE) ." ]\n\n"; } } } @@ -99,8 +102,9 @@ $nid_old = $nid; } foreach ($comment as $c) { + // 040701AH Applied patch by Capnj (http://drupal.org/node/view/7166#comment-7892) $body .= " ". strtr(t("%title by %author"), array("%title" => $c->subject, "%author" => ($c->name ? $c->name : variable_get(anonymous, "Anonymous")))) ."\n" - . " ". url("node/view/$nid/$c->cid#$c->cid") ."\n\n"; + . " ". url("node/view/$nid/$c->cid#$c->cid", NULL, NULL, TRUE) ."\n\n"; } } } @@ -140,12 +144,13 @@ } function notify_link($type) { + // 040701AH changed positions/titles in menu if ($type == "system") { if (user_access('access notify')) { - menu("notify", t("my notify settings"), "notify_page", 0); + menu("user/notify", t("email notification"), "notify_page"); } if (user_access("administer notify")) { - menu("admin/user/notify", "notifications", "notify_admin", NULL, 8); + menu("admin/user/notify", t("notifications"), "notify_admin"); } } @@ -185,38 +190,54 @@ } function notify_admin() { + // 040701AH Fixed to show/edit all users instead of only users that have set + // notification settings, fixed theming. + $op = $_POST["op"]; switch ($op) { case "Save": $edit = $_POST["edit"]; foreach ($edit as $uid=>$settings) { - db_query("UPDATE {notify} SET node = %d, teasers = %d, comment = %d WHERE uid = %d", $settings['node'], $settings['teasers'], $settings['comment'], $uid); + // 040701AH Changed to create a new entry in the db in the user doesn't + // have one yet + $result = db_query("SELECT uid FROM {notify} WHERE uid = %d", $uid); + + if (is_object(db_fetch_object($result))) { + db_query("UPDATE {notify} SET status = %d, node = %d, teasers = %d, comment = %d WHERE uid = %d", $settings['status'], $settings['node'], $settings['teasers'], $settings['comment'], $uid); + } else if ($settings['status']) { + db_query("INSERT INTO {notify} (uid,status,node,teasers,comment) VALUES (%d,%d,%d,%d,%d)", $uid, $settings['status'], $settings['node'], $settings['teasers'], $settings['comment']); + } } default: - $result = db_query("SELECT u.uid, u.name, u.mail, n.* FROM {users} u LEFT JOIN {notify} n ON u.uid = n.uid WHERE n.status = 1 AND u.status = 1 ORDER BY u.name"); - $header = array (t("username"), t("email address"), t("content"), t("teasers"), t("comment"), t("failed attempts")); + // 040701AH Using n.* instead of listing all the n. cells NULLs the uid + // cells when a notify entry is not available; + $result = db_query("SELECT u.uid, u.name, u.mail, n.status, n.node, n.comment, n.attempts, n.teasers FROM {users} u LEFT JOIN {notify} n ON n.uid = u.uid WHERE u.status = 1 ORDER BY u.name"); + $header = array (t("username"), t("email address"), t("enable"), t("content"), t("teasers"), t("comment"), t("failed attempts")); $i = 0; while ($notify = db_fetch_object($result)) { - $rows[$i][] = format_name($notify); + $rows[$i][] = format_name($notify); $rows[$i][] = $notify->mail; // 030312AX TODO: it really is a shame that we cannot use form_* functions // here (as they wrap everything into
title description
). implement // this once (see mailing list)! - //$rows[$i][] = form_hidden("$notify->uid][status", 0) ."uid][status]\"". ($notify->status ? " checked=\"checked\"" : "") .">"; - $rows[$i][] = form_hidden("$notify->uid][node", 0) .'node ? ' checked="checked"' : '') .'>'; + // 040701AH Removed hidden form elements that didn't do anything + // Reenstated the status field + $rows[$i][] = 'status ? ' checked="checked"' : '') .'>'; + $rows[$i][] = 'node ? ' checked="checked"' : '') .'>'; $select = ""; foreach (array(t("Title only"), t("Title + Teaser"), t("Title + Body")) as $key => $choice) { $select .= '"; } $rows[$i][] = ''; - $rows[$i][] = form_hidden("$notify->uid][comment", 0) .'comment ? ' checked="checked"' : '') .">"; + $rows[$i][] = 'comment ? ' checked="checked"' : '') .">"; $rows[$i][] = $notify->attempts; $i++; } - $rows[$i][] = form_submit("Save"); $output = theme("table", $header, $rows); - print form($output); + $output .= form_submit("Save"); + // 040701AH fixed formatting + print theme("page", form($output)); } }