Điểm người dùng Karma - Có thể chỉ tính điểm người dùng khi bỏ phiếu không?


8

Tôi đang sử dụng các mô-đun Điểm người dùng, Karma người dùng, bỏ phiếu lên / xuống. Tôi tự hỏi nếu có một cách bạn có thể cấu hình nó để chỉ trừ điểm người dùng khi bạn bỏ phiếu một cái gì đó và không lên.

Tương tự như hệ thống danh tiếng của Stack Exchange: nếu bạn bỏ phiếu một cái gì đó, bạn sẽ không được cập bến, nhưng nếu bạn bỏ phiếu một cái gì đó, bạn sẽ nhận được điểm danh tiếng.

Sử dụng Điểm người dùng danh tiếng -> Điểm Karma -> Cài đặt chi phí điểm của người bỏ phiếu, tôi chỉ có thể định cấu hình để tính phí nếu bạn bỏ phiếu, bất kể hướng đi của phiếu bầu. Có ý kiến ​​gì không?


Có vẻ như bạn phải làm điều đó theo chương trình. Kiểm tra móc nếu mô-đun cung cấp bất kỳ.
Codium

@drupality: Tôi không đồng ý, tham khảo câu trả lời của tôi để biết chi tiết về lý do tại sao ...
Pierre.Vriens

Câu trả lời:


5

Thêm một mô-đun để ghi đè cài đặt của Karma người dùng chắc chắn là một tùy chọn.

Một khả năng khác là sử dụng Quy tắcBiểu quyết_Rules để kiểm soát cài đặt của riêng bạn để thêm và trừ điểm người dùng.

Sau khi kích hoạt, bạn đi đến / admin / config / workflow / quy tắc và "Thêm quy tắc mới". Thiết lập nó thành React on Event "Người dùng bình chọn trên một nút".

Thêm điều kiện "Kiểm tra giá trị của phiếu bầu" và nếu dưới 0, thêm Hành động vào "Cấp điểm cho người dùng" nhưng làm cho chúng trở thành điểm tiêu cực.

Dưới đây là ảnh chụp màn hình của Quy tắc này: nhập mô tả hình ảnh ở đây

Tùy chọn, nếu bạn muốn sử dụng kết hợp Karma người dùng, thay vào đó, bạn có thể Phản ứng về sự kiện "Điểm người dùng được trao giải" và kiểm tra Điều kiện và ghi đè khi thích hợp.


1

Đố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) ... 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) ... 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, operationreferenceđượ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, operationreferenceđượ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).


Hãy dừng viết câu trả lời bắt đầu "xem câu trả lời của tôi cho câu hỏi khác này". Nếu câu trả lời của bạn cho câu hỏi khác giải quyết vấn đề cho câu hỏi này , các bài đăng sẽ được đóng lại dưới dạng trùng lặp với nhau. Nếu không, thì câu trả lời chỉ là tiếp tuyến, không trả lời câu hỏi và cần phải xóa. Tôi sẽ cho bạn thời gian để quyết định những gì bạn muốn làm trước khi tự mình thực hiện hành động thích hợp. Dù bằng cách nào, thói quen đăng câu trả lời dài cho một câu hỏi, sau đó đăng câu trả lời cho một số câu hỏi khác quay lại với nó, sẽ dừng lại.
Clive

Để làm cho nó rõ ràng hơn: Câu trả lời về cơ bản là con trỏ đến câu trả lời khác được đưa ra cho các câu hỏi khác không được chấp nhận. Câu trả lời cần được điều chỉnh cho câu hỏi đang được hỏi. Nếu cùng một câu trả lời áp dụng cho hai câu hỏi, rất có thể một câu hỏi đang nhân đôi câu hỏi còn lại.
kiamlaluno

Merci, người vừa biểu diễn tương đương với " DownvoteWithdrawn " ...
Pierre.Vriens
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.