• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Drupal Lessons by nois3lab
 

Drupal Lessons by nois3lab

on

  • 4,805 views

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 ...

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.

Statistics

Views

Total Views
4,805
Views on SlideShare
4,708
Embed Views
97

Actions

Likes
2
Downloads
122
Comments
0

10 Embeds 97

http://blog.nois3lab.it 31
http://www.slideshare.net 27
http://nois3lab.it 16
http://portfolio.rootiers.com 9
http://medifocus.org 8
http://stage.nois3lab.it 2
http://webcache.googleusercontent.com 1
http://xpeppers.local 1
http://ilovetheopenweb.com 1
http://www.nois3lab.it 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Drupal Lessons by nois3lab Drupal Lessons by nois3lab Presentation Transcript

    • Drupal lessons Lessons
    • Drupal lessons | Slide 2 Drupal, un primo assaggio ✔ 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
    • Drupal lessons | 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
    • Una overview | 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>
    • Drupal lessons | Slide 6 Drupal, un primo assaggio ✔ L'environment Lamp (Linux/Apache/Mysql/Php) ✔ Il core ✔ I moduli ✔ I temi ✔ Le versioni
    • Drupal, un primo assaggio | 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 – Basic theming | 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 | 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 – Basic theming | 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 lessons | 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, un passo oltre. Cck | 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, audio e video | 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, nodereference | 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, user reference | 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. Views 2 | 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. Webform | 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. Wysiwyg | 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. Pathauto | 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. SEO | 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 Nodewords 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 | 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. Advanced theming | 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 lessons, bibliografia | 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, linkografia | 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, glossario | 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 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