Buongiorno,

come si capisce dal titolo di questo post, vorrei chiedere come si possono mettere in relazione due tipi di contenuto. Faccio un esempio pratico per descrivere di cosa avrei bisogno: ho realizzato un content type che riguarda gli eventi. Attraverso questo un utente autenticato puó creare l'evento, altri utenti potranno quindi vedere l'evento ma non modificarlo e iscriversi al medesimo. Come si puó fare per far si che gli utenti possano iscriversi a questo evento?

Io ho sperimentato un sistema, questo sembra funzionare, solo ho alcune piccole sbavature che non mi piacciono... in seguito descrivo cosa ho testato: all'interno di questo content type per l'evento, oltre a tutti i field che servono per descrivere l'evento (luogo, data, locandina, ecc. ecc.), ho inserito un field di tipo reference webform submission, che indica come webform di default una determinata webform che ho creato in precedenza (diciamo che si chiama "team"). Questa webform contiene anchessa un reference dei contenuti dell'utente che si vuole iscrivere, diciamo che il contenuto si chiama "binomi".

Quando un utente autenticato visualizza l'evento pubblicato da un altro utente, viene consentita l'introduzione dell'adesione all'evento tramite il webform "team" che ho creato. La cosa funziona egregiamente tanto che posso addirittura controllare l'unicitá dell'iscrizione attraverso il campo unique della webform. Successivamente con una query al database (in un ambiente esterno a Drupal) posso estrarre dalle tabelle delle webform i dati in relazione, cioé le submission che contengono la relazione tra i nodi dei contenuti degli utenti che si sono iscritti (binomi) e il numero di nodo del contenuto relativo all'evento. In questo modo posso sapere chi si é iscritto all'evento.

L'unico dettaglio che non mi soddisfa é che quando un utente crea l'evento, il field webform visualizza la webform di default (specificata in fase di creazione del field), cioé "team" ma se l'utente clicca sulla lista puó cambiare la webform e questo non va bene, sarebbe necessario che fosse obbligato ad usare per forza quella, cioé "team". A tal proposito chiedo se qualcuno sa se c'é un modo per impedirlo? Bisogna sempre agire sui permessi? Oppure attivare un filtro contestuale?

Secondo voi questa strategia é buona o ci sono dei metodi migliori?

Grazie in anticipo!