13 Gennaio, 2012 | Di

Javascript in Drupal7 - parte 1

Javascript in Drupal7 - parte 1

Drupal mette a disposizione degli utenti un nutrito numero di funzioni javascript già pronte per l'uso e basate sulla libreria jQuery. I menù contestuali per la modifica di un nodo o blocco, oppure l'intestazione delle tabelle che viene mantenuta anche scorrendo la pagina sono solo alcuni degli esempi. Possiamo trovare i file che contengono queste funzionalità all'interno della cartella misc nella root del sito, verranno inseriti automaticamente nella pagina se richiesti.

Questo è il primo di una serie di tre articoli dedicati all'uso di javascript in Drupal 7.

Aggiungere javascript in moduli e temi Spesso ci si trova nella situazione in cui è necessario realizzare il proprio script e inserirlo all'interno delle pagine del sito. Il nuovo script può essere inserito a livello di modulo o di tema custom. A livello di modulo abbiamo due opzioni, utilizzare la funzione drupal_add_js oppure nel caso di javascript da utilizzarsi in un form aggiungere lo script all'array $form. La funzione drupal_add_js nella sua versione più semplice può essere usata in questo modo:

drupal_add_js(
  drupal_get_path('module', 'nome_modulo') . '/js/script.js');

così facendo stiamo inserendo, oltre ai file javascript già presenti, anche il file script.js che si trova nella cartella js all'interno del modulo nome_modulo (ovunque questo modulo si trovi tra le varie posizioni ammesse da Drupal). Se invece il javascript contiene del codice per validare un form, ad esempio, è meglio inserirlo così:

$form['#attached']['js'][] = 
  drupal_get_path('module', 'nome_modulo') . '/js/script.js';

dove $form è l'array che contiene la struttura del form stesso; così facendo sfruttiamo al meglio il meccanismo di Drupal per il caching dei form. Per quanto riguarda i temi la questione è più semplice, basta infatti aggiungere una riga nel file .info che descrive il tema a Drupal:

scripts[] = js/script.js

Qualunque sia la strada scelta quello che si ottiene è una riga del tipo:

<script type="text/javascript" 
  src="/sites/all/modules/custom/nome_modulo/js/script.js?u"></script>

nella sezione head della pagina (ovviamente l'attributo src punterà alla posizione corretta del file). Oltre al nostro script vengono caricati nella pagina almeno questi altri:

* misc/jquery.js?v=1.4.4 * misc/jquery.once.js?v=1.2 * misc/drupal.js * misc/jquery.cookie.js?v=1.0 Il parametro v identifica la versione della libreria da cui si evince che il file di jQuery usato in Drupal 7 è molto indietro rispetto all'ultima versione stabile; nel caso ci interessino funzionalità più recenti possiamo usare il modulo jquery_update (http://drupal.org/project/jquery_update) per portarlo alla versione 1.5.2, ma non di più. Gli altri file aggiunti sono i due plugin di jQuery once e cookie e la libreria con tutte le funzioni di base drupal.js.

 

Javascript in Drupal7 - Parte 2

Javascript in Drupal7 - Parte 3

Potrebbe interessarti: