Personalizzare add/edit di un nodo in funzione dell'utente

8 contenuti / 0 new
Ultimo contenuto
Personalizzare add/edit di un nodo in funzione dell'utente

Salve,

ritorno sull'argomento in quanto avrei bisogno di una buona spiegazione del meccanismo di personalizzazione della form di un nodo, sia in fase di iserimento, che in quella di editing.
Lo scenario in cui sto utilizzando drupal è il seguente :
devo gestire delle informazioni in una catena di montaggio relative ai pezzi in lavorazione. Ogni pezzo è prodotto da un reparto e le informazioni collegate devono essere modificabili, in modo completo a chi vi è impiegato, e in modo parziale a chi non lo è.

Per semplicità ho creato un contenuto di tipo "prodotto" con i seguenti campi:
1) campo_A ( modificabile da alcuni reparti )
2) campo_B ( modificabile solo dai dipendenti che hanno fabbricato il prodotto )
3) campo_C ( modificabile solo dai dipendenti che hanno fabbricato il prodotto )
4) Reparto ( visibile solo all'amministratore )

Tutti gli utenti hanno delle informazioni aggiuntive inserite utilizzando il modulo "profile" e tra queste vi è il reparto in cui sono impiegate. Quest'ultima è anche il valore di default del campo n. 4 di cui sopra.

Il mio problema è che in fase di editing non riesco a controllare la form.

Per completezza faccio presente che sto utilizzando la ver. 6.x .

Andrea Venuti

Grazie e buon lavoro.

Drupal Version:

Cosa stai usando per controllare la visibilità dei campi da modificare?

Ciao, se ti riferisci al tema sto usando newswire, altrimenti non ho capito la domanda.

Penso che tu possa agire in due modi:
- creare un mini modulo per modificare il form tramite l'hook_form_alter
http://dinamicamente.org/blog/come-modificare-i-form-drupal-6
http://www.lullabot.com/articles/modifying-forms-drupal-5-and-6

- creare un template apposito per quel determinato tipo di contenuto
http://drupal.org/node/601646

http://drupal.org/project/field_permissions «Author-level permissions allow viewing and editing of fields based on who the entity owner is.»

Grazie del suggerimento, ma non penso che sia la soluzione al mio problema. Tra l'altro quest'ultimo era mal esposto e perciò mi sà che ti ho indotto in errore. Di seguito riporto alcune informazioni aggiuntive.
Il tipo di nodo è unico per tutti i reparti e chi publica sceglie, mediante caselle di selezione ( campo visibilità ), quali reparti possono visualizzare il campo A. A me servirebbe poter controllare la visualizzazione dei campi in funzione del reparto a cui è collegato l'utente che richiede un determinato nodo.

Grazie

potresti fare così: crei un content type "reparto"; crei 2 campi node reference che si collegano al nuovo content type, uno nel profilo utente, uno nel content type di cui hai parlato fino ad adesso.

A questo punto, con hook_form_alter() (funzione inserita in un modulo che andrai a creare), quando si sta visualizzando il form di modifica di questo content type, fai un confronto tra i 2 campi node reference (quello del nodo in fase di edit, quello dell'utente collegato) e se non coincidono nascondi il campo

Grazie per la risposta. Per adesso non ho creato nessun modulo ma ho utilizzato l'hook_form_alter di node.module. Questo solo a scopo di prova ma ho in programma di scrivere un modulo. Appena ho un po di tempo ti riporto nel dettaglio l'attività svolta.