Consentire agli utenti di aggiungere termini di tassonomia ma richiedere agli amministratori di verificarli


8

Vorrei consentire agli utenti di aggiungere nuovi termini di tassonomia, ma vorrei che questo venisse verificato da un amministratore. Il modo in cui immagino che questo lavoro avrebbe un utente compilando un modulo che avrebbe inviato una notifica all'amministratore specificato; quindi, se l'amministratore ha accettato, gli utenti richiedono l'attivazione di qualche hook o metodo che creerebbe il nuovo termine di tassonomia.

C'è un modo per fare questo genere di cose con Drupal?


2
Questa è sicuramente una buona idea per un nuovo modulo (non sono a conoscenza di alcun modulo per offrire quella funzionalità al momento). Il miglior inizio è probabilmente quello di rovinare tutto hook_taxonomy_term_insert.
Paul,

Risposte:


8

Brainstorming qui ... ora che la tassonomia fa parte del sistema di entità, dovrebbe essere possibile fare qualcosa del genere:

  1. Installa http://drupal.org/project/workflow
  2. Aggiungi un campo alla tua tassonomia chiamato "Pubblicato" o "Approvato" che è una casella di controllo booleana
  3. Imposta un flusso di lavoro che viene attivato alla creazione del termine tassonomia con Approvato come campo accessibile solo agli amministratori
  4. Scrivi un gancio in termini di tassonomia che rimuova un termine a meno che non sia approvato (questa è la parte difficile - ci sono molti modi per arrivare a termini di tassonomia, quindi questo potrebbe rendere discutibile questo approccio).

Alternativa: poiché hai menzionato un utente che compila un modulo, potresti facilmente avere un tipo di contenuto chiamato "Termine della tassonomia" o qualcosa con i campi di tassonomia necessari, quindi utilizzare il flusso di lavoro / Regole per inviare l'invio a un amministratore, dopo l'approvazione utilizzare le Regole o codice personalizzato per creare un nuovo termine di tassonomia.


1
Bella idea Per affrontare il quarto punto, è possibile implementare facilmente hook_taxonomy_term_view_alter(), verificare se il termine è approvato o meno e applicare '#access' => FALSEall'array di rendering per impedirne la visualizzazione. Dovrebbe funzionare a livello di sistema (tranne forse per le viste basate sulla tassonomia che utilizzano i campi anziché le modalità di visualizzazione e non eseguono il controllo extra).
Clive

3

Non ho mai fatto una cosa del genere, ma il mio approccio sarebbe quello di creare un tipo di contenuto "termine di tassonomia proposto" e modellare la logica tramite il modulo Regole .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.