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!
Qui sono elencate alcune informazioni per chi non sa se scegliere Drupal o altri CMS.
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 blogg e gallerie di immagini, etc.):
Drupal è un progetto Open Sourceg, sviluppato e distribuito ai sensi della licenza GPL.
Questo significa che può essere utilizzato, distribuito e modificato a fini sia personali che commerciali. Può anche essere venduto: l'unica condizione è che chi utilizza il software di base di Drupal debba rendere disponibili eventuali modifiche alla communityg degli sviluppatori.
Sul "software libero" ci sarebbe molto da dire, il concetto di base è che lo sviluppo di un software può essere uno sforzo collaborativo, che porta un guadagno comune: per questo il codice di Drupal è gratuito e lo resterà in futuro.
Un paragone comune è quello della musica: è come se diversi compositori, in diverse parti del mondo, si accordassero per scrivere la migliore canzone possibile, e la distribuissero liberamente, per cantarla per sè o per guadagnare dai propri concerti.
Il software libero è spesso software di ottima qualità: lo prova l'interesse crescente dei maggiori produttori di software a livello mondiale.
Sull'argomento vedere per esempio Wikipedia.
Drupal è realizzato e costantemente aggiornato dall'apposita fondazione.
I diversi componenti sono liberamente scaricabili e utilizzabili.
In inglese:
In italiano:
Per altre traduzioni o moduli in italiano consultare questa pagina: download
Drupal è un CMS ma anche un CMF ovvero un ambiente di sviluppo per applicazioni Web; questo fa si che normalmente si possano costruire siti anche complessi come un sito aziendale senza il bisogno di toccare del codice.
Nel caso non si trovassero i moduli sperati, costruirli partendo da quelli esistenti è un operazione fattibile proprio perchè drupal è anche un CMF.
Drupal è adatto a creare molti tipi di sito per renderti conto di quanto è possibile fare con drupal dai un occhiata a:
http://mtv.co.uk/ - MTV UK
http://moby.com/ - Moby Personal Website
http://www.theonion.com/ - The Onion News Site
http://www.spreadfirefox.com/ - Spread Firefox
http://asia.playstation.com/ - Asia Playstation
http://www.ringostarr.com/ - Ringo Star Web Site
http://teen.secondlife.com/ - Second Life: Teen
http://theworld.org/ - The World
http://www.airamerica.com/ - Air America Radio
http://www.linuxjournal.com/ - Linux Journal
http://indymedia.be/ - Indymedia Belgium
http://www.nowpublic.com/ - Now Public
http://appel.nasa.gov/ - Nasa Academy of Program
Il supporto per gli utenti in italiano può essere trovato sul forum di Drupalitalia. É inoltre disponibile il forum internazionale di Drupal.
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 logg, il modulo taxonomyg e il modulo pathg.
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
--IN COSTRUZIONE--
Drupal è facilmente scalabile.
Un gruppo di sviluppatori del progetto è attivo nel cercare vulnerabilità ed eventuali exploit che minacciano la sicurezza del CMS. Vengono rilasciate patch in breve termine, non appena il bug viene scoperto.
Inoltre chiunque può segnalare bugs ed problemi di sicurezza tramite l'apposito sistema integrato in Drupal.org.
Tieniti sempre aggiornato sulle ultime versioni rilasciate (stabili) su Drupal.org, e aggiorna sempre non appena puoi. Di solito è meglio non aggiornare i siti alle versioni "Beta" e "Release Candidate".
Drupal è il CMS più potente in questo ambito. Consente di creare ruoli utenti per farli accedere solo a certe aree del sito, settare i permessi con minuziosità crescente, impostare moderatori, amministratori e redattori, etc.
Certo, Drupal consente la categorizzazione dei contenuti attraverso la cosiddetta taxonomyg. Ogni contenuto (blogg, forum, immagine, libro) può appartenere ad una o più categorie, ed ogni categoria può essere figlia di una o più categorie.
E' supportato anche il freetagging, cioè la categorizzazione libera di un contenuto, inserendo alla creazione una lista di parole che andranno a costituire le categorie a cui appartiene il contenuto. Drupal creerà le categorie per te.
In Drupal è integrato un sistema di API che consente facilmente di creare moduli ad hoc per qualsiasi esigenza.
Il codice di markup è controllabile attraverso il livello di presentazione di Drupal, ovvero il tema.
L'accessibilità di un sito realizzato utilizzando Drupal dipende dal tema che utilizza il sito stesso. E' possibile realizzare un tema accessbile.
Drupal rispetta le WCAG 1.0 e la Section 508.
Si, esiste un modulo adatto a creare un sito di eCommerce.
http://drupal.org/project/ecommerce
Potrebbero esserti utili alcuni moduli quali il Paypal Framework, MeCommerce, Quickfile
Drupal è un CMS giovane e potente, fà della sua facilità di modifica un suo punto di forza e quindi anche l'aspetto grafico è completamente gestibile.
L'aspetto grafico è molto importante e per questo Drupal nasce con alcuni temi classici da cui si traggono idee per nuovi!!
Ricordiamo inoltre che la comunity è effervescente e quindi si possono trovare in rete molti temi già pronti per il nostro sito.
La curva di apprendimento non è delle più facili in Drupal. Bisogna prendere confidenza con un sistema così complesso prima di usarlo per un sito vero e proprio.
Provatelo sul vostro pc, installando EasyPHP 1.7 [FAQ di riferimento]
Problematiche relative all'installazione di Drupal.
Per installare drupal avrai bisogno di:
Autori: Derek, Psicomante.
Questo piccolo HowTo è un esempio di come sia possibile avere un drupal per fare le prove in meno di 5 Minuti!!
Metodo 1: XAMPP
Con l'avvento delle memorie flash si è visto il proliferare di applicazioni che girano direttamente dalla memoria USB di turno senza la necessita di installazione; una delle tante è XAMPP, un web server completo di tutto il necessario per far girare drupal.
XAMPP è un progetto open basato su Apache ed incorpora PHP e Mysql.
La procedura per ottenere un sistema performante e perfettamente configurato è velocissima:
Il sistema è pronto e non ci resta che fare tutte le prove che vogliamo con il nostro drupal nuovo!!
Accorgimenti/Problemi noti:
Metodo 2: Bitnami
Per chi volesse avvicinarsi a drupal per la prima volta e non volesse installare e configurare programmi come XAMPP o EasyPhp per poi configurare le utenze DB e Drupal esiste una soluzione ad-hoc. dal sito: http://bitnami.org/
scaricatevi il pacchetto per drupal:
http://bitnami.org/stack/drupal
presente in diverse versioni in funzione del SO su cui deve girare il tutto e la versione di Drupal che volete testare.
Drupal è installato in /cartella-installazione/apps/drupal/htdocs.
Per accedere al server appena installato andare in http://127.0.0.1:8080/
In Linux per avviare il servizio o fermarlo bisogna prima di tutto dare i permessi di esecuzione allo script ctlscript.sh e poi in una shell scrivere:
./ctlscript.sh start
./ctlscript.sh stopPer spostare drupal dal localeg sul server definitivo è consigliato usare la procedura:
I passaggi 1 e 2 sono caldamente consigliati ma non indispensabili, spesso la tabella cache contiene dati che nella migrazione danno problemi.
Se incontri problemi al punto 5 prova a dividere il db in più pezzi ripristinando la cosa per gradi.
Si, il Cron (cron.php) serve per effettuare molte operazioni necessarie e ripetitive.
Quelle predefinite di Drupal sono l'aggiornamento dei logg con relativa eliminazione di dati più vecchi di un certo numero di giorni (configurabile dal pannello amministra > impostazioni) e l'inserimento dei nuovi contenuti alla ricerca.
Per abiltarlo esisteno due sistemi: il primo impostando l'operazione di aggiornamento direttamente dal pannello di configurazione del sito (non tutti gli host lo permettono) e il secondo, il più semplice, è installare il modulo poormanscron che si occupa di lanciare lo script dopo un certo intervallo di tempo stabilito dall'utente.
Drupal è un CMS/CMF Open sorce in continua evoluzione, la cumunità che lo supporta è vasta e sempre pronta a migliorarlo.
Se vuoi iniziare ad usare Drupal il consiglio è di usare una versione stabile:
Al momento la versione stabile è la 5.7 prelevabile QUI
Considerando il fatto che Drupal è in continua evoluzione è caldamente consigliato utilizzare la versione corrente e non una versione precedente perchè i moduli spesso sono sviluppati ed ottimizzati solo per la versione corrente!
La versione corrente è la 5.7 (Ramo 5 e livello di patch 7) ma in cantiere c'è gia la 6.0 RC3
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.
le stringhe:
Page : If you want to add a static page, like a contact page or an about page, use a page. e
Story : Stories are articles in their simplest formg: they have a title, a teaser and a body, but can be extended by other modules. The teaser is part of the body too. Stories may be used as a personal blogg or for news articles
non vengono tradotte. Come mai?
Queste stringhe sono contenute nel file system-install.po. Sono aggiunte nel database al momento dell'installazione di Drupal. Se l'installazione è stata effettuata in inglese, allora quelle stringhe saranno in quella lingua; in altre se l'installazione è stata eseguite in una delle altre disponibili. Per installare Drupal in una lingua precisa seguire la FAQ come installare Drupal con il profilo italiano.
Per tradurle, vai nella pagina dei tipi di contenuto (/admin/content/types) e modifica la descrizione del nodo page o story.
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:
Revisione minore: come aggiornare drupal da una versione X.n ad una X.t, dove t>n
Esempio, come posso aggiornare Drupal dalla versione 5.1 alla versione 5.2
Il procedimento da fare è quindi:
Se hai abilitato il Clean Url e questo non dovesse funzionare l'accesso al tuo sito è impossibile e quindi è impossibile anche accedere alle pagine di configurazione per disabilitare il "clean url".
Le soluzioni sono due:
1 SQL Script da eseguire sul DB
UPDATE variable SET value = 's:1:"0";' WHERE name = 'clean_url';
DELETEg FROM cache;
2 Aggiungere questa linea al file settings.php
$conf['clean_url'] = 0;
Vai alla pagina www.sito.it/?q=user e loggati come amministratore.
Poi vai alla pagina www.sito.it/?q=admin/blockg e abilita il blocco "loging".
Vai alla pagina www.sito.it/?q=user e loggati come amministratore.
Poi vai alla pagina www.sito.it/?q=admin/settings e lì puoi disabilitare il modo offline.
Se ti sei dimenticato la passwordg per l'utente 1 (l'utente amministratore di defaultg) e il sitema mailg non funziona; esegui direttamente sul DB:
UPDATE `users` SET pass = MD5('newpwd') WHERE uid=1;
Sostituisci 'newpwd' con la password che preferisci.
Con la versione 4.7.4 di drupal molte persone si sono improvvisamente trovate nell'impossibilità di importare le traduzioni.
Questo problema affligge tutti i sistemi windows.
Chi è afflitto dal problema si trova un errore del tipo:
The translation import failed, because the file could not be read.
The translation import of failed.
La soluzione sono due:
1) modificare la riga del php.ini che è
magic_quotes_gpc = On
in
magic_quotes_gpc = Off
2) applicare la patch:
Ulteriori informazioni disponibili su:
Se non ti ricordi quale versione di drupal usi ci sono due strade per conoscere la versione che stai utilizzando:
Drupal può ridefinire i variabili, 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.
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:
Nel tuo 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.
Problemi su quale hoster scegliere? Meglio Linux o Windows? Queste FAQ potrebbero aiutarti.
Per poter far funzionare .htaccess su altervista, dovete avere innanzitutto la risorsa abilitata, andare poi su gestione files e cliccare sulla icona della ghiera in alto.
lì incollate il codice seguente.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
e salvate. Vi consentirà di avere i clean url, per la versione 4.6.x e seguenti.
Hai caricato il logo personalizzato e i ritratti ma non si vedono. Al posto delle immagini vedi "homeg" al posto del logo e "ritratto di [nomeutente]" al posto dell'avatar /ritratto.
Se il ritratto, per esempio, non viene visto anche tramite url:
http://tuosito.altervista.org/files/pictures/picture-1.jpg
Se ti dà errore 500 prova a cancellare l'.htaccess file nella Gestione Files del pannello di controllo di altervista.
Se ti da errore 404 - pagina non trovata, è un errore di percorso, prova a controllare su ?q=admin/settings nella gestione "file system" che i percorsi siano corretti.
Topicg di riferimento:
http://www.drupalitalia.org/node/1844
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 è:
Su Aruba il file .htaccess dà molti problemi alle varie versioni di Drupal, rendendo impossibile l'abilitazione del clean URL (admin > settings). Non si può quindi con il file incluso nell'installazione di Drupal, non avere "?q=" nell'URL.
Questo codice è da sostituire a quello dato da Drupal.org per farlo funzionare su Aruba.
#
# Apache/PHP/site settings:
#
# Protect files and directories from prying eyes:
order deny,allow
deny from all
# Set some options
# non supportato da aruba
#Options -Indexes
# non supportato da aruba
#Options +FollowSymLinks
# Customized server error messages:
ErrorDocument 404 /index.php
# Set the defaultg handler to index.php:
# non supportato da aruba
#DirectoryIndex index.php
# Overload PHP variables:
# If you are using Apache 2, you have to use
# instead of .
php_value register_globals 0
php_value track_vars 1
php_value short_open_tagg 1
php_value magic_quotes_gpc 0
php_value magic_quotes_runtime 0
php_value magic_quotes_sybase 0
php_value arg_separator.output "&"
php_value session.cache_expire 200000
php_value session.gc_maxlifetime 200000
php_value session.cookie_lifetime 2000000
php_value session.auto_start 0
php_value session.save_handler user
php_value session.cache_limiter none
php_value allow_call_time_pass_reference On
# Various rewrite rules
RewriteEngine on
# Modify the RewriteBase if you are using Drupal in a subdirectory and the
# rewrite rules are not working properly:
#RewriteBase /ski-freestyle/
# Rewrite old-style URLS of the formg 'nodeg.php?id=x':
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^id=([^&]+)$
#RewriteRule node.php index.php?q=node/viewg/%1 [L]
# Rewrite old-style URLs of the form 'module.php?mod=x':
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{QUERY_STRING} ^mod=([^&]+)$
#RewriteRule module.php index.php?q=%1 [L]
# Rewrite URLs of the form 'index.php?q=x':
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# $Id: .htaccess,v 1.58 2004/10/09 20:41:49 dries Exp $
Il problema è causato dalle direttive dell'Htaccess non supportate dai server di Aruba. Sostituisci il tuo .htaccess con questo che puoi trovare in queste faq.
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.
Ecco alcuni siti interessanti dove trovare temi grafici per Drupal:
Temi singoli
Obbiettivo:
Aggiungere i pulsanti di navigazione alle foto delle gallerie create con Image o Image_import e modificare la pagina standard con le anteprime piccole.
Requisiti:
1) Aver installato correttamente il modulo image.
2) Aver installato correttamente php engine.
3) Utilizzare un tema che utilizzi phptemplate (es. blumarine in versione phptemplate, NON la versione standard).
Introduzione:
Utilizzando il motore phptemplate è possibile senza modificare il tema o il modulo personalizzare tutte le pagine generate da drupal.
Questo tipo di personalizzazione ci consente di modificare pesantemente l'interfaccia lasciandoci la possibilita di possibili aggiornamenti di drupal poichè le modifiche provengono da file esterni.
Il motore phptemplate quando genera un pagina "nodo" controlla che per la suddetta pagina nodo esista un file contenente una paricolare output per il nodo, in caso contrario applica il template di defaultg.In sostanza il motore quando genera una pagina "image" cerca un template per la pagina Image.
I file che cerca il motore nella cartella del tema devono avere un nome preciso:
nodeg-[tipo di nodo].tpl.php
Per sapere il nome esatto del tipo di nodo gurda dentro la tabella node nella colonna type del nodo di cui vuoi modificare l'output.
Vediamo in questo caso come aggiungere i pulsanti di navigazione al modulo Image.
Passo 1
Creo il file template.php e lo copio nella cartella principale del tema che stiamo personalizzando.
Questo file contiene le funzioni da invocare nelle script che creano le pagine.
Nel nostro caso ho messo nel file un Wrapper per la pagina della galleria e le funzioni necessarie a calcolare la pagina precedente e quella successiva nelle pagina foto.
Passo 2
Creo il file node-image.tpl.php e lo copio nella cartella principale del tema che stiamo personalizzando.
Questo file rappresenta tutto il codice che generare la pagina con la foto. (nodo image)
Il motore phptemplate quando genera un pagina "nodo" controlla che per il suddetto tipo ci sia un file node-[tipo di nodo].tpl.php e usa quello per definire l'aspetto del nodo.
Passo 3
Creo il file image_gallery.tpl.php e lo copio nella cartella principale del tema che stiamo personalizzando.
Questo file rappresenta tutto il codice che generare la pagina delle anteprime.
In questo caso per esempio la pagina non mostra il nome del file (riga commentata)ed inoltre mostra un piccolo avviso per gli utenti.
Bene a questo punto dovrebbe essere tutto ok; La pagina delle anteprime dovrebbe avere alcune righe di commento sopra e sotto e non dovrebbe mostrare il nome dei file. Inoltre nalla pagina relativa alla foto dovrebbero esserci i pulsanti avanti e indietro.
Documentazione:
http://drupal.org/node/45050
http://drupal.org/node/41257
Dentro questo file devi metterci la parte di codice che genera la pagina delle anteprime.
Copia dal modulo image la parte di codice che inizia con:
/**
* Theme a gallery page
*/
function theme_image_gallery($galleries, $images) {//escludendo questa rigae finisce:
return $content;
}
/**
* Fetch a random N image(s) - optionally from a given term.
*/Ovvero nel modulo per drupal 4.6.5. le righe da 513-570
Ricorda che il file che stai creando è codice php quindi non dimenticarti i tagg php
Ciao Uccio
Contenuto del file nodeg-image.tpl.php
<div class="node <?php print ($sticky) ? " sticky" : ""; ?> ">
<?php if ($page == 0): ?>
<h2><a href="/dr474/ <?php print $node_url ?> " title=" <?php print $title ?> "> <?php print $title ?> </a></h2>
<?php endif; ?>
<?php print $$terms ?>
<?php print $picture ?>
<div class="info"> <?php print $submitted ?> <span class="terms"> <?php print $terms ?> </span></div>
<div class="content">
<?php print $content ?>
</div>
<?php if ($links): ?>
<?php if ($picture): ?>
<br class='clear' />
<?php endif; ?>
<div class="links"> <?php print $links ?> </div>
<?php endif; ?>
<div class="book"><div class="nav"> <div class="links">
<?php
$next = next_prev($node->nid, 'image', 'next', 'Successiva', 'next');
$previous = next_prev($node->nid, 'image', 'prev', 'Precedente', 'prev');
echo $previous;
echo $next;
?>Questo è il contenuto del file template.php.
<?php
function phptemplate_image_gallery($galleries, $images) {
return _phptemplate_callback('image_gallery', array('galleries' => $galleries, 'images' => $images));
}
function next_prev($current_nid, $type, $btn_type, $label, $class) {
$query = db_query("SELECT tid FROM {term_node} WHERE nid = $current_nid;");
$tid = db_result($query);
$sql = "SELECT n.nid, n.title FROM {node} n INNER JOIN {term_node} t ON n.nid = t.nid ";
$sql .= "INNER JOIN {term_data} r ON t.tid = r.tid WHERE n.type = '".$type."' AND n.nid ";
switch ($btn_type) {
case "next":
$sql .= "< ";
break;
case "prev":
$sql .= "> ";
break;
default:
return NULL;
break;
}
$sql .= $current_nid ." AND r.tid = ". $tid ." AND n.status = 1 ORDER BY nid DESC;";
$query = db_query($sql);
$result = db_fetch_array($query);
if (!$result) {
$query = db_query("SELECT name FROM {term_data} WHERE tid = $tid;");
$name = db_result($query);
return l("Ritorna a $name", "$type/tid/$tid", array("title" => $name, "class" => $class));
} else {
return l($label, "node/".$result['nid'], array("title" => $label, "class" => $class));
}
}
?>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;
?><?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;
}Con l'avvento della nuova versione di Drupal, la 5.0, sarà inserito il file robots.txt nel pacchetto scaricabile dal sito ufficiale, già pronto per l'uso.
Questa aggiunta è stata necessaria perché i Robots (GoogleBOT, Inktomi, etc.) tentano di leggere il file robots.txt per avere regole di comportamento sul dominio. Usando però i Clean URL (senza cioè ?q= nell'url, tramite ModRewrite), e non essendoci il file nella "root" del sito, Drupal stesso rispondeva alla richiesta mostrando una pagina con errore 404 (Pagina Non Trovata). Questo crea tonnellate di logg inutili nella tabella watchdogg, rallentando di conseguenza il sito.
Il robots.txt attuale, che potete usare anche nella versione 4.7.x e precedenti è possibile vederlo nella CVS di Drupal.org:
http://cvs.drupal.org/viewcvs/drupal/drupal/robots.txt?view=markup
Io ho aggiunto qualche riga del "Disallow" per eliminare dall'indice alcuni URL per chi usa il modulo Pathauto. Lo uso sul mio blog su Drupal.
Disallow: /nodeg/
Disallow: /filter/
Disallow: /blog/rss/
Disallow: /blog/cms/feed
Disallow: /blog/analisi/feed
La prima regola serve per eliminare URL del tipo node/124 e simili e serve per chi ha il pathauto abilitato per impostare l'url aliasg sui nodi.
Gli altri servono per evitare che i feed delle categorie vengano memorizzati negli indici dei motori di ricerca.
Domande ancora in attesa di risposta. Per completarle tu stesse, fai domanda sul forum.