Come implementare un sistema basato sulla reputazione con badge in Drupal simili ai siti StackExchange?


16

Guadagnare badge su StackExchange è, beh, divertente. Ma a parte ciò promuove l'interazione di qualità da parte degli utenti e aiuta a eliminare lo spam (non ho mai visto un post di spam sul sito).

Ho un sito Web della community con circa 500 utenti attivi, ma gli spammer stanno iniziando a diventare più prolifici.

Vorrei un modo per rendere il sito più coinvolgente promuovendo la stessa qualità di interattività.

Come consiglieresti di inserire un sistema di buona reputazione e un sistema di raggiungimento degli obiettivi ?


Per quanto riguarda gli spammer menzionati nella domanda originale: saranno ancora lì. Quindi questi spammer possono essere gestiti seguendo il suggerimento fatto nella risposta data da Free Radical su drupal.stackexchange.com/questions/121382/… .
gpruim,

Risposte:


17

C'è il modulo Punti utente e il modulo Badge utente , sebbene la versione 7.x di Badge utente non sia ancora adatta alla produzione (dal 4 giugno 2012).

Per fortuna, i punti utente si integrano con il modulo Regole , che consente di personalizzare notevolmente il modo in cui gli utenti guadagnano (o eventualmente perdono) punti.

Esiste anche una raccolta di moduli forniti per punti utente di varia stabilità. Puoi certamente creare cose incredibili con questi moduli, ma assicurati di testare attentamente la tua implementazione - anche se i moduli sono ben scritti e abbastanza stabili, ci sono ancora molte cose che possono andare storto, quindi assicurati di verificare che tutto funzioni correttamente.


11

Per i badge, c'è il modulo Achievements .

Il modulo Achievements offre la possibilità di creare risultati e badge simili ai sistemi visti su Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue e altri. Per un sito Drupal, questo potrebbe significare commentare un certo numero di volte, iniziare un argomento del forum, visitare il sito ogni giorno della settimana o qualsiasi altra cosa che può essere monitorata e codificata.


1

La tua domanda è davvero composta da 2 parti, cioè su come implementare:

  • un sistema di reputazione , che è come una valutazione di più utenti su un utente specifico.
  • un sistema di raggiungimento degli obiettivi , che è come premiare un utente dopo aver completato vari compiti, sfide, ecc.

Continua a leggere per maggiori dettagli su come implementare ciascuno di entrambi i sistemi.

Sistema di raggiungimento degli obiettivi

In genere ci sono 2 moduli tra cui scegliere per questo tipo di sistema, ovvero:

  1. Il modulo Achievements , come già suggerito in un'altra risposta. Questo modulo si basa fortemente sulla codifica personalizzata per gestire molte delle funzioni.

  2. Il modulo Obiettivi (Informativa: ne sono il manutentore), che può essere utilizzato per incentivare qualsiasi cosa sul tuo sito, come votare, condividere contenuti, creare relazioni, ecc.

    Gli obiettivi e le attività vengono implementati utilizzando entità fieldable. Alcuni esempi di attività da completare potrebbero essere:

    • Accedi al sito una volta al giorno per tre giorni consecutivi.
    • Pubblica un numero di nodi di tipi di contenuto selezionati.
    • Crea una connessione Friend sul sito.
    • Eccetera.

    Puoi personalizzare gli obiettivi tramite "Gestisci campi" e / o "Gestisci display". Tutto può essere fatto solo con le funzionalità di creazione del sito (nessun codice personalizzato coinvolto), sebbene siano disponibili hook per integrarlo anche nella codifica personalizzata. Quindi il modulo Obiettivi è costruito attorno usando la configurazione dell'interfaccia di amministrazione. Inoltre, gli obiettivi e le attività all'interno del modulo Obiettivi sono entità fieldable, quindi hai la flessibilità di aggiungere campi aggiuntivi e incorporare queste entità in Views . Utilizzando il Goals Extrassottomodulo si integra anche con il modulo Punti utente .

    Vai al video degli obiettivi che include:

    • un'introduzione generale al modulo.
    • una dimostrazione per installarlo, configurarlo e usarlo.
    • esempi di come utilizza i moduli Regole per fare la sua magia (cioè per tenere traccia dei progressi di un utente per raggiungere i vari obiettivi).

Sistema di reputazione

Usando il modulo Risposte (Disclosure: ne sono un (co) manutentore) puoi " mettere un sistema di buona reputazione " (come nella tua domanda). Ecco alcuni dettagli al riguardo (dalla sua pagina del progetto):

Answers consente l'implementazione di un sistema di domande e risposte in un sito Drupal. Gli utenti possono inviare domande e altri utenti possono rispondere.

Vai alla sua pagina del progetto per maggiori dettagli. Visita il suo sito demo per una dimostrazione (in modalità di sola lettura per utenti anonimi) di elenchi basati su Views di:

Il modulo Risposte "core" abilita i tipi di contenuto Domanda e risposta , mentre le risposte sono visualizzate sotto la domanda a cui si riferiscono. Questi 2 tipi di contenuto sono disponibili, puoi gestirne i display, ecc.

Utilizzare i suoi sottomoduli per abilitare la funzionalità selezionata (in base ai requisiti di un sito), ovvero:

  • Risposte Risposta migliore , che consente di contrassegnare una delle risposte a una domanda specifica come la risposta migliore (accettata) (per visualizzare i segni di spunta blu a sinistra di ciascuna risposta e che viene sostituita da un segno di spunta verde quando viene contrassegnata una risposta come la migliore risposta).
  • Il tema Risposte , che trasforma la (piuttosto noiosa) visualizzazione vaniglia di una domanda (e le relative risposte sottostanti), in un modo più accattivante. Come la bolla arancione che viene aggiunta attorno alla domanda (per evidenziarla meglio).
  • Notifica risposte , per consentire agli utenti che hanno effettuato l'accesso di iscriversi alle domande selezionate, in modo che ricevano notifiche (utilizzando lo stack di messaggi ) quando le domande ricevono risposte.
  • Risposte Votazione , per implementare un sistema per l'upgrade o il downvote di Domande e / o Risposte (che utilizza ilmodulo Rate ).
  • Risposte ai punti utente , per aumentare o ridurre i " punti reputazione " (che utilizzano ilmodulo Punti utente ) su eventi come il voto positivo o negativo su una domanda o risposta o contrassegnare una risposta come " Migliore risposta ".

Gran parte della sua "logica di business" è implementata attraverso ogni sorta di regole configurabili (usando il modulo Regole ). Ad esempio, se non sei d'accordo con le regole predefinite su quanti "punti utente" sono concessi a una domanda (o risposta) votata (o ridotta), devi semplicemente usare l'interfaccia utente delle regole per ottimizzare quantità di tali punti in base alle vostre esigenze. Ad esempio: le domande di downvoting dovrebbero essere veramente libere (ovvero: il downvoter dovrebbe perdere punti nel farlo?).

Per completezza, di seguito è riportata una regola (nel formato di esportazione Regole), che viene utilizzata per assegnare punti "+15" all'autore di una risposta , insieme a punti "+2" per l'utente che contrassegna la risposta come accettata (= l'autore della domanda ), mentre la marcatura come tale viene eseguita contrassegnando la risposta come "Migliore risposta" (utilizzando il modulo Flag ):

{ "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"
        }
      }
    ]
  }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.