Đối với D7, tôi khuyên bạn nên sử dụng kết hợp các giải pháp thay thế và thường được sử dụng này để trừ (hoặc thêm) điểm người dùng khi một số nút được bỏ phiếu (hoặc downvote như vậy bị loại bỏ một lần nữa, điều này cũng có thể xảy ra ...):
Dưới đây là các quy tắc bắt buộc, đối với từng trường hợp này (sử dụng Giao diện người dùng quy tắc để nhập chúng trong trang web của riêng bạn, sau khi bạn bật các mô-đun cần thiết được đề cập ở trên). Giả định được thực hiện trong các quy tắc này:
- Họ sử dụng một loại nội dung với tên máy
article
(điều chỉnh tên này để phù hợp với tên máy của bạn hoặc bỏ qua Điều kiện quy tắc để bật cho bất kỳ loại nội dung nào có thể được bình chọn).
- Giá trị của một downvote khớp với "
-1
".
Tải xuống một nút
Quy tắc dưới đây sẽ trừ -2 (cấp -2) điểm người dùng cho một downvote (cho tác giả của nút) ... VÀ cũng -1 điểm người dùng cho cử tri:
{ "rules_votedown_node" : {
"LABEL" : "votedown_node",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
"ON" : { "voting_rules_insert_node" : [] },
"IF" : [
{ "node_is_of_type" : {
"node" : [ "node" ],
"type" : { "value" : { "article" : "article" } }
}
},
{ "voting_rules_condition_check_vote_value" : { "vote" : [ "vote" ], "value" : "-1" } }
],
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "node:author" ],
"points" : "-2",
"tid" : "0",
"entity" : [ "" ],
"description" : "Receive downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteReceived",
"reference" : "By uid=[vote:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
},
{ "userpoints_action_grant_points" : {
"user" : [ "vote:user" ],
"points" : "-1",
"tid" : "0",
"entity" : [ "" ],
"description" : "Issue downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteIssued",
"reference" : "From uid=[node:author:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
}
]
}
}
Hủy bỏ downvote một nút
Quy tắc bên dưới sẽ cấp +2 (= loại bỏ -2) điểm người dùng cho một downvote bị hủy (cho tác giả của nút) ... VÀ cũng +1 điểm người dùng cho cử tri:
{ "rules_votedown_node_cancel" : {
"LABEL" : "votedown_node_cancel",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
"ON" : { "voting_rules_delete_node" : [] },
"IF" : [
{ "node_is_of_type" : {
"node" : [ "node" ],
"type" : { "value" : { "article" : "article" } }
}
},
{ "voting_rules_condition_check_vote_value" : { "vote" : [ "vote" ], "value" : "-1" } }
],
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "node:author" ],
"points" : "2",
"tid" : "0",
"entity" : [ "" ],
"description" : "Cancel downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteCancelled",
"reference" : "By uid=[vote:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
},
{ "userpoints_action_grant_points" : {
"user" : [ "vote:user" ],
"points" : "1",
"tid" : "0",
"entity" : [ "" ],
"description" : "Withdraw downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteWithdrawn",
"reference" : "From uid=[node:author:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
}
]
}
}
Mặc dù nó có thể không rõ ràng từ chỉ duyệt các quy tắc xuất khẩu trên, chú ý description
, operation
và reference
được sử dụng trong mỗi tài khoản Point giao dịch.
Sử dụng các quy tắc như vậy, cấu hình của việc tính phí bao nhiêu cho upvote và / hoặc downvote chỉ là vấn đề điều chỉnh các giá trị của các điểm người dùng sẽ được cấp (hoặc loại bỏ) bằng cách sử dụng UI UI.
Cũng lưu ý description
, operation
và reference
được sử dụng trong mỗi giao dịch tài khoản điểm. Điều đó cũng sẽ cải thiện các báo cáo Điểm người dùng thông thường (thông qua các chi tiết khác nhau được thêm vào trong các giao dịch điểm người dùng thực tế).
Sử dụng mô-đun Quy tắc có điều kiện , bạn cũng có thể hợp nhất các quy tắc này trong một quy tắc duy nhất (giúp đơn giản hóa việc duy trì chúng).
Bài tập về nhà : điều chỉnh các quy tắc được hiển thị ở trên để triển khai một số thứ tương tự như tiền thưởng trên SE (= chuyển một số lượng Điểm người dùng từ người dùng này sang người dùng khác).
PS: " nếu bạn bỏ phiếu một cái gì đó xuống, bạn sẽ nhận được điểm danh tiếng " (trên SE) chỉ đúng với câu trả lời, không phải cho câu hỏi. Để tinh chỉnh giống như bạn muốn, chỉ là vấn đề thêm một Điều kiện quy tắc bổ sung thích hợp (ví dụ: dựa trên một loại nội dung như vậy).