¿Cómo implementar un sistema basado en reputación con insignias en Drupal similar a los sitios de StackExchange?

16

Ganar insignias en StackExchange es, bueno, divertido. Pero aparte de eso, promueve la interacción de calidad de los usuarios y ayuda a eliminar el spam (nunca he visto una publicación de spam en el sitio).

Tengo un sitio web comunitario con aproximadamente 500 usuarios activos, pero los spammers comienzan a ser más prolíficos.

Me gustaría una forma de hacer que el sitio sea más atractivo y al mismo tiempo promover la misma calidad de interactividad.

¿Cómo recomendaría poner un buen sistema de reputación , así como un sistema de logro de objetivos ?

blue928
fuente
Con respecto a los spammers que se mencionaron en la pregunta original: todavía estarán allí. Así que estos spammers pueden tratarse siguiendo la sugerencia hecha en la respuesta dada por Free Radical en drupal.stackexchange.com/questions/121382/… .
gpruim

Respuestas:

17

Existe el módulo de Puntos de usuario y el módulo de Insignias de usuario , aunque la versión 7.x de Insignias de usuario aún no es adecuada para la producción (a partir del 4 de junio de 2012).

Afortunadamente, User Points se integra con el módulo Reglas , que le permite personalizar en gran medida las formas en que los usuarios obtienen (o posiblemente pierden) puntos.

También hay una colección de módulos contribuidos para puntos de usuario de estabilidad variable. Sin duda, puede configurar algunas cosas increíbles con estos módulos, pero asegúrese de probar cuidadosamente su implementación; aunque los módulos están bien escritos y son bastante estables, todavía hay muchas cosas que pueden salir mal, así que asegúrese de verificar que todo funcione correctamente.

Patrick Kenny
fuente
11

Para las insignias, está el módulo Logros .

El módulo Logros ofrece la capacidad de crear logros e insignias similares a los sistemas vistos en Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue y más. Para un sitio de Drupal, esto podría significar comentar un cierto número de veces, comenzar un tema del foro, visitar el sitio todos los días de la semana o cualquier otra cosa que pueda rastrearse y codificarse.

stevepurkiss
fuente
1

Su pregunta realmente consta de 2 partes, es decir, sobre cómo implementar:

  • un sistema de reputación , que es como una evaluación de varios usuarios sobre un usuario específico.
  • un sistema de logro de objetivos , que es como recompensar a un usuario después de completar varias tareas, desafíos, etc.

Siga leyendo para obtener más detalles sobre cómo implementar cada uno de los dos sistemas.

Sistema de logro de objetivos

Por lo general, puede elegir entre 2 módulos para este tipo de sistema, es decir:

  1. El módulo Logros , como ya se sugirió en otra respuesta. Este módulo depende en gran medida de la codificación personalizada para manejar muchas de las funciones.

  2. El módulo Objetivos (Divulgación: soy el encargado de mantenerlo), que puede usarse para incentivar cualquier cosa en su sitio, como votar, compartir contenido, crear relaciones, etc.

    Los objetivos y las tareas se implementan mediante entidades confiables. Algunos ejemplos de tareas a completar podrían ser:

    • Inicie sesión en el sitio una vez al día durante tres días consecutivos.
    • Publique varios nodos de los tipos de contenido seleccionados.
    • Haga una conexión de amigo en el sitio.
    • Etc.

    Puede personalizar los objetivos a través de "Administrar campos" y / o "Administrar pantalla". Todo se puede hacer solo con las funciones de creación de sitios (sin código personalizado), aunque también hay ganchos disponibles para integrarlo en la codificación personalizada. Por lo tanto, el módulo Objetivos se basa en la configuración de la interfaz de administración. Además, los objetivos y tareas dentro del módulo Objetivos son entidades confiables, por lo que tiene la flexibilidad de agregar campos adicionales e incorporar estas entidades en las Vistas . Usando el Goals Extrassubmódulo se integra con el módulo de Puntos de Usuario también.

    Dirígete al video de Objetivos que incluye:

    • Una introducción general al módulo.
    • una demostración para instalarlo, configurarlo y usarlo.
    • ejemplos de cómo usa los módulos de Reglas para hacer su magia (es decir, para rastrear el progreso de un usuario para lograr los diversos objetivos).

Sistema de reputación

Al usar el módulo de Respuestas (Divulgación: soy un (co) mantenedor del mismo) puedes " poner un buen sistema de reputación " (como en tu pregunta). Aquí hay algunos detalles al respecto (de su página de proyecto):

Respuestas permite la implementación de un sistema de preguntas y respuestas en un sitio de Drupal. Los usuarios pueden publicar preguntas y otros usuarios pueden responderlas.

Dirígete a su página de proyecto para más detalles. Visite su sitio de demostración para ver una demostración (en modo de solo lectura para usuarios anónimos) de listas basadas en Vistas de:

El módulo de respuestas "núcleo" habilita los tipos de contenido Pregunta y Respuesta , mientras que las Respuestas se muestran debajo de la Pregunta con la que se relacionan. Estos 2 tipos de contenido son fiebles, puede administrar sus pantallas, etc.

Utilice sus submódulos para habilitar la funcionalidad seleccionada (según los requisitos de un sitio), es decir:

  • Respuestas La mejor respuesta , que permite marcar cualquiera de las respuestas a una pregunta específica como la mejor respuesta (aceptada) (para mostrar las marcas de verificación azules a la izquierda de cada respuesta, y que se reemplaza por una marca de verificación verde cuando se marca una respuesta como la mejor respuesta)
  • El Tema de Respuestas , que transforma la exhibición de vainilla (bastante aburrida) de una Pregunta (y sus Respuestas relacionadasdebajo de ella), en una apariencia más atractiva. Como la burbuja naranja que se agrega alrededor de la pregunta (para resaltarla mejor).
  • Notificación de respuestas , para permitir que los usuarios registrados se suscriban a preguntas seleccionadas, de modo que reciban notificaciones (usando la pila de mensajes ) cuando las preguntas reciben respuestas.
  • Votación de respuestas , para implementar un sistema de votación positiva o negativa, ya sea Preguntas y / o Respuestas (que utiliza elmódulo Calificar ).
  • Respuestas de Puntos de usuario , para aumentar o disminuir los " puntos de reputación " (que utiliza elmódulo de Puntos de usuario ) en eventos comoel voto positivo o negativo en una pregunta o respuesta, o marcar una Respuesta como la " Mejor respuesta ".

Gran parte de su "lógica de negocios" se implementa a través de todo tipo de reglas configurables (utilizando el módulo Reglas ). Como ejemplo, si no está de acuerdo con las reglas listas para usar sobre la cantidad de "puntos de usuario" otorgados a una pregunta (o respuesta) votada (o votada), simplemente use la IU de reglas para ajustar cantidad de tales puntos a sus requerimientos. Por ejemplo: ¿deberían las preguntas de votación descendente ser realmente gratuitas (es decir: ¿Debería el votante perder algún punto al hacerlo?).

En aras de la exhaustividad, a continuación se muestra una regla (en formato de exportación de Reglas), que se utiliza para otorgar '+15' puntos al autor de una Respuesta , junto con '+2' puntos para el usuario que marca esa respuesta como aceptada (= el autor de la Pregunta ), mientras que marcarlo como tal se marca marcando esa Respuesta como 'Mejor respuesta' (usando el módulo Marcar ):

{ "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
fuente