Permitindo que os usuários adicionem termos de taxonomia, mas exigindo que os administradores os verifiquem

8

Gostaria de permitir que os usuários adicionassem novos termos de taxonomia, mas gostaria que isso fosse verificado por um administrador. A maneira como eu imagino esse trabalho teria um usuário preenchendo um formulário que enviaria uma notificação ao administrador especificado; se o administrador aceitar, os usuários solicitarão que algum gancho ou método seja acionado, criando o novo termo de taxonomia.

Existe maneira de fazer esse tipo de coisa com Drupal?

Mike2012
fonte
2
Essa é definitivamente uma boa idéia para um novo módulo (não conheço nenhum módulo que ofereça essa funcionalidade atualmente). O melhor começo é provavelmente mexer hook_taxonomy_term_insert.
Paul

Respostas:

8

Fazendo um brainstorming aqui ... agora que a taxonomia faz parte do sistema da entidade, deve ser possível fazer algo assim:

  1. Instale http://drupal.org/project/workflow
  2. Adicione um campo à sua taxonomia chamado "Publicado" ou "Aprovado" que seja uma caixa de seleção booleana
  3. Configure um fluxo de trabalho que é acionado na criação do termo de taxonomia com Aprovado como um campo acessível apenas aos administradores
  4. Escreva um gancho em termos de taxonomia que remova um termo, a menos que seja aprovado (esta é a parte complicada - existem várias maneiras de obter termos de taxonomia, portanto, isso pode tornar essa abordagem discutível).

Alternativa: como você mencionou um usuário preenchendo um formulário - você pode facilmente ter um tipo de conteúdo chamado "Termo de Taxonomia" ou algo com os campos necessários de Taxonomia, em seguida, use o fluxo de trabalho / Regras para enviar o envio a um administrador, mediante aprovação, use Regras ou código personalizado para criar um novo termo de taxonomia.

Joshua Stewardson
fonte
11
Boa ideia. Para abordar o quarto ponto, você pode implementar facilmente hook_taxonomy_term_view_alter(), verificar se o termo é aprovado ou não e aplicar '#access' => FALSEà matriz de renderização para impedir que ela seja exibida. Isso deve funcionar em todo o sistema (exceto possivelmente para visualizações baseadas em taxonomia que usam campos em vez de modos de exibição e não fazem verificações extras).
Clive
3

Eu nunca fiz algo assim, mas minha abordagem seria criar um tipo de conteúdo "termo de taxonomia proposto" e modelar a lógica por meio do módulo Regras .

phaer
fonte