Upload
nois3lab
View
5.968
Download
0
Embed Size (px)
DESCRIPTION
Slide prediposte per un corso di livello intermedio sul CMS Drupal. Nel corso delle slide si affronta una prima parte di presentazione delle caratteristiche di Drupal per poi procedere verso un approfondimento relativo ad alcuni dei suoi plugin principali con una particolare attenzione al theming, anche avanzato.
Citation preview
| Slide 2
Drupal, un primo assaggio
Drupal lessons
✔ Una overview➔ web 2.0 e Content management systems
✔ Il core➔ Nodi, commenti, blocchi. Il sistema
✔ I plugin (o moduli)➔ Alcuni moduli essenziali, una prima presentazione
✔ L'amministrazione➔ Utenti, ruoli, permessi, pagine di amministrazione
✔ Basic theming
➔ Temi, subthemes, regioni, fogli di stile
| Slide 3
Una overview
CMS - Content management system
Un sistema per gestire:
✔ L'immissione
✔ La pubblicazione
✔ La presentazione
✔ L'organizzazione
dei contenuti in un applicativo web
Drupal lessons
| Slide 4
Web 2.0 / New web
Un tempo c'erano gli editor HTML, oggi si usano dei software per fare web, perché il web è ”dinamico”, ovvero:
✔ Ha pagine che non risiedono in ”file” ovvero queste vengono
generate dinamicamente
✔ Ha contenuti pubblicati dai visitatori del sito (UGC)
✔ Presenta contenuti contestuali
✔ Comunica con altri servizi online
Una overview
| Slide 5
I linguaggi
✔ Php <?php ?>
✔ Javascript <script language=”text/javascript”></script>
✔ Xhtml <html></html>
✔ Css selector { property:value }
✔ Xml <tag></tag>
Una overview
| Slide 6
Drupal, un primo assaggio
✔ L'environment
Lamp (Linux/Apache/Mysql/Php)
✔ Il core
✔ I moduli
✔ I temi
✔ Le versioni
Drupal lessons
| Slide 7
Il core
✔ Nodi e commenti
Tutto è un nodo...o quasi
✔ Utenti
Registrazione / Login – L'utente root
✔ Tassonomie
Vocabolari e termini
✔ I blocchi
✔ Il sistema
Drupal, un primo assaggio
| Slide 8
L'amministrazione
✔ Ruoli utente
✔ I permessi utente
✔ Aggiornamento ed installazione di moduli
✔ Script di update del db, update.php
✔ Il tema di amministrazione
✔ Cron
✔ Le clean urls
✔ I tipi di contenuto
Drupal, un primo assaggio
| Slide 9
I plugin
Drupal è un software modulare, ovvero molte funzionalità possono essere abilitate installando dei plugin disponibili su drupal.org
✔ CCK – Content construction kit
✔ Views, un modulo per prelevare e presentare i contenuti
✔ Token, uno strumento per tutti gli altri moduli
✔ Pathauto, ovvero gestire in modo automatico la
generazione di alias
Drupal, un primo assaggio
| Slide 10
I plugin
✔ Imagecache per gestire in maniera avanzata la
pubblicazione di immagini
✔ Tagadelic per generare tag clouds
✔ Webform per generare form da esporre all'utente
I plugin vengono installati, abilitati e poi configurati da un utenza abilitata. Alcuni plugin richiedono l'installazione di librerie di terze parti, è importante leggere sempre il README contenuto nella root del modulo.
Drupal, un primo assaggio
| Slide 11
Basic theming
Drupal è pensato per essere interamente customizzabile
✔ Per theming si intende il complesso delle operazioni
necessarie per modificare il codice html prodotto dal CMS o
da plugin installati.
✔ La temizzazione avviene a diversi livelli
✔ La temizzazione è il presupposto per la realizzazione di
layouts ed interfacce personalizzate
Drupal, un primo assaggio – Basic theming
| Slide 12
Theme engines
✔ Php template, ovvero l'engine di default
✔ Smarty
✔ Php tal
✔ Si può anche bypassare l'uso di un theme engine
Php template è l'engine largamente più utilizzato,
si basa su file individuali con estensione tpl.php che contengono codice html e snippet di codice php
Drupal, un primo assaggio – Basic theming
| Slide 13
Temi di default
Un tema è una collezione di file che consentono di predisporre il look & feel di un sito
I temi presenti di default sono:
✔ Garland e Minnelli (php template)
✔ Bluemarine (php template, rimosso da D7)
✔ Pushbutton (php template, rimosso da D7)
✔ Chameleon (nessun theme engine)
Drupal, un primo assaggio – Basic theming
| Slide 14
Themes e subthemes
Si possono installare nuovi temi a piacimento.
Come per i plugin è consigliabile l'installazione all'interno di una directory diversa da quella presente di default, in particolare in sites/all/themes
In drupal 6 è possibile realizzare dei temi che utilizzino un altro tema per funzionare, questi vengono chiamati subthemes
Drupal, un primo assaggio – Basic theming
| Slide 15
Creare un tema
Un tema è composto da alcuni file, alcuni sono indispensabili, altri possono venire aggiunti a seconda delle necessità
✔ Il file .info
✔ Lo style.css
✔ page.tpl.php
✔ node.tpl.php
✔ template.php
Drupal, un primo assaggio – Basic theming
| Slide 16
Un esempio, creare un subtheme a partire da blueprint
✔ Blueprint è un tema che utilizza il framework css omonimo
✔ É uno dei tanti framework che implementano un sistema a
griglie (di natura tipografica), di solito di 960px di larghezza
✔ Per sfruttare le sue funzionalità senza modificare il tema che
potrà successivamente venire aggiornato si deve creare un
subtheme
✔ Per creare un subtheme serve almeno un file .info ed un foglio
di stile
Drupal, un primo assaggio – Basic theming
| Slide 17
blueprint_subtheme
✔ Creiamo una directory con il nome del tema all'interno di
sites/all/themes/
✔ Creiamo un file con il nome del tema e l'estensione .info
con almeno queste informazioni
✔ Creiamo infine un file .css, in questo caso è all'interno di
una directory /css nella dir del tema
Drupal, un primo assaggio – Basic theming
| Slide 18
Le regioni
✔ Una pagina in Drupal è la somma di regioni configurate all'interno del file .info del tema
✔ Queste le regioni che saranno disponibili all'interno della pagina di amministrazione dei blocchi e dove questi saranno posizionabili
Drupal, un primo assaggio
| Slide 19
Le regioni
✔ Normalmente le regioni sono disponibili per i template di
pagina, come il generico page.tpl.php
✔ Per attivare una regione creata attraverso il file.info è
necessario inserire uno snippet all'interno del template di
pagina
<?php print $nomedellaregione ?>
✔ È anche possibile includere una regione all'interno dei
template del nodo, come il generico node.tpl.php
Drupal, un primo assaggio – Basic theming
| Slide 20
Template.php
✔ Per inserire una regione all'interno di un template dei nodi è necessario sfruttare un particolare file: template.php
✔ Questa funzione produce la disponibilità delle regioni sotto forma di variabili all'interno di template dei nodi
Drupal, un primo assaggio – Basic theming
| Slide 21
Drupal, un passo oltre✔ Costruire e presentare contenuti complessi➔ Cck
➔ Views
➔ Webform
➔ Wysiwyg
➔ Pathauto
✔ SEO - search engine optimization -➔ Page titles
➔ Nodewords e metatags dinamiche
✔ Advanced theming➔ Tipi di contenuto
➔ Views
➔ Preprocess functions
➔ Override di theme_ functions
Drupal lessons
| Slide 22
Content construction kit
✔ Cck fornisce i mattoni per la costruzione di tipologie di
contenuto, ovvero campi da predisporre per l'inserimento
da parte degli utenti.
✔ Se Drupal predispone un contenuto generico rappresentato
da un titolo, un corpo e degli allegati con cck è possibile
predisporre contenuti molto elaborati e multimediali.
Drupal, un passo oltre. Cck
| Slide 23
CCK come framework
✔ CCK è' un framework che consente l'aggiunta di campi ad
una tipologia di contenuto, il modulo in se mette a
disposizione le API mentre attraverso i plugin vengono
fornite nuove tipologie di field
✔ Esistono decine di plugin che sfruttano CCK per attivare
tipologie di campi di inserimento i più diversi
✔ Date, immagini, video, file, link, testo, audio, email, etc.
Drupal, un passo oltre. CCK
| Slide 24
Gestione avanzata delle immagini
Image field, Imagecache ed Imageapi
✔ Se imagecache è lo strumento per gestire le immagini
generando dinamicamente thumbnails, imagefield è il campo
cck che consente l'upload e la presentazione delle immagini
all'interno dei contenuti richiamando uno dei preset impostati.
✔ Imagecache consente, a seconda dei tool disponibili e dei
plugin installati, di scalare e tagliare le immagini a piacimento
generando thumbnails che vengono cachate, ovvero salvate in
modo da non dover venire ricreate ad ogni chiamata
Drupal, un passo oltre. CCK
| Slide 25
Image cache
✔ L'installazione di imagecache richiede quella di imageapi,
quella di imagefield richiede invece l'installazione di filefield
✔ Attraverso imagecache è possibile creare dei preset,
ovvero delle impostazioni per la generazione di thumb che
sarà possibile richiamare all'interno dei campi generati con
imagefield
Drupal, un passo oltre. CCK
| Slide 26
Image cache, i preset
✔ Questa l'interfaccia per la configurazione di un'operazione di scale per
un preset di imagecache. In generale scalare un'immagine implica un
resize proporzionale della stessa mentre utilizzando un'azione di crop
l'immagine viene tagliata.
✔ È possibile consentire ad imagecache di fare upscaling, ovvero di
ingrandire l'immagine con conseguente perdita di qualità
Drupal, un passo oltre. CCK
| Slide 27
Imagefield
✔ Creato un preset questo è disponibile per l'utilizzo per ogni
campo imagefield presente all'interno dei tipi di contenuto
✔ L'aggiunta di un imagefield in un tipo di contenuto
✔ In display fields è possibile scegliere le modalità di visualizzazione dell'immagine nel teaser e nel full node
Drupal, un passo oltre. CCK
| Slide 28
Contenuti multimediali, file audio e video
Embedded media field
Consente l'embed dei contenuti audio, video, immagini di moltissimi providers quali youtube, vimeo, google, Lastfm, Myspace, Flickr, Picasa.
✔ Configurate le opzioni di visualizzazione sarà possibile, nella creazione di un contenuto, inserire una Url e mostrare il video, l'immagine o la playlist avendo impostato il giusto provider nelle opzioni del campo.
Drupal, un passo oltre. CCK
| Slide 29
Il modulo video
Con il modulo video è invece possibile uplodare un file in molti formati, convertirlo utilizzando ffmpeg e mostrarlo all'interno di un player flash
✔ Questa soluzione implica però l'installazione di un player flash
e l'abilitazione di contenuti flash attraverso swftools
✔ La conversione avviene invece utilizzando ffmpeg che deve
essere disponibile sul server
Drupal, un passo oltre. CCK, audio e video
| Slide 30
Configurazione di un field video
✔ Il minimo delle operazioni richieste è l'installazione di un
player flash, l'abilitazione dell'input filter di swftools all'interno
dell'input type del nostro contenuto e la selezione di swftools
fra le opzioni di visualizzazione del campo all'interno della
tipologia di contenuto.
✔ Esistono numerosi player di file flash, ad esempio flowplayer
nella nuova versione 3x che consente anche la
personalizzazione della skin
Drupal, un passo oltre. CCK, audio e video
| Slide 31
Audio
✔ Per embeddare contenuti audio di terze parti si può
utilizzare il relativo field messo a disposizione da
embedded media field
✔ Per pubblicare direttamente contenuti audio, uploadando il
file audio sul nostro server, è invece necessario installare il
modulo audio, si potrà poi utilizzare un normale field di tipo
file per il quale si scelga swftools nelle opzioni di
visualizzazione in modo che esso risulti riproducibile.
Drupal, un passo oltre. CCK, audio e video
| Slide 32
Node reference
È un campo che consente di richiamare un altro contenuto (nodo) presente nel sito.
Così facendo si crea una relazione fra i due contenuti che potrà anche essere sfruttata nella creazione di views che prelevino informazioni da contenuti diversi, associati appunto da un field nodereference
✔ Per inserire un field nodereference basta scegliere il giusto
type e selezionare uno dei widget disponibili
Drupal, un passo oltre. CCK, nodereference
| Slide 33
Configurazione di un field nodereference
✔ Nelle opzioni del field si potranno scegliere i tipi di nodi referenziabili e nelle opzioni di visualizzazioni si potrà scegliere di visualizzare il titolo, il teaser o il full node del nodo referenziato. Esiste anche un modulo chiamato node reference views che consente di utilizzare una view come plugin di stile per un campo nodereference
Drupal, un passo oltre. CCK, nodereference
| Slide 34
User reference
È un campo attraverso il quale si può inserire una referenza ad un utente, questo offre la possibilità di avere un link alla relativa pagina utente o, se disponibile, ad una sua pagina di profilo avanzato.
Anche in questo caso è possibile scegliere diversi widget per l'immissione del campo, utilizzando autocomplete si potranno inserire alcuni caratteri e lasciare che sia il sistema a fornirci le alternative disponibili
Drupal, un passo oltre. CCK, user reference
| Slide 35
Views 2
✔ Views è uno degli strumenti più potenti a disposizione del
Cms Drupal, attraverso questo modulo ed una varietà di
plugin disponibili è possibile reperire e mostrare contenuti in
maniera guidata attraverso una GUI che utilizza molte
funzionalità di jquery
✔ È possibile generare attraverso views intere pagine e
blocchi e contemporaneamente definire numerosi altri
elementi quali il titolo di pagina, un header ed un footer.
Drupal, un passo oltre. Views 2
| Slide 36
La GUI di views 2
A seconda dei plugin installati l'interfaccia di amministrazione di views mostrerà diverse tipologie di views generabili, la più importante e più frequentemente utilizzata rimane comunque la tipologia ”node”
Drupal, un passo oltre. Views 2
| Slide 37
I display
✔ In una view è possibile inserire quanti display si
desiderino.
✔ Un display è una modalità di visualizzazione, la
stessa view
✔ Una singola view perciò può essere l'engine di
diverse visualizzazioni utilizzate in diversi contesti.
Drupal, un passo oltre. Views 2
| Slide 38
✔ Page
Attraverso questo display si può generare una pagina ed il path cui risulti raggiungibile✔ Block
Genera un blocco attivabile nella pagina di amministrazione dei blocchi✔ Attachment
Genera una visualizzazione che si aggiunga prima o dopo di un altro display della stessa view✔ Feed
Genera in questo caso un file XML, quindi un Feed RSS cui gli utenti possono iscriversi
Drupal, un passo oltre. Views 2
| Slide 39
Row styles
Node o fields
✔ Si possono visualizzare i contenuti come nodi (teaser o full
node) o per singoli campi
✔ Questa scelta risulta spesso determinata dalla generale
pianificazione riguardo la temizzazione del sito, una view
per node mostrerà i contenuti per come essi sono temizzati
a monte della view, una per field è invece interamente
temizzabile ma richiede un lavoro aggiuntivo.
Drupal, un passo oltre. Views 2
| Slide 40
Styles di una view
✔ Ad ogni display è associabile uno style differente
✔ Molti stili vengono messi a disposizione dai diversi plugin installati, in generale è invece possibile presentare i contenuti di una view come unformatted, html list (ordered e unordered), Table e grid
Drupal, un passo oltre. Views 2
| Slide 41
I filtri
Una view senza filtri impostati carica tutti i contenuti esistenti sul sito, i filtri sono perciò delle impostazioni che consentono di selezionare, limitare i contenuti dai quali prelevare informazioni
I filtri più comunemente utilizzati sono: node type, node published, date
In particolare attraverso l'impostazione del filtro node published = Yes ci assicuriamo che vengano mostrati ai visitatori solo contenuti effettivamente pubblicati
Drupal, un passo oltre. Views 2
| Slide 42
Relationships
✔ Sono un nuovo strumento di views 2, estremamente potente.✔ Consentono di reperire informazioni all'interno di contenuti
referenziati in qualche modo da quelli attualmente caricati dalla view
✔ Sono quindi strettamente correlate a id dei nodi, uid di utenti ad esempio attraverso field CCK di tipo nodereference o user reference
✔ È in teoria possibile concatenare attraverso relationships un numero indefinito di tipologie di contenuto
✔ Una volta stabilita una relationship sarà possibile visualizzare attraverso la view anche tutti i campi appartenenti alla tipologia collegata
Drupal, un passo oltre. Views 2
| Slide 43
Header e footer
✔ È possibile aggiungere un header ed un footer ad una view. Ovvero
contenuti da mostrare prima e dopo quelli della view
✔ Si possono utilizzare tutti i formati di input disponibili
Drupal, un passo oltre. Views 2
| Slide 44
Exposed filters
È possibile esporre un filtro agli utenti affinché questi effettuino una selezione nella visualizzazione della view
Per esporre un filtro è sufficiente cliccare su expose nell'interfaccia di configurazione del filtro
Questa funzionalità sostanzialmente consente molteplici utilizzi quali la creazione di un form di ricerca per titolo o per autore piuttosto che la possibilità per l'utente di selezionare direttamente la categoria dei contenuti da visualizzare, anche utilizzando Ajax
Drupal, un passo oltre. Views 2
| Slide 45
Ajax - Asynchronous JavaScript and XML
Ajax è una tecnica che fa solitamente uso di funzioni javascript per effettuare chiamate ad un server asincronamente rispetto al caricamento della pagina ovvero consente di modificare dinamicamente i contenuti della stessa senza richiedere un completo refresh.
Views 2 implementa Ajax ad esempio nel paging, ovvero nella divisione dei contenuti in pagine diverse quando questi superino il limite da noi stabilito
Drupal, un passo oltre. Views 2
| Slide 46
Embed di una view
Come visto una view genera una pagina oppure un blocco.
È anche possibile e talvolta necessario embeddare una view all'interno di un contenuto, sia esso un nodo specifico, una tipologia di contenuto, una pagina specifica, una tipologia di pagina, una tipologia di blocco, un blocco specifico e perfino un'altra view.
Drupal, un passo oltre. Views 2
| Slide 47
✔ Lo snippet presentato nella precedente slide fa uso della funzione
<?php views_embed_view($name, $display_id = 'default') ?>
in cui tutti i parametri aggiuntivi vengono passati come arguments della view
✔ È anche possibile utilizzare altre funzioni
✔ Infine si può utilizzare un modulo chiamato insert_view o anche viewfield per embeddare una view all'interno di un nodo o di un template di una tipologia di contenuto
Drupal, un passo oltre. Views 2
| Slide 48
Tanti plugin tanti differenti styles
Come detto views dispone di moltissimi plugin, alcuni di questi consentono la presentazione dei contenuti attraverso un'interfaccia costruita con jquery.
A mo' di esempio questo il risultato di una view con style views showcase fornito dal modulo omonimo
Drupal, un passo oltre. Views 2
| Slide 49
Arguments
✔ Gli arguments sono porzioni dell'url o parametri attraverso cui è possibile filtrare dinamicamente una view
✔ È possibile ad esempio visualizzare tutte le immagini presenti all'interno di ogni nodo in uno showcase semplicemente utilizzando il node id come argument ed inserendo il blocco in una regione direttamente all'interno del tipo di contenuto
Drupal, un passo oltre. Views 2
| Slide 50
✔ Questo il risultato
Drupal, un passo oltre. Views 2
| Slide 51
Arguments
✔ Questo è uno dei casi più semplici, l'argument, ovvero il node id
viene prelevato direttamente dall'url (node/nid è il path di ogni
contenuto di tipo node per Drupal) e consente di filtrare le
immagini presenti in tutti i nodi sulla base del nid del nodo che
stiamo visualizzando
✔ Questa è una view dinamica, ovvero i contenuti che essa
mostra dipendono da un parametro contestuale e non
predefinito dall'Amministratore
✔ È possibile realizzare configurazioni di views molto complesse e
potenti attraverso arguments multipli
Drupal, un passo oltre. Views 2
| Slide 52
Webform
✔ Webform è il modulo che consente la creazione di form anche
complessi con Drupal
✔ Questi form possono contenere numerosi elementi quali:
Textfield, textarea, select, fieldset, email, etc.
✔ È anche possibile inserire dei campi condizionali che vengono
mostrati quando l'utente selezioni una determinata opzione in
un precedente campo utilizzando un plugin chiamato
webform_conditional
Drupal, un passo oltre. Webform
| Slide 53
WYSIWYG
✔ È ormai uno standard la presenza di software wysiwyg
( what you see is what you get ) nell'inserimento dei
contenuti all'interno dei CMS
✔ Questi software predispongono funzionalità anche
avanzate di editing di testi e non solo all'interno dei campi
in cui sia possibile inserire html
✔ L'inserimento da parte di utenti inesperti di html all'interno
dei contenuti che pubblicano può ingenerare rischi per la
stabilità del layout.
Drupal, un passo oltre. Wysiwyg
| Slide 54
WYSIWYG
✔ Esistono numerosi moduli che implementano questa
funzionalità in Drupal
✔ Ckeditor, Yui Editor, Xstandard, wysiwyg, Html Box
✔ Le funzionalità disponibili vanno dalla formattazione del
testo, l'inserimento di links, l'inserimento di immagini,
l'impostazione manuale del teaser e molto altro ancora.
Drupal, un passo oltre. Wysiwyg
| Slide 55
Pathauto
✔ È il modulo che consente di gestire in maniera automatica la
generazione di alias
✔ In Drupal ogni contenuto (nodo) ha un path di questo genere
/node/nid dove nid è un numero univoco assegnato al
contenuto in maniera progressiva
✔ L'alias, in Drupal, è un percorso alternativo cui poter
raggiungere un contenuto, questo consente di utilizzare
percorsi più leggibili e significativi per l'utente e per i motori di
ricerca
Drupal, un passo oltre. Pathauto
| Slide 56
Pathauto
✔ È quindi possibile creare artificiosamente attraverso
pathauto una struttura gerarchica di contenuti in percorsi
annidati
✔ Questa potenzialità si riflette ad esempio in una razionalità
dei percorsi offerti all'utente, in una facile ed efficace
indicizzazione da parte del motore di ricerca e la possibilità
di proporre all'utente un breadcrumb che renda facilmente
comprensibile la posizione all'interno dell'albero del sito.
Drupal, un passo oltre. Pathauto
| Slide 57
Pathauto
✔ Con i soli moduli pathauto e taxonomy è possibile creare una
organizzazione razionale dei contenuti
✔ Affinché un contenuto abbia un percorso di questo genere:
Home -> categoria -> termine -> titolo
è sufficiente che ci sia un termine di un vocabolario e l'intero
percorso sarà navigabile e significativo
✔ La creazione di alias automatici utilizza largamente dei
tokens ovvero dei placeholder di contenuti dinamici per
come forniti dal modulo token
Drupal, un passo oltre. Pathauto
| Slide 58
SEO (seach engine optimization)
✔ Realizzare un sito che sia ottimizzato per i motori di ricerca
non è diverso da realizzare un buon sito
✔ Ci sono però dei contenuti, chiamati metatags, che vengono
appositamente predisposti per i motori di ricerca affinché
questo riconosca facilmente il contenuto delle nostre pagine
web
✔ Esistono diversi moduli in Drupal per inserire contenuti quali
keywords, description e page titles
Drupal, un passo oltre. SEO
| Slide 59
Page titles
Questo modulo consente di inserire in maniera automatica per tipologie di contenuto o anche manuale per singolo contenuto dei titoli di pagina distinti dai titoli delle pagine per come visualizzati dall'utente.
✔ I page titles ad esempio sono quelli mostrati da google come
risultato della ricerca
✔ Anche in questo caso si fa largamente uso dei tokens per
generare dinamicamente page titles che comprendano ad
esempio il nome del sito, la categoria, il titolo del contenuto
Drupal, un passo oltre. SEO
| Slide 60
Questo è il modulo principale per produrre delle metatags, consente la creazione di molte di queste, comprese quelle definite dalla dublin core intiative sulla base di
✔ Impostazioni per nodo
✔ Impostazioni per path
✔ Impostazioni per tipi di contenuto con un plugin
Drupal, un passo oltre. SEO
Nodewords
| Slide 61
Nodewords
✔ È anche possibile generare meta tags dinamicamente,
ovvero sulla base di contenuti presenti nella pagina.
✔ Le caratteristiche delle due principali metatags sono:
La description non dovrebbe essere superiore ai 250
caratteri
Le keywords sono termini separati da virgole
Drupal, un passo oltre. SEO
| Slide 62
Advanced Theming
✔ Il sistema di theming di Drupal prevede il passaggio per il
relativo layer come insieme di funzioni, overrides di funzioni e
templates.
✔ È possibile perciò adottare diverse metodologie per intervenire
sulla temizzazione di un elemento
✔ Un aiuto nell'individuare l'approccio giusto è rappresentato dal
modulo devel che fornisce uno strumento chiamato theme
developer, questo consente di evidenziare quale template o
funzione abbia generato l'elemento che visualizziamo
Drupal, un passo oltre. Advanced theming
| Slide 63
La temizzazione dei tipi di contenuto
Un tipo di contenuto può essere interamente temizzato utilizzando un file nel path del tema che stiamo utilizzando creando un file node-nodetype.tpl.php
✔ Un riferimento rispetto al modo di printare <? php print
$nomevariabile ?> gli elementi base del contenuto, è il
node.tpl.php presente praticamente in tutti i temi.
✔ È il template base utilizzato dalle pagine dei nodi, ovvero di
tutti i contenuti appartenenti ad un tipo di contenuto
Drupal, un passo oltre. Advanced theming
| Slide 64
node.tpl.php
✔ Se all'interno di questo si sceglie di non printare $content
all'interno del node-nodetype.tpl.php in sostanza di prende
completamente possesso del tipo di contenuto
✔ Dovremo perciò sapere come printare gli elementi del nostro
contenuto, il modo più semplice è rappresentato dall'uso del
modulo contemplate ovvero content template, che ci guida
rispetto a come printare i diversi field cck che abbiamo
inserito nel contenuto.
Drupal, un passo oltre. Advanced theming
| Slide 65
node.tpl.php
✔ Non basta sapere come printare i field cck, ci saranno
probabilmente alcuni moduli che inseriscono i loro contenuti
all'interno di altre regioni del nodo
✔ In questo ci aiuta il modulo devel, possiamo printare
direttamente nel template le funzioni theme_modulename()
oppure delle variabili da noi create nel file template.php
✔ Nel file tpl.php del nostro tipo di contenuto è possibile
includere altri contenuti come views
✔ Per le views è sufficiente utilizzare il codice per l'embed
Drupal, un passo oltre. Advanced theming
| Slide 66
Templates
✔ È possibile anche mostrare altri nodi attraverso un
template, se infatti abbiamo una referenza ad un altro
nodo, come un campo nodereference possiamo utilizzare la
funzione node_load($param = array(), $revision = NULL, $reset = NULL)
✔ Avremo a disposizione l'intero $object nodo, possiamo
vedere come è fatto all'interno attraverso un print_r()
oppure, se disponiamo del modulo devel utilizzando la
funzione dsm($input, $name = NULL)
Drupal, un passo oltre. Advanced theming
| Slide 67
Theming di views 2
Il nostro sito presenterà pagine con contenuti generati anche o interamente attraverso views
✔ Modificare il codice generato da una view comporta diversi
passaggi e l'uso di diversi file di template
✔ La UI di views 2, tuttavia, fornisce la possibilità di
customizzare il codice di ogni campo:
Drupal, un passo oltre. Advanced theming
| Slide 68
Theming di views2
Cliccando su questo link:
Drupal, un passo oltre. Advanced theming
| Slide 69
Theming di views 2
Nella schermata precedente vengono mostrati tutti i template con cui è possibile temizzare diversi aspetti della nostra view ed i diversi nomi dei file in funzione dei diversi livelli di specificità che questi assumono
✔ Si possono modificare tutti i singoli elementi di una view ma
questa operazione può diventare estremamente complessa
✔ Si può però temizzare i diversi aspetti delle view attraverso
dei template generici ed intervenire in altro modo solo
laddove una temizzazione puntuale è essenziale per i nostri
scopi.
Drupal, un passo oltre. Advanced theming
| Slide 70
Preprocess functions
In questo snippet di codice php vengono definite alcune variabili relativi al contenuto commento, queste variabili saranno accessibili nel file comment.tpl.php.
Drupal, un passo oltre. Advanced theming
| Slide 71
Override di funzioni theme_
È possibile utilizzare simili funzioni all'interno del file template.php nella dir del tema che stiamo utilizzando anche per molti altri elementi di Drupal quali page, node, block
Così facendo possiamo aggiungere o modificare variabili esistenti rendendole disponibili nei nostri file di template
In particolare in questo caso il tema blueprint modifica il separatore presente fra i diversi elementi del breadcrumb, definito in theme.inc con la funzione theme_breadcrumb()
Drupal, un passo oltre. Advanced theming
| Slide 72
Bibliografia
✔ Pro Drupal Development 2nd edition – Apress
✔ Using Drupal – O'Reilly
✔ Drupal handbook
✔ Building powerful and robust websites with Drupal 6 - Packt
Publishing
✔ Drupal 6 Site Builder Solutions - Packt Publishing
✔ Drupal 6 Themes - Packt Publishing
✔ Drupal 6 Javascript and Jquery - Packt Publishing Ltd
Drupal lessons, bibliografia
| Slide 73
Linkografia
✔ http://www.drupal.org✔ http://api.drupal.org✔ http://drupal.org/handbooks✔ http://www.drupalitalia.it✔ http://thedrupalblog.com✔ http://www.lullabot.com✔ http://developmentseed.org✔ http://www.agileapproach.com/✔ http://nanwich.com/✔ http://drupalbook.com
Drupal lessons, linkografia
| Slide 74
Glossario dei termini
✔ Core➔ L'insieme di funzionalità, codice, files forniti di default da Drupal
✔ Nodo (Node)➔ L'unità di misura di drupal, il nodo è l'object dentro il quale sono contenute tutte
le informazioni rispetto al contenuto
✔ Moduli (Modules o plugins)➔ Componenti aggiuntivi che è possibili installare ed attivare in un'installazione
✔ Clean Urls➔ Drupal utilizza dei percorsi preceduti da una stringa come questa ?q=, è
possibile evitare l'uso di questi se si abilitano le clean urls
✔ Tipo di contenuto (content type)➔ In Drupal i singoli nodi appartengono sempre ad una tipologia di contenuto e da
questa ottengono tutte le impostazioni ed i campi predisposti.
Drupal lessons, glossario
| Slide 75
✔ Percorso (path)➔ Il percorso di un contenuto quale un nodo è in drupal fatto in questo modo: /node/$nid.
È possibile modificare questo percorso, o meglio crearne uno alternativo attraverso il sistema degli alias
✔ Alias➔ Il percorso alternativo configurato automaticamente o manualmente per un contenuto
di tipo node
✔ API➔ Sono il complesso delle funzioni messe a disposizione degli sviluppatori per utilizzare
le funzionalità predisposte dal core o da moduli aggiuntivi
✔ Blocchi (blocks)➔ Elementi che è possibile posizionare all'interno delle regioni configurate da un dato
tema. È possibile inoltre predisporre opzioni di visualizzazione anche attraverso codice PHP che mostrino cioè l'elemento solo al verificarsi di determinate condizioni
✔ Regioni (Regions)➔ In d6 vengono configurate direttamente all'interno del file .info del tema utilizzato
Drupal lessons, glossario
| Slide 76
✔ Tema (theme)➔ L'insieme dei files che Drupal utilizza per finalizzare il codice xHTML da
presentare nella pagina richiesta. È composto almeno da un file.info e da un file.css
✔ Subtheme➔ È un tema a tutti gli effetti ma ha la caratteristica di basarsi su un differente tema,
ovvero di ereditarne tutte le impostazioni che possono tuttavia venire sovrascritte. È la tecnica utilizzata più di frequente da i web designer quando utilizzino drupal
✔ View➔ Risultato della configurazione di una visualizzazione tramite il modulo views. È
una query effettuata al database frutto di impostazioni attraverso una GUI. L'object view porta con se anche numerose informazioni rispetto alla modalità di presentazione dei risultati della query come il codice xHTML
✔ GUI ➔ Graphical user interface, interfaccia grafica. Ovvero una rappresentazione
grafica, user friendly attraverso cui far interagire un utente con un componente software
Drupal lessons, glossario
Drupal lessons
Lessons
By nois3lab
Questa presentazione è stata realizzata utilizzando esclusivamente software libero. Drupal è un marchio registrato di Dries Buytaert. Questo documento viene rilasciato sotto la licenza creative commons Attribution - Share alike 3.0 Unported