Jak wdrożyć system oparty na reputacji z odznakami w Drupal podobny do stron StackExchange?

15

Zarabianie odznak na StackExchange to dobra zabawa. Ale poza tym promuje wysokiej jakości interakcje użytkowników i pomaga usunąć spam (nigdy nie widziałem spamu na stronie).

Mam witrynę społecznościową z około 500 aktywnymi użytkownikami, ale spamerzy stają się coraz bardziej płodni.

Chciałbym, aby strona była bardziej wciągająca, a jednocześnie promowała tę samą jakość interaktywności.

Jak poleciłbyś wprowadzić system dobrej reputacji , a także system osiągania celów ?

blue928
źródło
Jeśli chodzi o spamerów wymienionych w pierwotnym pytaniu: nadal tam będą. Więc te spamerzy mogą być rozpatrywane postępując zgodnie z sugestią zawartą w odpowiedzi udzielonej przez Free Radical na drupal.stackexchange.com/questions/121382/... .
gpruim

Odpowiedzi:

17

Istnieje moduł Punkty użytkownika i Moduł odznak użytkownika , chociaż wersja 7.x odznak użytkownika nie nadaje się jeszcze do produkcji (od 4 czerwca 2012 r.).

Na szczęście Punkty użytkownika są zintegrowane z modułem Reguły , co pozwala na znaczne dostosowanie sposobu, w jaki użytkownicy zdobywają (lub ewentualnie tracą) punkty.

Dostępna jest także kolekcja modułów wnoszonych do punktów użytkownika o różnej stabilności. Z pewnością możesz skonfigurować niesamowite rzeczy z tymi modułami, ale upewnij się, aby dokładnie przetestować swoją implementację - chociaż moduły są dobrze napisane i dość stabilne, wciąż wiele może się nie udać, więc upewnij się, że wszystko działa poprawnie.

Patrick Kenny
źródło
11

Dla odznak dostępny jest moduł Osiągnięcia .

Moduł Osiągnięcia oferuje możliwość tworzenia osiągnięć i odznak podobnych do systemów widocznych na Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue i innych. W przypadku witryny Drupal może to oznaczać komentowanie pewnej liczby razy, rozpoczęcie tematu na forum, odwiedzanie witryny każdego dnia tygodnia lub cokolwiek innego, co można śledzić i kodować.

stevepurkiss
źródło
1

Twoje pytanie naprawdę składa się z 2 części, tj. Jak wdrożyć:

  • systemu reputacji , który jest jak oceny przez wielu użytkowników o konkretnym użytkownikiem.
  • układ cele osiągnięcie , które jest jak nagradzanie użytkownikowi po ukończeniu różne zadania, wyzwania, itp

Czytaj dalej, aby uzyskać więcej informacji na temat wdrażania każdego z obu systemów.

System realizacji celów

Zazwyczaj istnieją 2 moduły, z których możesz wybrać taki system, tj .:

  1. Do osiągnięć moduł, jak zasugerowano w innym już odpowiedź. Ten moduł w dużej mierze opiera się na niestandardowym kodowaniu do obsługi wielu funkcji.

  2. The Cele modułu (Ujawnienie: Jestem opiekunem nim), które mogą być wykorzystywane do zachęcania nic na swojej stronie, takich jak głosowanie, udostępnianie treści, tworzenia relacji, itd.

    Cele i zadania są wdrażane przy użyciu encji polowych. Oto niektóre przykłady zadań do wykonania:

    • Zaloguj się do serwisu raz dziennie przez trzy kolejne dni.
    • Opublikuj liczbę węzłów wybranych typów treści.
    • Nawiąż połączenie z przyjacielem na stronie.
    • Itp.

    Możesz dostosować Cele poprzez „Zarządzaj polami” i / lub „Zarządzaj wyświetlaniem”. Wszystko można zrobić tylko za pomocą funkcji budowania witryny (bez udziału niestandardowego kodu), chociaż dostępne są haczyki umożliwiające integrację z niestandardowym kodowaniem. Tak więc moduł Cele opiera się na konfiguracji interfejsu administratora. Ponadto cele i zadania w module Cele są obiektami z możliwością zmiany pola, więc możesz elastycznie dodawać dodatkowe pola i włączać te elementy do widoków . Za pomocą Goals Extraspodmodułu integruje się również z modułem Punkty użytkownika .

    Przejdź do filmu o celach, który zawiera:

    • ogólne wprowadzenie do modułu.
    • demonstracja instalacji, konfiguracji i użytkowania.
    • próbki tego, jak używa modułów Reguły do wykonywania swojej magii (tj. do śledzenia postępów użytkownika w osiąganiu różnych celów).

System reputacji

