summaryrefslogtreecommitdiff
path: root/modules/comment.module
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2002-04-14 20:46:41 +0000
committerDries Buytaert <dries@buytaert.net>2002-04-14 20:46:41 +0000
commitd8cd54969c856531e002136f52bc52e7cbcbf49f (patch)
tree8af1ccc6b65d736855ffa81ce2fe3957725d44c6 /modules/comment.module
parente5fd6713078d2db7145aac80b4743048a2432fc8 (diff)
downloadbrdo-d8cd54969c856531e002136f52bc52e7cbcbf49f.tar.gz
brdo-d8cd54969c856531e002136f52bc52e7cbcbf49f.tar.bz2
- Added Marco's long-awaited taxonmy module and patches - a replacement
for the meta system. The patches add some extra functionality to the comment system (for example, comments can be set read-only) and fix a couple of small problems. + I integrated the required SQL updates from the varius *.mysql files into the "update.php" script. Upgrading should be easy ... + I did not apply/commit the "user.diff" as requested by Marco ... + I didn't know what to do with "forum.module" and "forum2.module": what do you want me to do with it Marco? Which one should go in? + Can we remove "node_index()" now; both from "node.module" and the themes? + Thanks Marco!
Diffstat (limited to 'modules/comment.module')
-rw-r--r--modules/comment.module65
1 files changed, 42 insertions, 23 deletions
diff --git a/modules/comment.module b/modules/comment.module
index ff56abfb8..9beabb930 100644
--- a/modules/comment.module
+++ b/modules/comment.module
@@ -145,22 +145,30 @@ function comment_edit($cid) {
}
function comment_reply($pid, $nid) {
- global $theme;
-
- if ($pid) {
- $comment = db_fetch_object(db_query("SELECT c.*, u.uid, u.name FROM comments c LEFT JOIN users u ON c.uid = u.uid WHERE c.cid = '$pid'"));
- comment_view($comment, t("reply to this comment"));
- }
- else {
- node_view(node_load(array("nid" => $nid)));
- $pid = 0;
- }
+ global $theme, $node;
+
+ // we must provide a taxonomy context for user_access()
+ $context->nid = $nid;
+ if (user_access("access comments", $context)) {
+ if ($pid) {
+ $comment = db_fetch_object(db_query("SELECT c.*, u.uid, u.name FROM comments c LEFT JOIN users u ON c.uid = u.uid WHERE c.cid = '$pid'"));
+ comment_view($comment, t("reply to this comment"));
+ }
+ else {
+ node_view(node_load(array("nid" => $nid)));
+ $pid = 0;
+ }
- if (user_access("post comments")) {
- $theme->box(t("Reply"), comment_form(array("pid" => $pid, "nid" => $nid)));
- }
- else {
- $theme->box(t("Reply"), t("You are not authorized to post comments."));
+ if (node_comment_mode($nid) == 1) {
+ $theme->box(t("Reply"), t("This discussion is closed: you can't post new comments."));
+ } else if (user_access("post comments", $context)) {
+ $theme->box(t("Reply"), comment_form(array("pid" => $pid, "nid" => $nid)));
+ }
+ else {
+ $theme->box(t("Reply"), t("You are not authorized to post comments."));
+ }
+ } else {
+ $theme->box(t("Reply"), t("You are not authorized to view comments."));
}
}
@@ -205,7 +213,8 @@ function comment_preview($edit) {
function comment_post($edit) {
global $theme, $user;
- if (user_access("post comments")) {
+ $context->nid = $edit["nid"];
+ if (user_access("post comments", $context) && node_comment_mode($edit["nid"]) == 2) {
/*
** Validate the comment's subject. If not specified, extract
@@ -378,6 +387,11 @@ function comment_links($comment, $return = 1) {
$links[] = "<a href=\"admin.php?mod=comment&op=edit&id=$comment->cid\" title=\"". t("Administer this comment.") ."\"><span style=\"color: $theme->type;\">". t("administer") ."</span></a>";
}
+ // here we should check if this node has read-only comments, but we already check on submit
+ // and this way we save a query. it's just a cosmetic issue. otherwise just uncomment next
+ // line and related bracket some lines below
+
+ //if (node_comment_mode($comment->nid)) {
if (user_access("post comments")) {
if (comment_access("edit", $comment)) {
$links[] = "<a href=\"module.php?mod=comment&op=edit&id=$comment->cid\" title=\"". t("Make changes to your comment.") ."\"><span style=\"color: $theme->type\">". t("edit your comment") ."</span></a>";
@@ -386,6 +400,7 @@ function comment_links($comment, $return = 1) {
$links[] = "<a href=\"module.php?mod=comment&op=reply&id=$comment->nid&pid=$comment->cid\" title=\"". t("Reply to this comment.") ."\"><span style=\"color: $theme->type;\">". t("reply to this comment") ."</span></a>";
}
}
+ //}
return $theme->links($links);
@@ -553,10 +568,10 @@ function comment_search($keys) {
// index.
//
// "select"'s value is used to relate the data from the specific nodes
- // table to the data that the search_index table has in it, and the the
+ // table to the data that the search_index table has in it, and the the
// do_search functino will rank it.
//
- // The select must always provide the following fields - lno, title,
+ // The select must always provide the following fields - lno, title,
// created, uid, name, count
//
// The select statement may optionally provide "nid", which is a secondary
@@ -565,7 +580,7 @@ function comment_search($keys) {
$find = do_search(array("keys" => $keys,
"type" => "comment",
"select" => "select s.lno as lno, c.nid as nid, c.subject as title, c.timestamp as created, u.uid as uid, u.name as name, s.count as count FROM search_index s, comments c LEFT JOIN users u ON c.uid = u.uid WHERE s.lno = c.cid AND s.type = 'comment' AND s.word like '%'"));
-
+
return $find;
}
@@ -597,11 +612,15 @@ function comment_link($type, $node = 0, $main = 0) {
else {
/*
** Node page: add a "post comment" link if the user is allowed to
- ** post comments.
+ ** post comments and if this node is not read-only
*/
if (user_access("post comments")) {
- $links[] = "<a href=\"module.php?mod=comment&op=reply&id=$node->nid#comment\" title=\"". t("Share your thoughts and opinions related to this posting.") ."\">". t("add new comment") ."</a>";
+ if ($node->comment == 2) {
+ $links[] = "<a href=\"module.php?mod=comment&op=reply&id=$node->nid#comment\" title=\"". t("Share your thoughts and opinions related to this posting.") ."\">". t("add new comment") ."</a>";
+ } else {
+ $links[] = t("This discussion is closed: you can't post new comments.");
+ }
}
}
}
@@ -751,14 +770,14 @@ function comment_update_index() {
// Return an array of values to dictate how to update the search index
// for this particular type of node.
//
- // "last_update"'s value is used with variable_set to set the
+ // "last_update"'s value is used with variable_set to set the
// last time this node type (comment) had an index update run.
//
// "node_type"'s value is used to identify the node type in the search
// index (commentt in this case).
//
// "select"'s value is used to select the node id and text fields from
- // the table we are indexing. In this case, we also check against the
+ // the table we are indexing. In this case, we also check against the
// last run date for the comments update.
return array("last_update" => "comment_cron_last",
"node_type" => "comment",