Le FAQ di Drupal Italia

Ecco Una raccolta delle domande più frequenti che vengono fatte sul forum
L'elenco è in continua crescita.
Se in queste pagine trovi delle risposte che non ti soddisfano, chiedi uteriori spiegazioni sul forum.
Se vuoi collaborare alla creazione della documentazione contattaci!

Argomenti:

Drupal è quello che mi serve? (Informazioni generali su Drupal)

Qui sono elencate alcune informazioni per chi non sa se scegliere Drupal o altri CMS.

Che tipo di siti si possono realizzare con drupal?

Drupal è un gestore di contenuti o CMS (Content Management System). Questo significa che è concepito per la realizzazione di qualsiasi sito, statico o dinamico, basato sulla logica contenuto/commenti.
Alcuni esempi di siti sono riassunti qui sotto, ma il maggiore vantaggio dell'uso di Drupal si ottiene nei casi in cui è necessario combinare più contenuti eterogenei (p.e. forum con news, portale a sezioni con blog e gallerie di immagini, etc.):

  • semplici siti statici: ovvero siti costituiti da sole pagine statiche (i più semplici). Sono esempi di questo tipo siti personali, siti istituzionali, cataloghi, etc.
    Utilizzando il sistema di categorizzazione di Drupal è possibile strutturare il proprio sito in modo semplice e efficace. L'amministratore (o un utente abilitato) può ampliare o modificare i contenuti in qualsiasi momento.
  • blog: i blog sono diari online, ordinati cronologicamente e basati su un sistema messaggio/commenti. Drupal gestisce nativamente questo tipo di contenuti. Drupal può essere la soluzione per realizzare un sito che contenga il blog vostro e dei vostri amici, o per andare oltre le possibilità dei normali contenitori di blog (splinder, livejournal, etc.). Alcuni importanti blog italiani sono stati realizzati su piattaforma Drupal.
    Il maggiore vantaggio di Drupal è la possibilità di integrare il proprio blog con altri tipi di contenuto (news, forum, sezioni a tema). Per scrivere un blog, o per lasciare commenti, dovete essere registrati al sito Drupal o a un sito affiliato. La possibilità di commentare utilizzando l'account di altri gestori di blog è in corso di estensione.
  • forum: se desiderate qualcosa di più originale del solito phpbb, o un sito più complesso, che integri per esempio news, contenuti di diverso tipo, possibilità di pubblicare in home page i messaggi degli utenti, Drupal è la scelta giusta.
    I forum sono gestiti nativamente, come un tipo particolare di contenuto. Sono disponibili tutte le funzionalità di pubblicazione, moderazione, gestione di commenti e utenti.
    Configurando adeguatamente il sito, è possibile aprire uno o più forum come sezioni del proprio sito Drupal, separate ma nativamente integrate con il resto del sito.
  • gallerie di immagini: Drupal gestisce le gallerie di immagini attraverso il modulo aggiuntivo image. E' possibile creare gallerie complete di anteprime, categorizzate per tipologie.
  • portali: Un portale web è un sito web che costituisce un punto di partenza, una porta di ingresso ad un gruppo consistente di risorse di Internet o di una intranet (da Wikipedia)
    Il principale vantaggio di un CMS come Drupal è la possibilità di gestire in modo integrato contenuti diversi. Drupal consente di realizzare un portale che integri in modo ordinato le varie funzionalità: news, rimandi ad altri siti, sezioni tematiche etc. Il supporto di fonti RSS consente di accogliere e pubblicare in modo automatico gli aggiornamenti di siti che mettono a disposizione questa funzionalità.
    La struttura modulare di Drupal consente di integrare nuove funzionalità utilizzando moduli già esistenti (vedi lista) o moduli appositamente sviluppati.
  • altri siti: la lista delle diverse tipologie di sito realizzabili potrebbe essere molto lunga, dal blog personale con galleria di immagini alla intranet aziendale. Il consiglio è provare Drupal in tutti i casi in cui è necessario realizzare rapidamente un sito per la gestione di un sistema di contenuti/commenti con contenuti di tipologie eterogenee.

Dove trovo degli esempi di siti realizzati con drupal?

Drupal è adatto a creare molti tipi di sito per renderti conto di quanto è possibile fare con drupal dai un occhiata a:

