Como mudar um usuário para uma função diferente com base no número de suas postagens?

7

Existem técnicas disponíveis para colocar um usuário em uma função específica em uma função diferente automaticamente depois que eles fizerem um número X de postagens (tópicos principais do fórum ou respostas)?

Gostaria de implementar uma funcionalidade em que, quando os usuários se registram no meu site pela primeira vez, eles são colocados em uma função com privilégios limitados, mas após um certo número de postagens no fórum (novo tópico ou respostas aos existentes), eles são colocados em outro função que não requer CAPTCHA e eles podem postar links etc. AFI usando o núcleo Forume o módulo Fórum Avançado .

Beebee
fonte

Respostas:

9

Eu encontrei um módulo User Stats que se integra às regras e fornece tokens como [user: post-count] que podem ser usados ​​para comparação numérica. Espero que isso ajude outra pessoa.

Beebee
fonte
2

O módulo User Stats possui apenas uma versão de desenvolvimento para o D7 (suponho que esta pergunta seja sobre o D7). No entanto, sua pergunta parece ser uma base de dados perfeita para o módulo Objetivos (divulgação: eu sou o mantenedor). Abaixo está uma configuração possível para seu caso específico, usando Metas .

Configure uma meta

Navegue até o caminho relativo admin/config/goals/managee use o link "Adicionar uma meta" para definir apenas uma meta , com uma descrição (digamos):

Faça X um número de postagens (tópicos principais do fórum ou respostas) .

Configurar tarefas

Para atingir a meta "criar um número X de postagens (tópicos principais do fórum ou respostas)", defina as Tarefas a serem concluídas.

  • Poste um certo número de tópicos principais do fórum.
  • Poste um certo número de respostas.

Uma maneira mais avançada de usar (configurar) metas , é configurar tarefas como:

  • algumas tarefas podem precisar ser repetidas várias vezes.
  • algumas tarefas podem exigir algum tempo para expirar entre duas tarefas similares (por exemplo: se uma tarefa é executada várias vezes ao dia, apenas a primeira conta).
  • ... (há outros ...).

Acompanhe o progresso ao executar tarefas

Para rastrear o progresso feito por um único usuário para concluir alguma tarefa, você só precisa escrever as regras apropriadas, usando o módulo Regras , para registrar eventos relevantes acontecendo no seu site, relacionados à conclusão das várias tarefas.

Para os objetivos / tarefas descritos acima como exemplo, você precisaria apenas de 2 regras (extremamente básicas), que seriam acionadas da seguinte forma:

  • Depois de postar um tópico do fórum principal.
  • Depois de postar uma resposta.

Observe que essas 2 regras podem ser reutilizadas para medir o progresso em várias metas (por exemplo, se sua meta tiver uma tarefa como "após postar 1 resposta" e uma segunda meta tiver uma tarefa como "após postar 10 respostas").

Além disso, os desafios acima são bastante simples (básicos) como exemplos de desafios. Mas você pode fazer isso para praticamente qualquer entidade para a qual você pode pensar em uma maneira de rastreá-las através do módulo Regras.

Use regras para processar metas concluídas

Após todas as tarefas específicas de uma meta serem concluídas por um usuário, a meta é marcada automaticamente como concluída. Porém , há mais: você também pode criar regras adicionais que serão acionadas (evento de regras) quando uma meta for concluída por um usuário. Com isso, a resposta para sua pergunta é extremamente fácil: execute uma ação de regras para " ... mudar o usuário para uma função diferente " ... que é exatamente do que se trata sua pergunta, não?

Mais do mesmo

Em vez da descrição (chata) da meta acima, você poderia ter usado uma descrição da meta como (digamos) " Usuário participante ". Qual BTW também poderia ser uma boa descrição do papel a ser concedido.

Se você definir (digamos) mais 3 metas (semelhantes), com cada uma delas um conjunto apropriado de tarefas a serem concluídas, poderá usar a mesma técnica para metas (e / ou funções) rotuladas como algo semelhante (se parecerem familiar a algo no Drupal.SE, que é puramente um acidente):

  • Usuário fiel.
  • Usuário estabelecido.
  • Usuário Confiável.
  • Moderador.

Mais informações

Consulte minha resposta em " Como implementar a gamificação em um site Drupal e conceder incentivos? " Para obter detalhes adicionais sobre o módulo Objetivos .

Nota: O uso de metas requer apenas tarefas típicas de administração (configuração), embora ele também venha com vários ganchos para o desenvolvimento de módulos personalizados (se você desejar).

Pierre.Vriens
fonte