Benutzer können Taxonomiebegriffe hinzufügen, Administratoren müssen diese jedoch überprüfen

8

Ich möchte Benutzern erlauben, neue Taxonomiebegriffe hinzuzufügen, möchte jedoch, dass dies von einem Administrator überprüft wird. So wie ich mir das vorstelle, muss ein Benutzer ein Formular ausfüllen, das eine Benachrichtigung an den angegebenen Administrator sendet. Wenn der Administrator die Anforderung des Benutzers akzeptiert, wird ein Hook oder eine Methode ausgelöst, die den neuen Taxonomiebegriff erstellt.

Gibt es eine Möglichkeit, so etwas mit Drupal zu machen?

Mike2012
quelle
2
Das ist definitiv eine gute Idee für ein neues Modul (mir ist derzeit kein Modul bekannt, das diese Funktionalität bietet). Der beste Start ist wahrscheinlich, damit herumzuschrauben hook_taxonomy_term_insert.
Paul

Antworten:

8

Brainstorming hier ... jetzt, da Taxonomie Teil des Entitätssystems ist, sollte es möglich sein, so etwas zu tun:

  1. Installieren Sie http://drupal.org/project/workflow
  2. Fügen Sie Ihrer Taxonomie ein Feld mit dem Namen "Veröffentlicht" oder "Genehmigt" hinzu, das ein boolesches Kontrollkästchen ist
  3. Richten Sie einen Workflow ein, der bei der Erstellung von Taxonomie-Begriffen mit Genehmigt als Feld ausgelöst wird, auf das nur Administratoren zugreifen können
  4. Schreiben Sie einen Haken in Taxonomiebegriffe, der einen Begriff entfernt, sofern er nicht genehmigt wurde (dies ist der schwierige Teil - es gibt viele Möglichkeiten, zu Taxonomiebegriffen zu gelangen, sodass dieser Ansatz möglicherweise in Frage gestellt wird).

Alternative: Da Sie erwähnt haben, dass ein Benutzer ein Formular ausfüllt, können Sie ganz einfach einen Inhaltstyp namens "Taxonomy Term" oder etwas mit den erforderlichen Taxonomy-Feldern verwenden und dann mithilfe der Workflow / Regeln die Übermittlung an einen Administrator senden, wenn die Genehmigung die Regeln verwendet oder benutzerdefinierter Code, um einen neuen Taxonomiebegriff zu erstellen.

Joshua Stewardson
quelle
1
Gute Idee. Um den vierten Punkt anzusprechen, können Sie ihn einfach implementieren hook_taxonomy_term_view_alter(), prüfen, ob der Begriff genehmigt wurde oder nicht, und '#access' => FALSEauf das Render-Array anwenden , um zu verhindern, dass er angezeigt wird. Dies sollte systemweit funktionieren (außer möglicherweise für taxonomiebasierte Ansichten, die Felder anstelle von Ansichtsmodi verwenden und keine zusätzlichen Überprüfungen durchführen).
Clive
3

Ich habe so etwas noch nie gemacht, aber mein Ansatz wäre es, einen Inhaltstyp "vorgeschlagener Taxonomiebegriff" zu erstellen und die Logik über das Modul "Regeln " zu modellieren .

Phaer
quelle