Drupal rispetta i requisiti della legge italiana sull'accessibilità dei contenuti web?

[Informazioni tratte da un caso di utilizzo reale, descritto originariamente in questa discussione: http://www.drupalitalia.org/node/5441]

Legge Stanca e accessibilità dei siti scolastici.
Drupal si presta molto bene per la legge Stanca ed è un'ottima scelta per le scuole:

  1. Drupal fa uso di codice web xhtml 1.0 strict valido con instestazioni corrette, almeno per il tema predefinito Garland. Certo, poi dipende da come tu generi le pagine web: se usi FCKeditor e fai il copia incolla da word il requisito 1 va a farsi friggere (requisito 1)
  2. Drupal non fa uso di frame, almeno per il front office (requisito 2)
  3. Per i testi alternativi alle immagini devi stare attento tu a inserirli quando pubblichi le immagini all'interno dei nodi (requisito 3)
  4. Per non vincolare informazioni e funzionalità alla possibilità di percepire i colori devi inserire almeno la sottolineatura dei link nelle pagine con il testo. Qui devi modificare il CSS del tema grafico scelto (requisito 4)
  5. Per gli oggetti lampeggianti devi stare attento tu a che tipo di banner o GIF intendi inserire. Spesso soprattutto le insegnanti amano inserire effetti luna park di ogni genere (requisito 5)
  6. Per i contrasti tra foreground e lo sfondo devi stare attento a quali colori intendi usare (requisito 6)
  7. Per le mappe immagine devi stare attento a come le costruisci (requisito 7-8)
  8. Per le tabelle dati devi stare attento a come le costruisci ricordandoti di inserire il Summary. Se dovessi usare il modulo Views devi controllare che nelle tabelle generate con gli elenchi dei contenuti ci sia almeno il summary (requisito 9)
  9. Per le tabelle dati più complesse tutto dipende ancora una volta da come le costruisci tu (requisito 10)
  10. Drupal usa i fogli di stile CSS (requisito 11)
  11. In genere i contenuti di un sito realizzato con Drupal si adattano alla finistra del browser e i caratteri possono essere ridimensionati. Devi stare attento a scegliere un tema grafico liquido anzichè fisso. Il tema predefinito Garland va bene (requisito 12)
  12. Drupal 6 non fa uso di temi grafici realizzati con le tabelle. Il tema predefinito Garland è realizzato solo con i CSS (requisito 13)
  13. Nel tema predefinito Garland i moduli (form) hanno l'etichetta esplicita label for (requisito 14)
  14. Per i requisiti 15 e 16 non mi pare ci siano problemi
  15. Dato che fai riferimento ai documenti PDF qui si apre un bel problema. Se riempi il sito di files PDF non accessibili allora vedi che tutto dipende ancora un volta da te: Drupal è un'ottima piattaforma di partenza rispettosa dell'accessibilità e quindi ottima per i siti scolastici perchè appartenenti alla Pubblica Amministrazione, ma se poi chi pubblica i contenuti non ha la più pallida idea di cosa sia l'accessibilità... (requisito 17)
  16. Se sul sito hai intenzione di pubblicare presentazioni multimediali o filmati devi inserire la trascrizione o un riassunto decente (a proposito: i PowerPoint appartengono a questa categoria?) (requisito 18)
  17. Rendere chiara la destinazione di ogni link indipendetemente dal contesto: qui devi stare attento a non creare link del tipo "clicca qui o lì". Drupal 6 quando tronca un articolo perchè troppo lungo inserisce il link "Leggi tutto", però crea anche un Title del tipo "Leggi tutto il nodo xyz": in questo modo il requisito è soddisfatto. Per quanto riguarda i salta menu devi controllare il tema grafico che hai intenzione di scegliere. Mi sa che qui devi intervenire tu per adeguare Drupal alle legge Stanca (requisito 19)
  18. Per quanto riguarda i servizi temporizzati dipende da cosa tu metti sul sito (requisito 20)
  19. Per le distanze tra i link o pulsanti devi controllare il tema grafico prescelto. Mi pare che in Garland la distanza pari a 0.5em sia soddisfatta (requisito 21)
  20. Il requisito 22 non è più in vigore perchè la fase della prima applicazione delle legge è ormai passata da tempo.

Argomenti:

Drupal è adatto per i motori di ricerca?

Diciamo che tutte le tecniche di posizionamento possono essere tranquillamente applicate utilizzando la piattaforma Drupal più alcuni moduli aggiuntivi. Poi sta alla bravura e all'esperienza di ognuno applicare tali tecniche.
Drupal, nella sua installazione di base, fornisce già tre moduli che si rivelano importantissimi in relazioni ai motori di ricerca: il modulo log, il modulo taxonomy e il modulo path.
Esistono poi una serie di moduli aggiuntivi che possono "potenziare" Drupal in modo da farlo collaborare meglio con i motori di ricerca (suprattutto con Google) e che possono permetterci di concentrarci sulle tecniche che vogliamo adottare per i motori di ricerca.
Ecco i moduli che possono essere utili:
- pathauto
- Google Analytics
- Google Page Rank
- Google Verify
- XML Sitemap (Google Sitemap)
- Node (key)words
- Page Title

Installazione

Problematiche relative all'installazione di Drupal.

Installazione: Requisiti

Per installare drupal avrai bisogno di:

  1. Un Web Server che possa eseguire script PHP
  • Consigliato: Apache. Lo sviluppo di Drupal viene fatto sulla versione 1.3.x. Drupal puo' essere installato anche su 2.0.x.
  • Opzionale: IIS. Drupal viene sviluppato per essere compatibile con IIS: IIS5 e IIS6 andranno bene se si possiede un ambiente PHP configurato correttamente.
  • PHP
    • A partire da Drupal 4.6, il CMS richiede la versione 4.3.3+ (PHP 5 è supportato dalla release 4.6). Drupal dalla 4.2 to 4.5.2 richiedono PHP versione 4.1+. Le versioni più vecchie di Drupal gireranno su PHP 4.0.6+. Ti raccomandiamo di utilizzare l'ultima versione di PHP 4.x.
    • PHP XML extension (for blogapi, drupal, and ping modules). Questa estensione è abilitata di default inuna installazione PHP standard; anche la versione windows di PHP ha il support built in all'estensione.
    • PHP con una memoria di 8MB per una installazione di Drupal. Se installi moduli aggiuntivi dovrai aumentare la tua memoria PHP.
    • PHP necessita le seguenti direttive di configurazione per far funzionare Drupal:
    • Queste impostazioni sono contenute nel file .htaccess distribuito con Drupal, quindi non dovrebbe essere necessario impostarle manualmente. Nota, comunque, che impostare le opzioni di configurazioni PHP tramite .htaccess funziona solamente:
      • con Apache (o un webserver compatibile),
      • se il file .htaccess viene letto dal server, es. AllowOverride non è None,
      • se PHP è installato come modulo Apache.
    • Sono disponibili ulteriori informazioni su come cambiare le impostazioni per altre interfacce a PHP.
  • Un database supportato da PHP
    • Raccomandato: MySQL, v3.23.17 o successive (per l'utilizzo di INNER JOIN's with join_condition's). MySQL 4 e 5 sono compatibile.
    • Drupal utilizza alcune caratteristiche avanzate non disponibili in alcuni piani di hosting a basso prezzo, ad esempio LOCK TABLE.
    • Disponibile dalla versione 4.7: PostgreSQL, versione 7.3 o successiva. Esperienze con altri database sono benvenute.

    Come avviare l'installer di Drupal in modo che selezioni automaticamente la lingua italiana?

    1. Scarica l'ultima versione di Drupal e il pacchetto di traduzione italiana dalla pagina di Download.
    2. Estrai i due file compressi, e metti il contenuto del core di Drupal in una cartella del tuo server.
    3. Copia il file installer.po in "profiles/default" e rinominarlo in it.po.
    4. Installa Drupal in base al tipo di piattaforma che si utilizza, tramite il browser andare all'URL dove si è installato il CMS.
    5. Nella schermata che apparirà, selezionare "Italiano" e cliccare su "save configuration".
    6. Procedere con l'inserimento dei dati per la configurazione del database.
    7. A questo punto dopo aver creato l'utente per l'amministrazione, è possibile importare il file it.po (admin/settings/locale/language/import). Il modulo "locale", viene abilitato automaticamente.

    Autori: Derek, Psicomante.

    Moduli

    Domande frequenti sui moduli.

    Come impostare un sito stile youtube: upload e trasformazione di video.

    Discussione affrontata recentemente:
    Sito di video stile youtube

    Qual'è il modulo per...

    Ricerchi una funzione particolare per la tua installazione di Drupal? Potrebbe essere qui la risposta ai tuoi problemi.

    Qual'è il modulo per rendere accessibili a certi gruppi soltanto alcune categorie (taxonomy)?

    Il modulo per creare una tabella accessi per i gruppi di utenti in base alla tassonomia si chiama taxonomy_access. Un'alternativa è Taxonomy Access Control Lite.

    Specifico per i forum invece è Forum Access.

    Una interessante discussione sull'accesso a determinate categorie solo per alcuni gruppi di utenti si può trovare sul blog di Lullabot.

    Amministrazione

    In questa sezione si possono trovare le domande più comuni sull'amministrazione di Drupal, se non trovi la risposta alla tua domanda usa l'aposito forum.

    Come si aggiorna Drupal?

    Revisione maggiore: come aggiornare drupal da una versione X.n ad una Y.t.
    Esempio, come posso aggiornare Drupal dalla versione 4.7.6 alla versione 5.2?

    Il procedimento non è molto complesso. Tuttavia bisogna premettere che passare da una versione 4.xx ad una versione 5.xx, cioè una revisione di tipo massimo, i moduli precedentemente creati per la 4.xx non gireranno più correttamente su una 5.xx

    Il procedimento da fare è quindi:

    1. Fare un backup dell'intero sito tramite FTP (consiglio FileZilla per l'immediatezza).
    2. Fare un backup del database su cui è installato Drupal (fatelo tramite il vostro hoster, probabilmente userete phpMyAdmin).
    3. Disabilitate tutti i moduli e i temi aggiuntivi che avete installato e abilitato.
    4. Impostate il sito off-line (in manutenzione).
    5. Spostate il contenuto del vostro vecchio sito in una sotto cartella.
    6. Copiate il contenuto del file Drupal-6.xx.tar.gz scaricato da Drupal.org.
    7. Copiate le informazioni dal file di backup settings.php sullo spazio, presente in /sites/default/settings.php. (e se avete fatto delle modifiche, anche robotx.txt e .htaccess nella cartella principale).
    8. Puntate il vostro Browser a www.sito.it/update.php (dove sito.it è l'URL dove avete installato Drupal).
    9. Eseguite il processo di aggiornamento.
    10. Se non vi da' errori potete scaricare tutti i moduli che usavate nella vecchia installazione ed abilitarli. Ovviamente dovranno essere quelli aggiornati alla nuova versione di Drupal. Quelli vecchi non saranno compatibili.

    Revisione minore: come aggiornare drupal da una versione X.n ad una X.t, dove t>n
    Esempio, come posso aggiornare Drupal dalla versione 6.6 alla versione 6.8

    Il procedimento da fare è quindi:

    1. Fare un backup dell'intero sito tramite FTP (consiglio FileZilla per l'immediatezza).
    2. Fare un backup del database su cui è installato Drupal (fatelo tramite il vostro hoster, probabilmente userete phpMyAdmin).
    3. Copiate il contenuto del file Drupal-5.xx.tar.gz scaricato da Drupal.org. e sovrascriveteli con quelli vecchi.
    4. Copiate il file di backup settings.php su quello nuovo, presente in /sites/default/settings.php. Se avete modificato robots.txt e .htaccess, dovrete ricopiare anche quelli. In alternativa potete evitare di caricarli sul sito cancellando la cartella sites e i due files sopracitati.
    5. Puntate il vostro Browser (possibilmente Gecko-based od Opera) a www.sito.it/update.php (dove sito.it è l'URL dove avete installato Drupal).
    6. Eseguite il processo di aggiornamento.

    Argomenti:

    E' sparito il blocco per il login degli utenti. Come faccio a ripristinarlo/autenticarmi?

    Vai alla pagina www.sito.it/?q=user e loggati come amministratore.
    Poi vai alla pagina www.sito.it/?q=admin/block e abilita il blocco "login".

    Esportare Drupal da un sito locale ad un sito online.

    Può succedere a volte che esportando drupal da uno spazio web ad un altro vi siano sull'ultimo dei problemi nella visualizzazione dei caratteri (di solito lettere accentate) o che semplicemente il database mysql ritorni un errore simile al seguente:
    "Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation"
    In questi casi il problema è quasi sicuramente da imputare alla collation.
    Una breve introduzione: set di caratteri e collation
    Un set di caratteri è un sistema col quale i diversi caratteri e simboli vengono memorizzati su un computer con un valore binario. In un insieme di caratteri (set di caratteri) un valore binario corrisponde quindi ad un simbolo preciso. Ad esempio possiamo avere un alfabeto composto da due lettere: "A", "a". A queste due lettere assegnamo un numero: "A" = 0, "a" = 1. La "A" è un simbolo e lo 0 è la codifica per tale simbolo. La "a" è un altro simbolo e la sua codifica è 1. La combinazione di queste due lettere e delle rispettive codifiche è un set di caratteri. MySQL dalla versione 4.1 possiede un supporto molto avanzato ai set di caratteri; è infatti possibile gestire i set di caratteri a livello server, database, tabella e colonna, client e connessione.Una collation è invece un insieme di regole utilizzate per confrontare i simboli che fanno parte di un set di caratteri. Collation si traduce con collazione, che significa confronto.Ad esempio possiamo fare in modo che "A" sia uguale ad "a". In questo caso dovremmo avere almeno due regole:

    1. considera la lettera minuscola "a" uguale alla lettera maiuscola "A".
    2. confronta le codifiche.

    Abbiamo applicato una collation (confronto) non sensibile alle maiuscole.
    Se con PhpMyAdmin vedete la seguente dicitura sotto la voce collation: latin1_general_cs vuol dire che si sta utilizzando il set di caratteri latin1, che tale collation è multilingua (general) e che tale collation considera come differenti le lettere maiuscole e minuscole (cs: case sensitive).
    Le operazioni da fare per esportare il sito (files e database).
    Supponiamo che abbiate un sito web in locale e che tale sito contenga già contenuti, moduli aggiuntivi e magari un tema che avete costruito appositamente. Ora per esportare il tutto online occorre esportare il database e caricare tutti i files del sito da locale a remoto.
    Ecco la procedura da eseguire:

    • creare il database sul proprio spazio remoto
    • cambiare le impostazioni nel file settings.php
    • caricare da locale a remoto tutti i files che c'erano nella cartella locale della propria installazione di drupal
    • impostare a 777 la cartella /files/ sul sito remoto (CHMOD -R 777 /tua_cartella_drupal/files/)
    • guardare la collation del database ( cliccando su "Struttura") e memorizzarla.
    • esportare il database locale. In phpmyadmin andare quindi su "Esporta" e selezionare "Struttura" e "Dati".
    • in remoto, prima di andare ad accedere col browser all'indirizzo del sito web, importare il database, scegliendo lo stesso set di caratteri che si utilizzava sul database locale. In phpmyadmin andare su "Importa"e selezionare dal menù a tendina il set di caratteri che si utilizzava nella collation. Se ad esempio si utilizzava come collation utf8_general_ci scegliere dal menù a tendina utf8 come set di caratteri.
    • andare a controllare che la collation del database remoto sia uguale a quella utilizzata dal database locale. Portarsi quindi con phpmyadmin in "Operazioni" e in basso controllare la collation.
    • accedere all'indirizzo del proprio sito web e controllare che sia tutto uguale al sito locale (temi, moduli selezionati, caratteri accentati stampati in modo giusto e tutto il resto).

    "Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,IMPLICIT) for operation"
    Mi è capitato una volta di dover migrare un sito web basato su drupal da un server MySQL 3.23 ad un server MySQL 4.1. Avevo ottenuto degli errori nella collation. Questo perchè MySQL 4.1 utilizza una collation predefinita che Drupal invece non utilizza. Le tabelle stanno utilizzando la collation latin1_swedish_ci e la connessione impostata da Drupal sta utilizzando invece utf8_general_ci.Per risolvere il problema, la collation su ogni tabella deve essere uft8_general_ci.
    Alcune query utili
    Per cambiare il set di caratteri:
    ALTER DATABASE drupal_database CHARACTER SET utf8;
    Per cambiare la collation:
    ALTER DATABASE drupal_database COLLATE utf8_general_ci;
    Per cambiare set di caratteri e collation ad una tabella
    ALTER TABLE drupal_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    Ridefinire una variabile in Drupal: Override di variabili nel settings.php

    Drupal può ridefinire le variabili staticamente, basta che dai un nuovo valore alla variabile nel tuo settings.php

    <?php
    /**
    * Variable overrides:
    *
    * To override specific entries in the 'variable' table for this site,
    * set them here. You usually don't need to use this feature. This is
    * useful in a configuration file for a vhost or directory, rather than
    * the default settings.php. Any configuration setting from the 'variable'
    * table can be given a new value.
    *
    * Remove the leading hash signs to enable.
    */
     
    $conf = array(
       
    'default_nodes_main' => 1000,
      );
    ?>

    Grazie ad Ainur.

    Argomenti:

    La pagina dove si possono attivare/disattivare i moduli appare bianca. Cosa succede?

    Molte volte questo è un problema di memoria, Drupal in questa pagina carica tutti moduli compresi quelli disattivati e quindi ha bisogno di molta memoria.
    La gestione della memoria allocata è fatta dal PHP quindi ci sono due soluzioni:

    1. Cancellare alcuni moduli non utilizzati
    2. Aumentare la memoria che il PHP assegna agli script
      • memory_limit = 12M nel tuo php.ini file (Raccomandato se hai accesso al file)
      • ini_set('memory_limit', '12M'); nel tuo file sites/default/settings.php
      • php_value memory_limit 12M nel tuo file .htaccess nella root di Drupal

    Nel'allocare più memoria tieni presente che questa è un parametro critico per il server ed un impostazione troppo generosa metterà in gravi condizioni il tuo server se questo si troverà ad affrontare molte richieste simultanee.

    Se non riuscite ad entrare nella pagina di amministrazione dei moduli un metodo per disabilitare temporaneamente un modulo è quello di accedere al DB dal pannello phpmyadmin e agire sulla tabella system andando a portare (per i moduli che si vogliono disabilitare) il valore della colonna status su 0.

    Argomenti:

    Problemi collegati a provider/hoster (Aruba, Altervista, etc.)

    Problemi su quale hoster scegliere? Meglio Linux o Windows? Queste FAQ potrebbero aiutarti.

    Altervista: strani caratteri sul sito. Pagine non accessibili

    Tutte le versioni di Drupal (4.x - 4.6,4.7 e 5.x - 5.0,5.1) su Altervista possono essere installate senza problemi particolare, a patto di non avere abilitato la Cache. Il modulo di apache che la gestisce su Altervista fa memorizzare grezzamente i dati compressi, creano una pagina piena di caratteri incomprensibili, che non possono far vedere il sito.

    Loggandosi tutto torna alla normalità semplicemente perchè non viene usata la Cache per mostrare le pagine. Per risolvere il problema, se si è loggati, disabilitare la cache, altrimenti andare sul database, meglio se su PHPmyAdmin e SVUOTARE la tabella cache (non cancellarla!). Loggarsi quindi immediatamente e disabilitare la cache da /admin/settings.

    Altro metodo non testato, è quello di non usare i Clean URL. Quindi la procedura è:

    1. collegarsi tramite l'URL: /?q=user
    2. loggarsi
    3. andare su /?admin/settings
    4. Disabilitare la cache.

    PsicoBlog

    Temi

    In questa sezione vengono raccolte le più comuni domande sui temi di drupal, nella sezione si cerca di comprire tutti gli argomenti: reperimento, installazione e modifica.

    Temizzare la image gallery (modulo image) per drupal 6

    Per temizzare la image gallery di drupal 6 è necessario creare il file "image_gallery.tpl.php" e copiarlo sotto il proprio tema.
    All'interno del file scriveremo il seguente codice:

    <?php
    $size
    = image_get_sizes('thumbnail');
     
    $width = $size['width'];
     
    $height = $size['height'];
     
    drupal_add_css(drupal_get_path('module', 'image_gallery') .'/image_gallery.css');
     
    $content = '';
      if (
    count($galleries)) {
       
    $content.= '<ul class="galleries">';
        foreach (
    $galleries as $gallery) {
         
    $content .= '<li class="clear-block">';
          if (
    $gallery->count)
           
    $content .= l(image_display($gallery->latest, IMAGE_THUMBNAIL), 'image/tid/'. $gallery->tid, array('html' => TRUE));
           
    // $content.= l(image_display($gallery->latest, 'thumbnail'), 'image/tid/'.$gallery->tid, array(), NULL, NULL, FALSE, TRUE);
         
    $content.= "<h3>".l($gallery->name, 'image/tid/'.$gallery->tid) . "</h3>\n";
         
    $content.= '<div class="description">'. check_markup($gallery->description) ."</div>\n";
         
    $content.= '<p class="count">' . format_plural($gallery->count, 'There is 1 image in this gallery', 'There are @count images in this gallery') . "</p>\n";
          if (
    $gallery->latest->changed) {
           
    $content.= '<p class="last">'. t('Last updated: @date', array('@date' => format_date($gallery->latest->changed))) . "</p>\n";
          }
         
    $content.= "</li>\n";
        }
       
    $content.= "</ul>\n";
      }
      if (
    count($images)) {
       
    $height += 5;
       
    $content = 'this is the list of galleries<br><br>';
       
    $content.= '<ul class="images">';
        foreach (
    $images as $image) {
         
    $content .= '<li';
          if (
    $image->sticky) {
           
    $content .= ' class="sticky"';
          }
         
    $content .= " style='height : ".$height."px; width : ".$width."px;'>\n";
         
    $content .= l(image_display($image, IMAGE_THUMBNAIL), 'node/'. $image->nid, array('html' => TRUE));
         
    $content .= '<h3>'. l($image->title, 'node/'. $image->nid) .'</h3>';
          if (
    variable_get('image_gallery_node_info', 0)) {
           
    $content .= '<div class="author">'. t('Posted by: !name', array('!name' => theme('username', $image))) ."</div>\n";
            if (
    $image->created > 0) {
             
    $content .= '<div class="date">'. format_date($image->created) ."</div>\n";
            }
          }
         
    $content .= "</li>\n";
        }
       
    $content.= "</ul>\n";
      }
      if (
    $pager = theme('pager', NULL, variable_get('image_images_per_page', 6), 0)) {
       
    $content.= $pager;
      }
      If (
    count($images) + count($galleries) == 0) {
          
    $content.= '<p class="count">' . format_plural($gallery->count, 'There is 1 image in this gallery', 'There are @count images in this gallery') . "</p>\n";
      }
      print
    $content;
    ?>

    In questo modo, al momento di visualizzare la galleria, verrà richiamato il codice sopra, che provvede a temizzare il tutto.
    Dobbiamo fare due considerazioni:

    1) non essendo obbligatorio, fornire la lunghezza e l'altezza per le anteprime (thumbnail), potremmo avere un valore falsato nella variabile $width o $height. Tenetene conto, facendo voi un calcolo su una anteprima oppure mettendo un semplice if tipo:

    <?php
    if ($height=='') $height = 150;
    ?>

    subito sotto
    <?php
    $size
    = image_get_sizes('thumbnail');
     
    $width = $size['width'];
     
    $height = $size['height'];
    ?>

    2) L'istruzione drupal_add_css(drupal_get_path('module', 'image_gallery') .'/image_gallery.css'); carica un css esterno, che andrà posto sotto il proprio tema. Nel mio caso son partito dal vecchio esempio della 4.7, che trovate sotto:

    ul.galleries {
      list-style-type : none;
      margin : 0;
      padding : 0;
    }
    ul.galleries li {
      position : relative;
      background : #eeeeee;
      border : 1px #cccccc solid;
      margin : 1em 0;
      padding : 1em;
    }
    ul.galleries li img {
      float : left;
      position : relative;
      padding-right : 4px;
      margin-right : 4px;
    }
    ul.galleries li .count,
    ul.galleries li .last {
      clear : left;
      margin : 0;
      padding : 0;
      font-style : italic;
    }
    ul.galleries h3 {
      margin : 0;
      padding : 0;
    }
    ul.images {
      list-style-type : none;
      margin : 0;
      padding : 0;
    }
    ul.images h3 {
      font-size:1em;
      padding : 0;
    }
    ul.images li {
      float : left;
      margin : 1em;
      background: transparent;
    }