Salve a tutti,
finalmente sto iniziando a godere a pieno di Drupal (lo so, lo so, la curva di apprendimento è ancora dura...però comincio a "tirare fuori il meglio" dalla piattaforma).
Oggi, però, la domanda riguarda webform. Ho creato diversi forms con questo (splendido) modulo. Ma ho un piccolo problema.
se creo un campo e lo contrassegno come "obbligatorio" e provo ad inviare il modulo senza compilarlo Webform mi ridireziona alla pagina contenente il modulo stesso con i valori precedentemente inseriti (come è giusto che sia, altrimenti che senso avrebbe dichiarare un campo come obbligatorio se fosse possibile inviare il form senza compilarlo? :-)).
Il problema è questo: come fare ad aggiungere un messaggio d'errore?
Facciamo un esempio: mettiamo il caso che nel mio form ci sia un campo "nome" obbligatorio. L'utente non lo compila e prova ad inviare il form. Come faccio a far mostrare a webform un messaggio del tipo: "Attenzione: devi inserire il tuo nome"?
Mi sembra strano che il modulo non abbia una feature del genere; ma soprattutto mi sembra assurdo che non venga aggiunta dal modulo "webform validation" (che sto usando nei forms!).
Webform e messaggi d'errore, come fare?
Ven, 26/08/2011 - 16:28
#1
Webform e messaggi d'errore, come fare?
Messaggi di errore non mi sembra ne dia, caso mai controlla di stampare $messages nel tpl del tema, aggiunge però una classe che puoi usare per contarnare di rosso i campi mancanti
http://www.chromeos.eu
Ciao Ealmuno,
grazie per la dritta...
Il problema a questo punto è molto grave: non posso usare una soluzione del genere, in quanto il sito dovrà essere pienamente accessibile e questa soluzione non lo è...
Giocoforza ho bisogno dei messaggi d'errore. Ho cercato anche su drupal.org, ma moduli scritti per questo scopo non ne trovo...
Webform mi è molto comodo, non vorrei dover riconvertire tutti i moduli utilizzando i vari Fields del core di drupal 7...
Crei un div vuoto sul webform che conterrà gli errori e con jquery puoi poi metterci gli errori in base alla classe del campo.
http://javascript.html.it/guide/leggi/168/guida-jquery/
Per l'accessibilità hai ragione, ma potresti anche mettere un testo indicando di compialre tutti i campi, purtroppo a livello di accssiblità si sta andando indietro e drupal è uno di quelli presi meglio.
Altra alternativa farselo a mano ed usare un bell'include.
http://www.chromeos.eu
Devo darti ragione: come accessibilità andiamo sempre più in dietro anzicché avanti...
La cosa che mi conforta, da persona che "ha bisogno di pretendere un Web accessibile" (sono non vedente, quindi utilizzo uno screenreader) è un post trovato sul blog di Dries Buytaert, il quale manifesta chiaramente la volontà di rendere Drupal "as accessible as it can be"...
Per quanto riguarda la soluzione con jquery: ci stavo pensando, ma non ho proprio "un buon rapporto" con questo framework...
Qualora convertissi il modulo da Webform a Fields potrei gestire gli errori? (anche se non amo troppo questa soluzione...ma va bè, meglio dell'altra).
Poi salta il problema di inviare le email e credo sia più complicato, almeno che non si voglia gestire il tutto con la creazione di un nuovo nodo ed eseguire un'azione condizionata che invia l'email, ma per me jquery è la scelta migliore.
Comunque ho trovato questo http://drupal.org/node/1125622 che almeno aggiunge il title e rende più accessibile.
E questo http://drupal.org/project/accessible che dovrebbe aiutare anche in generale.
Con l'html5 e l'abuso di javascript l'accessibilità è presa male, fai conto che con wordpress non si possono nemmeno gestire i blocchi (che loro chiamano widget) a causa della sola interfaccia drag and drop.
http://www.chromeos.eu
Come non darti torto? Prima di trovare Drupal stavo valutando la scelta wordpress, ma ho abbandonato quel CMS per una serie di motivi (tra cui quello da te citato). Comunque, giusto per restare in tema drag and drop, neanche lo stesso Webform è troppo "accessibile": non riesco in nessun modo a riordinare i campi di un form dopo averlo creato (solo ed esclusivamente drag and drop...impossibile da gestire!). Credo che per questo una feature request la farò, io sono particolarmente intollerante al Web inaccessibile... (il sito che sto costruendo servirà proprio per "combattere" le inaccessibilità, o almeno per provarci).
Darò un'occhiata ai link che mi hai postato e ti farò sapere...
Per quello puoi solo inserirle con l'ordine con cui vengano mostrare, ti conviene si fare una richiesta di aggiungere una casella peso, che tra l'altro dovrebbe praticamente già esistente.
http://www.chromeos.eu
Nel caso decidessi di usare fields era proprio questa la cosa a cui pensavo: lasciare l'invio delle email al modulo trigger.
Comunque, non vorrei usare fields perché:
- Le funzioni di analisi dei risultati ricevuti tramite webform sono perfette per i miei scopi (lo so che potrei ottenere gli stessi risultati con views, ma sarebbe lavoro in più);
- usando fields ogni "invio" diventerebbe un nodo. Potrei anche tollerarlo finché si trattasse di qualche messaggio di contatto... Ma quando si tratterà di centinaia e centinaia di partecipazioni ad un sondaggio? Nella tabella "contenuti" avrei talmente tanti nodi da non capirci più niente.....
Non so, ora comincio seriamente a dubitare....
jquery mi fa un po' paura per la complessità...
Mi sa che su questo problema ci dormirò su! :-)