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:
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.
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 Extras
submó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"
}
}
]
}
}