it-swarm.it

Aggiungi il modulo web al tipo di contenuto

Vorrei creare un modulo web e aggiungerlo al tipo di contenuto. quindi quando l'utente crea un nodo, il modulo web si aggiunge automaticamente al nodo (il modulo web è lo stesso per nodo del tipo di contenuto).

è possibile con webform 3?

5
user780

Puoi farlo per nodo riferimento. Aggiungi quel tipo di campo al tuo tipo di contenuto. Puoi sempre impostare il valore predefinito per aggiungere automaticamente il modulo web al nodo, ma non ti aggiunge automaticamente il modulo al modulo di modifica del nodo.

Lo collaudo utilizzando il riferimento al nodo e le viste, ma non visualizza un modulo web nella pagina di modifica del nodo (nella stessa forma).

Puoi provare a usare hook_from_alter, il che significa aggiungere programmaticamente campi dal modulo web di riferimento. L'IMO è l'unica soluzione o forse ci sono alcuni moduli per questo, ma non li ho cercati.

È necessario aggiungere la funzione di invio anche a questo modulo, poiché è necessario filtrare e salvare i campi del modulo Web anche a livello di codice. Controlla l'API WebForm per questo. Molto lavoro, forse dovresti pensare a una soluzione migliore senza programmare e usare il webform?

5
Codium

Mi sono appena imbattuto in questo quando cercavo qualcosa di simile. Esistono ovviamente molti modi per raggiungere questo obiettivo, e dipende anche un po 'da ciò che è effettivamente desiderato per un determinato caso d'uso. Con questo intendo se un nuovo modulo web deve essere collegato a ciascun nodo o se lo stesso modulo web deve essere mostrato su ciascuna pagina del nodo.

Se si desidera effettivamente collegare un nuovo modulo Web a ciascuno dei nodi, è possibile abilitare i moduli Web su quel tipo di contenuto (da Configurazione > Impostazioni del modulo web ). Ciò consente di creare un modulo per nodo su quel tipo di contenuto, ma non crea automaticamente il modulo per ciascun nodo, ma deve essere creato per nodo. Questo non è davvero utile se vuoi lo stesso modulo per ogni nodo, ma se vuoi che il modulo sia creato automaticamente, allora ci sono alcuni moduli che ti aiutano: https://drupal.org/project/webform_template e https://drupal.org/project/webform_default_fields

L'altro approccio è quello di creare un modulo web e mostrare quel modulo su ciascuna delle pagine del nodo. Ciò può essere ottenuto mostrando il modulo web come un blocco e specificando il blocco da visualizzare nell'area Contenuto e solo su un determinato tipo di contenuto. Abilitare innanzitutto l'uso di un modulo web come blocco modificando un nodo modulo web esistente, fare clic sulla scheda Modulo web , fare clic su Impostazioni modulo , apri Impostazioni avanzate e controlla Disponibile come blocco casella di controllo. Successivamente è possibile aggiungere normalmente il blocco dalla pagina Blocchi e limitare la visibilità a un determinato tipo di contenuto, ad esempio. Se è necessario accedere ad alcuni valori dal nodo in cui viene visualizzato il modulo nel modulo Web, è possibile aggiungerli come campi nascosti e creare un modulo personalizzato che li ottiene dal nodo e imposta i valori sul modulo. Ecco alcune discussioni ed esempi a riguardo: https://drupal.org/node/1470748

3
Cvuorinen

Puoi provare a usare hook_form_alter, il che significa aggiungere a livello di programmazione campi dal webform di riferimento. L'IMO è l'unica soluzione ma cos'è l'IMO.

0
megi