Como implementar um sistema baseado em reputação com emblemas no Drupal, semelhante aos sites StackExchange?

16

Ganhar distintivos no StackExchange é muito divertido. Além disso, promove interação de qualidade dos usuários e ajuda a eliminar o spam (nunca vi uma postagem de spam no site).

Eu tenho um site da comunidade com cerca de 500 usuários ativos, mas os spammers estão começando a se tornar mais prolíficos.

Eu gostaria de uma maneira de tornar o site mais atraente e promover a mesma qualidade de interatividade.

Como você recomendaria colocar um sistema de boa reputação e um sistema de realização de metas ?

blue928
fonte
Em relação aos spammers mencionados na pergunta original: eles ainda estarão lá. Portanto, esses spammers podem ser tratados seguindo a sugestão feita na resposta dada pela Free Radical em drupal.stackexchange.com/questions/121382/… .
Gpruim

Respostas:

17

Há o módulo Pontos do usuário e o módulo Crachás do usuário , embora a versão 7.x dos Crachás do usuário ainda não seja adequada para produção (em 4 de junho de 2012).

Felizmente, o User Points se integra ao módulo Rules , que permite personalizar muito a maneira como os usuários ganham (ou possivelmente perdem) pontos.

Há também uma coleção de módulos contribuídos para pontos de usuário de estabilidade variável. Você certamente pode configurar algumas coisas incríveis com esses módulos, mas certifique-se de testar cuidadosamente sua implementação - embora os módulos sejam bem escritos e razoavelmente estáveis, ainda há muito que pode dar errado, portanto, verifique se tudo funciona corretamente.

Patrick Kenny
fonte
11

Para os crachás, existe o módulo Conquistas .

O módulo Conquistas oferece a capacidade de criar conquistas e emblemas semelhantes aos sistemas vistos no Xbox 360, Playstation 3, Quadrangular, Gowalla, GetGlue e muito mais. Para um site Drupal, isso pode significar comentar várias vezes, iniciar um tópico no fórum, visitar o site todos os dias da semana ou qualquer outra coisa que possa ser rastreada e codificada.

stevepurkiss
fonte
1

Sua pergunta realmente consiste em 2 partes, ou seja, sobre como implementar:

  • um sistema de reputação , que é como uma avaliação de vários usuários sobre um usuário específico.
  • um sistema de realização de metas , que é como recompensar um usuário após concluir várias tarefas, desafios, etc.

Continue lendo para obter mais detalhes sobre como implementar cada um dos dois sistemas.

Sistema de realização de metas

Normalmente, existem 2 módulos para você escolher para esse tipo de sistema, ou seja:

  1. O módulo Conquistas , conforme sugerido em outra resposta já. Este módulo depende muito da codificação personalizada para lidar com muitas das funções.

  2. O módulo Objetivos (Divulgação: eu sou o mantenedor), que pode ser usado para incentivar qualquer coisa no seu site, como votar, compartilhar conteúdo, criar relacionamentos etc.

    Objetivos e tarefas são implementados usando entidades de campo. Alguns exemplos de tarefas a serem concluídas podem ser:

    • Faça login no site uma vez por dia durante três dias consecutivos.
    • Poste vários nós dos tipos de conteúdo selecionados.
    • Faça uma conexão de amigo no site.
    • Etc.

    Você pode personalizar as metas por meio de "Gerenciar campos" e / ou "Gerenciar exibição". Tudo pode ser feito apenas com os recursos de criação do site (nenhum código personalizado envolvido), embora haja ganchos disponíveis para integrá-lo também na codificação personalizada. Portanto, o módulo Objetivos é criado usando a configuração da interface administrativa. Além disso, as metas e tarefas no módulo Metas são entidades que podem ser colocadas em campo, assim você tem a flexibilidade de adicionar campos adicionais e incorporar essas entidades nas Views . Usando o Goals Extrassubmódulo, ele também se integra ao módulo Pontos do Usuário .

    Acesse o vídeo de metas, que inclui:

    • uma introdução geral ao módulo.
    • uma demonstração para instalar, configurar e usá-lo.
    • exemplos de como ele usa os módulos de Regras para fazer sua mágica (ou seja, acompanhar o progresso de um usuário para atingir os vários objetivos).

Sistema de reputação

Ao usar o módulo Answers (Divulgação: eu sou um (co) mantenedor), você pode " criar um sistema de boa reputação " (como na sua pergunta). Aqui estão alguns detalhes sobre ele (na página do projeto):

O Answers permite a implementação de um sistema de perguntas e respostas em um site Drupal. Os usuários podem postar perguntas e outros usuários podem respondê-las.

Vá para a página do projeto para obter mais detalhes. Visite o site de demonstração para uma demonstração (no modo somente leitura para usuários anônimos) de listas baseadas em Views de:

O módulo de respostas "principal" habilita os tipos de conteúdo Pergunta e Resposta , enquanto as Respostas são exibidas abaixo da Pergunta à qual estão relacionadas. Esses dois tipos de conteúdo são passíveis de faturação, você pode gerenciar suas exibições etc.

Use seus submódulos para ativar a funcionalidade selecionada (com base nos requisitos de um site), ou seja:

  • Respostas Melhor resposta , que permite marcar qualquer uma das respostas para uma pergunta específica como a melhor resposta (aceita) (para exibir as marcas de seleção azuis à esquerda de cada resposta e que é substituída por uma marca de seleção verde quando uma resposta é marcada como a melhor resposta).
  • O Tema Answers , que transforma a exibição de baunilha (bastante chata) de uma Pergunta (e suas respostas relacionadasabaixo), em uma aparência e sensação muito mais atraente. Como a bolha laranja adicionada em torno da pergunta (para melhor realçá-la).
  • Notificação de respostas , para permitir que os usuários conectados se inscrevam nas perguntas selecionadas, para que recebam notificações (usando a Pilha de mensagens ) quando as Perguntas receberem respostas.
  • Votação de respostas , para implementar um sistema de votação positiva ou negativa de perguntas e / ou respostas (que usa omódulo Taxa ).
  • Responde aos pontos de usuário , para aumentar ou diminuir os " pontos de reputação " (que usa omódulo Pontos de Usuário ) em eventos como votação para cima ou para baixo em uma pergunta ou resposta ou marcar uma resposta como a " Melhor resposta ".

Grande parte de sua "lógica de negócios" é implementada através de todos os tipos de regras configuráveis ​​(usando o módulo Regras ). Como exemplo, se você não concordar com as regras prontas para uso sobre quanto "pontos de usuário" são concedidos a uma pergunta (ou resposta) votada (ou reduzida), basta usar a interface do usuário de regras para ajustar o quantidade desses pontos às suas necessidades. Por exemplo: as perguntas de redução de votos devem ser realmente gratuitas (ou seja: o voto de redução deve perder pontos ao fazê-lo?).

Por uma questão de integridade, abaixo está uma regra (no formato de exportação de Regras), que é usada para conceder pontos '+15' ao autor de uma Resposta , juntamente com pontos '+2' para o usuário que marca essa resposta como aceita (= o autor da pergunta ), enquanto marcá-lo como tal é feito sinalizando essa resposta como 'Melhor resposta' (usando o módulo Sinalizador ):

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