PHP

Guida per drupal, come redirigere un utente dopo il login in Drupal

Dopo aver effettuato il login in un sito sviluppato in Drupal, viene visualizzata la pagina del profilo utente come azione di default. Spesso e volentieri, invece, c'è la necessità di tornare alla pagina in cui l'utente era prima del login oppure di redirigerlo in una pagina specifica. Per questo motivo esiste il modulo drupal login destination.

Guida per drupal, come redirigere un utente dopo il login in Drupal

Guida per migrare il modulo image ad imagefield

Il modulo Drupal image è il plugin storico per la gestione delle immagini e delle gallerie fotografiche per il CMS Drupal. Con il passare del tempo però, sono nate delle soluzioni alternative per gestire degli album di foto all'interno di un sito web. La soluzione che attualmente preferisco è l'uso combinato di CCK con i moduli imagefield, imagecache e l'immancabile views.

Capita spesso che però vecchi siti usino ancora il modulo drupal image, questa è una semplice guida per convertire i nodi di tipo "image" in nodi gestiti con CCK.

Guida per migrare il modulo image ad imagefield

Migliorare i template drupal

Buona parte dello sviluppo di un sito internet è legata alle fasi di analisi, progettazione ed implementazione della struttura informativa, del workflow delle informazioni e del visual/graphic design. Grazie ai CMS, come Drupal, le prime sono strettamente legate all'aspetto logico funzionale, mentre il graphic design, la progettazione dell'aspetto visuale e grafico del sito, sono spesso progettate per ottenere un impatto emotivo o per scelte di marketing.

Migliorare i template drupal

Calcolare il prezzo di un articolo con Ubercart

In alcune situazioni può essere necessario dover ricalcolare il prezzo di vendita di un articolo gestito da Ubercart, il modulo di e-commerce per Drupal. Un classico esempio è quando il prezzo di vendita unitario varia in base alla quantità ordinata. In tal caso il modulo Ubercart non è in grado di modificare il prezzo di vendita ed è quindi necessario usare dei moduli aggiuntivi.

In alcune situazioni si può usare il modulo discount per gli sconti, ma non sempre è sufficiente. Si può quindi usare il modulo custom price.

Calcolare il prezzo di un articolo con Ubercart

Workflow in Drupal

Per gestire un worflow in Drupal si possono seguire diverse strade. Per soddisfare alcune esigenze esistono già dei moduli che possono essere utilizzati ed applicati direttamente al caso specifico. Altre volte, probabilmente nella maggior parte dei casi, c'è invece la necessità di stabilire un workflow su misura.

In questi casi abbiamo due possibilità: o si utilizzano moduli realizzati proprio per il controllo del flusso, oppure si può programmare un modulo personalizzato.

Workflow in Drupal

Mi importa o non mi importa

Convertire WordPress in Drupal

Oggi ho dovuto eseguire una importazione di un blog in WordPress verso Drupal. L'operazione l'avevo già fatta parecchie altre volte e quindi ormai ho una certa esperienza. Però, come al solito, ho dovuto darmi da fare con qualche script manuale per portare a buon fine l'operazione.

Mi importa o non mi importa

Come nascondere elementi su Drupal

In alcuni casi è necessario nascondere particolari informazioni di un sito web a specifiche classi di utenti. Solitamente si tratta di situazioni in cui è necessario registrarsi al sito per visualizzare dati come prezzi o informazioni dettagliate. Drupal, anche in questo caso, permette agli sviluppatori di gestire questa situazione con estrema facilità.

Come nascondere elementi su Drupal

Togliere doppio content type utf8 in un template drupal.

Ci sono alcune combinazioni di moduli in Drupal che causano la presenza di una doppia stringa con il content-type nell'output della pagina:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Un semplice trucco è quello di...

Togliere doppio content type utf8 in un template drupal.

Generazione grafici con Drupal

Recentemente ho avuto la necessità di produrre grafici online per alcuni lavori. Una caratteristica comune era il bisogno di gestire delle pagine aggiuntive e di organizzare le policy di accesso ai dati. Per questo motivo mi sono affidato a Drupal per la gestione dei contenuti ed ho programmato un modulo che permette di realizzare di grafici e delle statistiche anche molto complessi.

Generazione grafici con Drupal

Come nascondere dei campi in Drupal

Drupal permette di gestire e personalizzare in maniera abbastanza granulare i permessi di accesso ai campi in un form. Alcuni campi o controlli però non possono essere disabilitati, ad esempio il titolo o il selettore della tassonomia.

Un metodo semplice potrebbe essere quello di nascondere i campi dal CSS. Questa soluzione però è facilmente aggirabile usando software come firebug, tramite il quale possiamo ri-visualizzare i campi nascosti e di conseguenza avremmo prodotto solamente una falla di sicurezza. Un metodo più efficace potrebbe essere quello di agire nel core di Drupal, però ciò è contrario alla filosofia di utilizzo e soprattutto è molto pericoloso in quanto ad ogni aggiornamento è necessario rieseguire ogni modifica effettuata.

La soluzione migliore è quindi scrivere un modulo personalizzato che, in determinate condizioni, nasconda in maniera definitiva dei campi in un form.

Potremmo ad esempio voler nascondere il campo di modifica del titolo nel caso in cui l'utente appartenga ad un certo ruolo.

Per fare ciò dovremmo creare un modulo e creare al suo interno una funzione che si agganci a hook_form_alter(). Chiamerò il modulo hidetitle

function hidetitle_form_alter($form_id, &$form) {
  ...
}

In base alle specifiche esigenze, per nascondere il titolo basta eseguire questo codice. Nell'esempio il campo titolo sarà nascosto per i nodi di tipo story:

  switch ($form_id) {
    case 'story_node_form':
      $form['title']['#access'] = FALSE;
    break;
  }

Per decidere quando applicare la modifica, sarà opportuno caricare l'elenco dei ruoli associati all'utente e quindi confrontarli con i ruoli che non potranno visualizzare il campo.

Per aumentare la flessibilità del modulo, si potrebbe creare un nuovo permesso in modo da configurare il ruolo che ha accesso alla modifica dei titoli dei nodi attraverso l'interfaccia di amministrazione di Drupal.