Userpoints Karma - Apakah mungkin untuk hanya membebankan poin pengguna untuk suara yang turun?

8

Saya menggunakan modul Poin Pengguna, Karma Pengguna, Vote Atas / Bawah. Saya bertanya-tanya apakah ada cara Anda dapat mengkonfigurasinya untuk hanya mengurangi poin pengguna ketika Anda memilih sesuatu turun dan tidak naik.

Mirip dengan sistem reputasi Stack Exchange: jika Anda memilih sesuatu, Anda tidak akan merapat, tetapi jika Anda memilih sesuatu, Anda mendapatkan poin reputasi yang merapat.

Menggunakan Poin Pengguna Reputasi -> Poin Karma -> Pengaturan Biaya Poin Pemilih, saya hanya dapat mengonfigurasinya untuk membebankan biaya jika Anda memilih sama sekali, terlepas dari arah pemilihan. Ada ide?

Nelson
sumber
Sepertinya Anda harus melakukannya secara terprogram. Periksa kait jika modul menyediakan.
Codium
@drupality: Saya tidak setuju, lihat jawaban saya untuk perincian tentang mengapa ...
Pierre.Vriens

Jawaban:

5

Menambahkan modul untuk mengesampingkan pengaturan User Karma tentu saja merupakan salah satu opsi.

Kemungkinan lain adalah dengan menggunakan Aturan dan Voting_Rules untuk mengontrol pengaturan Anda sendiri untuk menambah dan mengurangi poin pengguna.

Setelah diaktifkan, Anda pergi ke / admin / config / workflow / rules dan "Add New Rule". Atur untuk Bereaksi pada Acara "Pilihan pengguna pada Node".

Tambahkan kondisi "Periksa nilai suara" dan jika kurang dari 0 tambahkan Tindakan ke "Berikan poin ke pengguna" tetapi buat mereka poin negatif.

Berikut screenshot dari Aturan ini: masukkan deskripsi gambar di sini

Secara opsional, jika Anda ingin menggunakan Karma Pengguna bersama-sama, Anda bisa Bereaksi pada Acara "Pengguna diberi Poin" dan menguji Kondisi dan menimpa jika perlu.

Brent
sumber
1

Untuk D7, saya sarankan untuk mencari kombinasi dari alternatif ini, dan modul yang sering digunakan, untuk mengurangi (atau menambah) poin pengguna ketika beberapa node dimatikan (atau downvote seperti itu dihapus lagi, yang mungkin terjadi juga ...):

Di bawah ini adalah aturan yang diperlukan, untuk masing-masing kasus ini (gunakan UI Aturan untuk mengimpornya di situs Anda sendiri, setelah Anda mengaktifkan modul yang diperlukan yang disebutkan di atas). Asumsi yang dibuat dalam aturan ini:

  • Mereka menggunakan tipe konten dengan nama mesin article(sesuaikan nama ini agar sesuai dengan nama mesin Anda sendiri, atau hilangkan Ketentuan Aturan yang memungkinkan untuk semua jenis konten yang dapat dipilih).
  • Nilai downvote cocok dengan " -1".

Turunkan simpul

Aturan di bawah ini akan mengurangi -2 (memberikan -2) poin pengguna untuk downvote (ke pembuat node) ... DAN juga -1 poin pengguna untuk pemilih:

{ "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"
        }
      }
    ]
  }
}

Batalkan downvote sebuah node

Aturan di bawah ini akan memberikan +2 (= menghapus -2) poin pengguna untuk downvote yang dibatalkan (ke pembuat node) ... DAN juga +1 poin pengguna untuk pemilih:

{ "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"
        }
      }
    ]
  }
}

Meskipun mungkin tidak jelas dari hanya menelusuri aturan yang diekspor di atas, perhatikan description, operationdan referencedigunakan dalam setiap transaksi User Point.

Dengan menggunakan aturan seperti itu, konfigurasi berapa banyak biaya untuk upvote dan / atau downvotes hanyalah masalah mengadaptasi nilai-nilai titik pengguna yang akan diberikan (atau dihapus) menggunakan UI Aturan.

Perhatikan juga description, operationdan referencedigunakan dalam setiap transaksi Poin Pengguna. Itu juga akan meningkatkan laporan Poin Pengguna khas (melalui berbagai detail yang ditambahkan dalam transaksi poin pengguna yang sebenarnya).

Menggunakan modul Aturan Bersyarat , Anda juga dapat menggabungkan aturan-aturan ini dalam satu aturan (yang menyederhanakan pemeliharaannya).

Pekerjaan rumah : sesuaikan aturan yang ditunjukkan di atas untuk menerapkan sesuatu yang mirip dengan hadiah di SE (= transfer sejumlah Poin Pengguna dari satu pengguna ke pengguna lain).

PS: " jika Anda memilih sesuatu, Anda mendapatkan poin reputasi berlabuh " (pada SE) hanya berlaku untuk jawaban, bukan untuk pertanyaan. Untuk memperbaiki yang Anda inginkan, hanya masalah menambahkan Ketentuan Aturan tambahan yang sesuai (misalnya berdasarkan jenis konten demikian).

Pierre
sumber
Tolong berhenti menulis jawaban yang mulai "lihat jawaban saya untuk pertanyaan lain ini". Jika jawaban Anda untuk pertanyaan lain menyelesaikan masalah pada pertanyaan ini , pos akan ditutup sebagai duplikat satu sama lain. Jika tidak, maka jawabannya hanya tangensial, tidak menjawab pertanyaan, dan perlu dihapus. Saya akan memberi Anda waktu untuk memutuskan apa yang ingin Anda lakukan sebelum mengambil tindakan yang tepat sendiri. Either way, kebiasaan posting jawaban panjang untuk satu pertanyaan, lalu posting jawaban untuk beberapa pertanyaan lain yang mengarah kembali ke itu, akan berhenti.
Clive
Untuk membuatnya lebih jelas: Jawaban yang pada dasarnya menunjuk ke jawaban lain yang diberikan untuk pertanyaan lain tidak dapat diterima. Jawaban perlu disesuaikan untuk pertanyaan yang diajukan. Jika jawaban yang sama berlaku untuk dua pertanyaan, kemungkinan besar pertanyaan itu menduplikasi pertanyaan lainnya.
kiamlaluno
Merci yang baru saja melakukan pertunjukan yang setara dengan " DownvoteWithdrawn " ...
Pierre.Vriens