Korzystając z modułu Odpowiedzi (Ujawnienie: jestem jego (współ) opiekunem), możesz „ wprowadzić system dobrej reputacji ” (jak w twoim pytaniu). Oto kilka szczegółów na ten temat (ze strony projektu):

Odpowiedzi umożliwia wdrożenie systemu pytań i odpowiedzi w witrynie Drupal. Użytkownicy mogą publikować pytania, a inni użytkownicy mogą na nie odpowiadać.

Przejdź na stronę projektu, aby uzyskać więcej informacji. Odwiedź jego stronę demo dla demonstracji (w trybie tylko do odczytu anonimowych użytkowników) z dnia Wyświetleń list w oparciu o:

Moduł „core” Answers włącza typy treści Pytanie i Odpowiedź , natomiast Odpowiedzi są wyświetlane poniżej pytania, którego dotyczą. Te 2 typy zawartości są obsługiwane, możesz zarządzać ich wyświetleniami itp.

Użyj jego podmodułów, aby włączyć wybraną funkcjonalność (w oparciu o wymagania strony), tj .:

  • Odpowiedzi Najlepsza odpowiedź , która pozwala zaznaczyć dowolną odpowiedź na określone pytanie jako najlepszą (zaakceptowaną) odpowiedź (aby wyświetlić niebieskie znaczniki po lewej stronie każdej odpowiedzi, i która jest zastępowana zielonym znacznikiem wyboru, gdy odpowiedź jest zaznaczona jako najlepsza odpowiedź).
  • Temat odpowiedzi , który przekształca (raczej nudny) waniliowy obraz pytania (i powiązane z nim odpowiedzi poniżej), w sposób o wiele bardziej atrakcyjny. Takich jak pomarańczowa bańka dodawana wokół pytania (aby lepiej je zaznaczyć).
  • Powiadomienia o odpowiedziach , aby umożliwić zalogowanym użytkownikom zasubskrybowanie wybranych pytań, tak aby otrzymywali powiadomienia (za pomocą stosu wiadomości ), gdy pytania otrzymają odpowiedzi.
  • Odpowiedzi Głosowanie , aby wdrożyć system głosowania lub głosowania na pytania i / lub odpowiedzi (który korzysta zmodułu Oceń ).
  • Odpowiada na punkty użytkownika , aby zwiększyć lub zmniejszyć „ punkty reputacji ” (który korzysta zmodułu Userpoints ) w przypadku takich wydarzeń, jak głosowanie w górę lub w dół pytania lub odpowiedzi lub oznaczenie odpowiedzi jako „ najlepszej odpowiedzi ”.

Spora część jego „logiki biznesowej” jest implementowana za pomocą różnego rodzaju konfigurowalnych reguł (za pomocą Reguł modułu ). Na przykład, jeśli nie zgadzasz się z nieszablonowymi zasadami określającymi, ile „punktów użytkownika” przyznaje się do pytania (lub odpowiedzi), które zostało ocenione (lub negatywnie ocenione), wystarczy użyć interfejsu użytkownika, aby dostroić ilość takich punktów do twoich wymagań. Np .: czy pytania downvotingowe powinny być naprawdę darmowe (tj .: czy downvoter powinien stracić jakieś punkty?).

Dla kompletności poniżej znajduje się reguła (w formacie eksportu reguł), która służy do przyznania autorowi odpowiedzi punktów „+15” wraz z punktami „+2” dla użytkownika, który oznaczy tę odpowiedź jako zaakceptowaną (= autor pytania ), podczas gdy zaznaczenie go jako takiego odbywa się poprzez oznaczenie tej odpowiedzi jako „najlepszej odpowiedzi” (przy użyciu modułu Flaga ):

{ "rules_flag_answers_best_answer" : {
    "LABEL" : "flag_answers_best_answer",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "answers" ],
    "REQUIRES" : [ "rules", "userpoints_rules", "flag" ],
    "ON" : { "flag_flagged_best_answer" : [] },
    "IF" : [
      { "NOT data_is" : { "data" : [ "flagging-user" ], "value" : [ "flagged-node:author" ] } }
    ],
    "DO" : [
      { "userpoints_action_grant_points" : {
          "user" : [ "flagged-node:author" ],
          "points" : "15",
          "tid" : "0",
          "entity" : [ "" ],
          "operation" : "addPoints",
          "display" : 1,
          "moderate" : "default"
        }
      },
      { "userpoints_action_grant_points" : {
          "user" : [ "flagging-user" ],
          "points" : "2",
          "tid" : "0",
          "entity" : [ "" ],
          "operation" : "addPoints",
          "display" : 1,
          "moderate" : "default"
        }
      }
    ]
  }
}
Pierre.Vriens
źródło