23 Febbraio, 2013 | Di Wellnet

Webform tips & tricks: autocomplete field

Webform tips & tricks: autocomplete field

In questo articolo vedremo come estendere il popolare modulo Webform implementando il widget AJAX autocomplete di un field.

Come sempre succede in Drupal, possiamo ottenere lo stesso risultato percorrendo strade diverse: possiamo scrivere del codice di nostro pugno oppure cercare un modulo che faccia più o meno quello che ci serve.

Partiamo dal metodo custom: sfruttiamo una peculiarità già presente nativamente in Drupal.

Per fare questo andremo a creare un modulo chiamato Autocomplete Field Webform.

Questo modulo si compone di due file: autocomplete_field_webform.info e autocomplete_field_webform.module. Sia autocomplete_field_webform.info e autocomplete_field_webform.module risiedono in una cartella denominata autocomplete_field_webform che metteremo in sites/default/modules/custom per differenziarlo dai moduli dei contributors (come Webform).

Ecco il codice:

autocomplete_field_webform.info
 
autocomplete_field_webform.module
 
'Node autocomplete', 'page callback' => 'node_autocomplete', 'access callback' => 'user_access', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); return $items; } /** * Recupero un JSON object * contenente i suggerimenti * per i node title da mostrare. */ function node_autocomplete($string = '') { $matches = array(); $result = db_select('node') ->fields('node', array('title')) ->condition('title', '%'.$string.'%','LIKE') ->range(0, 20) ->execute(); foreach ($result as $node) { $matches[$node->title] = check_plain($node->title); } drupal_json_output($matches); }

L'altra soluzione è prendere in considerazione un modulo contrib che fa una cosa simile: si chiama Webform Autocomplete e aggiunge un nuovo componente da utilizzare nei nostri form, il componente banalmente si chiama Autocomplete.

Vantaggi: non richiede nessuna conoscenza di come si realizza un modulo, possiamo settare che l'autocomplete vada a pescare all'interno di tutti i risultati delle webform precedentemente inviate. Svantaggi: poco flessibile. Tramite il modulo custom possiamo andare ad interrogare qualsiasi tabella del database.

Wellnet
Wellnet

Wellnet è una nuova realtà nel panorama delle agenzie digitali italiane: 70 expertise complementari e integrate, con sedi a Milano, Torino Cuneo e Modena, frutto della fusione di tre realtà di successo preesistenti.