Permettre aux utilisateurs d'ajouter des termes de taxonomie mais obliger les administrateurs à les vérifier

8

Je voudrais permettre aux utilisateurs d'ajouter de nouveaux termes de taxonomie, mais je voudrais que cela soit vérifié par un administrateur. La façon dont j'envisage ce travail aurait un utilisateur remplissant un formulaire qui enverrait une notification à l'administrateur spécifié; ensuite, si l'administrateur acceptait que les utilisateurs demandent un hook ou une méthode qui déclencherait le nouveau terme de taxonomie.

Est-il possible de faire ce genre de chose avec Drupal?

Mike2012
la source
2
C'est certainement une bonne idée pour un nouveau module (je ne connais aucun module pour offrir cette fonctionnalité actuellement). Le meilleur point de départ est probablement de déconner avec hook_taxonomy_term_insert.
Paul

Réponses:

8

Remue-méninges ici ... maintenant que la taxonomie fait partie du système d'entités, il devrait être possible de faire quelque chose comme ceci:

  1. Installez http://drupal.org/project/workflow
  2. Ajoutez un champ à votre taxonomie appelé "Publié" ou "Approuvé" qui est une case à cocher booléenne
  3. Configurer un workflow qui est déclenché lors de la création d'un terme de taxonomie avec Approuvé comme champ accessible uniquement aux administrateurs
  4. Écrivez un crochet dans les termes de taxonomie qui supprime un terme à moins qu'il ne soit approuvé (c'est la partie délicate - il existe de nombreuses façons d'obtenir des termes de taxonomie, donc cela pourrait rendre cette approche théorique).

Alternative: Puisque vous avez mentionné un utilisateur remplissant un formulaire - vous pourriez assez facilement avoir un type de contenu appelé "Terme de taxonomie" ou quelque chose avec les champs de taxonomie nécessaires, puis utilisez le workflow / les règles pour envoyer la soumission à un administrateur, après approbation, utilisez les règles ou un code personnalisé pour créer un nouveau terme de taxonomie.

Joshua Stewardson
la source
1
Bonne idée. Pour résoudre le quatrième point, vous pouvez facilement l'implémenter hook_taxonomy_term_view_alter(), vérifier si le terme est approuvé ou non, et appliquer '#access' => FALSEau tableau de rendu pour l'empêcher d'être affiché. Cela devrait fonctionner à l'échelle du système (sauf éventuellement pour les vues basées sur la taxonomie qui utilisent des champs au lieu des modes d'affichage, et ne font pas de vérification supplémentaire).
Clive
3

Je n'ai jamais fait quelque chose comme ça, mais mon approche serait de créer un type de contenu "terme de taxonomie proposé" et de modéliser la logique via le module Rules .

phaer
la source