Drupal Day 2011 - Drupal: stand alone VS integrazione con altri software
Presentazione Drupal 2012 - Associazione Drupal Italia
1.
2. Chi siamo
L'Associazione Drupal Italia: un'organizzazione dedicata
alla diffusione e alla conoscenza del CMS open source
Drupal all'interno del territorio nazionale, collaborando
con enti nazionali e internazionali del settore ICT.
http://drupalitalia.org
3. La nascita
Drupal nasce nel 2000, tra i banchi
dell'università di Anversa.
All'inizio si trattava di un piccolo sito
interattivo creato da Dries
Buytaert per permettere agli
studenti di inviare note e notizie
utili a tutti.
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
4. Che cos'è?
Drupal è un content management system: uno
strumento software studiato per facilitare la
gestione dei contenuti di siti web
Ha un'architettura lego style, è scritto in PHP ed
è distribuito sotto GNU GPL licence.
Offre un' interfaccia di amministrazione
attraverso la quale è possibile gestire ogni
singola parte del sito web, senza possedere
skill di programmazione.
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
5. Cosa si può fare con Drupal?
Weblog
Community Web Site
Forums
Social Network Site
Wiki/Knowledge Base
Business Web Application
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
6. Punti di Forza Punti di Debolezza
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
7. Punti di Forza Punti di Debolezza
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
9. Una comunità in crescita
1751 partecipanti a Londra 2011
1200 partecipanti a Copenaghen 2010
850 partecipanti a Parigi 2009
504 partecipanti a Szeged 2008
430 partecipanti a Barcellona 2007
150 partecipanti a Bruxelles 2006
100 partecipanti ad Amsterdam 2005
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
10. Potente e modulare
15807 Moduli
1368 Temi
408 Distribuzioni
17533 Sviluppatori
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
11. Utilizza tecnologie e
pratiche comprovate
Test automatici e QA
API estensive
Interfaccia sviluppabile con
strumenti quali HTML5 e LESS
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
12. Punti di Forza Punti di Debolezza
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
13. Non sono sempre tutte rose…
Le difficoltà non sono causate da un'interfaccia difficile da comprendere, ma dalle potenz
Quello che si guadagna in flessibilità si perde nella facilità di apprendimento.
Ci sono tante opzioni e configurazione con cui è necessario familiarizzare.
Si impiega più tempo ad acquisire skills da webmaster con Drupal che con Joomla o Word
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
15. Open Atrium
Open Atrium è un ambiente collaborativo organizzato attorno al concetto
di “gruppi di lavoro” che permette a differenti team e utenti di lavorare insieme.
Permette di creare e modificare i contenuti
Si basa su Drupal
Implementa le funzioni tipiche del paradigma
del web 2.0
openatrium.com
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
16. Open Atrium: le funzionalità di base
Dashboard
Shoutbox
Blog
Wiki
Calendar
Casetracker
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
17. Drupal Commons
Drupal Commons è una soluzione pronta all'uso per costruire comunità per
intranet o extranet. E' una social business software solution per le aziende.
E' basato su Drupal;
Licenza Creative Commons;
A differenza di open atrium è un tool
specificatamente per le aziende;
http://drupal.org/project/commons
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
18. Drupal Commons: le funzionalità di base
Gruppi
Blog
Documenti
Discussioni
Wiki
Appunti
Eventi
Amici
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
23. Drupal «out-of-the-box»
Core
Il Core è una collezione di moduli, inclusi nella
distribuzione ufficiale di Drupal.
Eseguendo un'installazione standard, non tutti i
moduli vengono attivati.
Funzioni principali del Core
Deve essere sempre ricordata la caratteristica Strumenti di base per la gestione di contenuti
modulare di Drupal, in quanto molte funzionalità Controllo accessi basato su ruoli e permessi (sono i
sono il risultato di collezioni o combinazioni di singoli moduli a creare e implementare i
moduli. Spesso i moduli estendono una permessi)
funzionalità esistente più che fornire funzionalità Alcune tabelle ("content type") pronte per specifici
nuove. tipi di contenuto (pagine generiche/istituzionali,
news, blog)
Capacità di estendere i tipi di contenuto disponibili
con i campi ("fields") e di creare nuovi tipi di
contenuto secondo le esigenze
Integrazione con librerie di manipolazione delle
immagini per creare preset
Sistema di caching elementare
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
24. Core: Content management
Strumenti base per la
Image: mebaze (http://www.iconfinder.com/icondetails/46798/128/edit_notes_icon)
gestione dei contenuti
Drupal fornisce il set di strumenti necessari
per la gestione (creazione, visualizzazione,
aggiornamento, eliminazione) dei contenuti
di un sito web. Modalità di gestione dei
contenuti
Gli utenti con i permessi giusti possono creare
i contenuti
La modifica può avvenire a partire dal
contenuto stesso (pagina) oppure da
un'interfaccia amministrativa in cui l'elenco
di post (“nodi”) è filtrabile
Workflow elementare: i nodi possono essere
pubblicati o no al momento della creazione
e il sistema dei permessi può dare poteri di
approvazione a utenti particolari
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
25. Core: Controllo accessi
(http://www.iconfinder.com/icondetails/7261/128/lock_login_manager_private_register_security_i
Ruoli e permessi
Le funzionalità CMS sono strettamente
legate al meccanismo di controllo di
accessi.
I ruoli possono essere creati
Il sistema prevede controlli sia sulla arbitrariamente dagli amministratori;
gestione dei contenuti, sia sull'accesso ogni utente può essere assegnato a
alle funzioni di amministrazione della più ruoli
piattaforma. I permessi sono implementati dai moduli,
quindi quando si attivano nuovi moduli
è opportuno verificare quali permessi
ne regolano il funzionamento
Image: Sergio Sanchez Lopez
L'utente che installa e configura per la
prima volta un sito Drupal è un
“superutente”
I permessi sui contenuti possono essere
disgiunti per creazione, modifica,
con)
eliminazione
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
26. Core: Content type
(http://www.iconfinder.com/icondetails/8747/128/database_preferences_setup_icon)
La struttura dei contenuti
I content type sono un elemento
fondamentale del sistema CMS, che
permette di definire tipi diversi di post
con
Differenti permessi di accesso in scrittura
Differenti impostazioni di pubblicazione
Differenti strutture delle informazioni
contenute Differenti permessi di accesso in scrittura
Differenti impostazioni di pubblicazione
Differenti strutture delle informazioni
contenute
Drupal fornisce alcuni content type
predefiniti: pagina generica, articolo,
Image: Oxygen Team
blog post, forum post
Gli amministratori possono creare altri
content type e personalizzarli con i
campi
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
27. Core: Fields
Diversi tipi di dati
Ogni tipo di post è un contenitore per dati
eterogenei: testo, date, immagini…
Campi e widget
Questo influenza il modo in cui i dati sono
memorizzati nel database e il modo in Ogni content type, compresi quelli
cui l'utente li inserisce nel sistema. predefiniti, può essere personalizzato
rispetto alla sua struttura delle
informazioni
I campi sono definiti dalla loro tipologia,
dal widget utilizzato per l'input e dalla
visualizzazione all'interno dei post
Campi multi-istanza, se necessario
Oltre ai campi/widget/display forniti da
Drupal, moduli aggiuntivi possono
fornirne di ulteriori
Drupal 7 → “Entity” → campi disponibili
anche per commenti, utenti, ecc.
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
28. Core: Manipolazione immagini
Integrazione con le librerie
(http://www.iconfinder.com/icondetails/28841/256/emblem_images_photos_icon)
esistenti
Nell'inserimento dei contenuti è
importante poter trattare in modo Stili delle immagini
efficiente anche le immagini.
Lo “stile” usato per visualizzare le
La libreria GD (e altre, per le quali però è immagini corrisponde a un preset
necessario installare moduli aggiuntivi) impostato dagli amministratori
permette di generare dinamicamente Drupal fornisce alcuni preset/stili
immagini ridimensionate o ritagliate. predefiniti e l'utente può definirne altri a
priacere
L'utilizzo degli stili permette di utilizzare
una sola immagine sorgente per
Image: New Moon
visualizzazioni diverse (per esempio:
miniature in una tabella/elenco,
ingombro predefinito in un box/blocco
laterale)
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
29. Core: Caching
Image: Icons Island (http://www.iconfinder.com/icondetails/34216/256/clock_history_time_icon)
Ottimizzare le prestazioni
Un CMS è un'applicazione spesso avida
di risorse, soprattutto per i continui
accessi al database.
Un sistema di caching aiuta a ridurre il
carico del sito sul server e a servire i
contenuti più rapidamente.
Cache dei contenuti basata sul database;
non si tratta di cache opcode
Riduce drasticamente il numero di query
eseguite per servire una pagina
L'amministratore può impostare
manualmente una durata minima della
cache, per siti particolarmente trafficati
I moduli aggiuntivi possono definire
anche tabelle di cache dedicate a
contenuti specifici
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
30. Drupal Contrib
Image: IconEden (http://www.iconfinder.com/icondetails/61510/256/module_piece_icon)
Moduli aggiuntivi
Le funzionalità offerte dal Core sono
integrate da tantissimi moduli aggiuntivi
I fondamentali
(spesso citati come “contrib”).
Views: generatore di query
Alcuni di questi sono fondamentali nella Rules: permette di impostare l'esecuzioni
realizzazione di un sito e devono di azioni associate a eventi di sistema
entrare nel set di conoscenze richieste o a interazioni con l'utente
a un esperto di Drupal. Pathauto: generatore automatico di
percorsi per i nuovi contenuti (SEO)
Devel: accesso rapido a funzioni e
informazioni utili in fase di sviluppo
Admin: barra di navigazione
personalizzata per i gestori del sito
Features: permette di trasferire
configurazione e struttura del sito in
oggetti (file, funzioni) esportabili e
portabili da un sito all'altro
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
31. Drupal Contrib: Views
Image: New Moon (http://www.iconfinder.com/icondetails/28899/256/document_file_sql_icon)
Generatore di query
Permette di creare visualizzazioni
personalizzate dei contenuti o di altre
entità memorizzate in Drupal.
Crea degli elenchi (viste) di elementi che
possono essere messi a disposizione
degli utenti (consultazione) o degli I contenuti possono essere visualizzati in
amministratori (per migliorare e diversi formati: elenco, griglia, tabella
integrare la gestione dei contenuti). Possono apparire anche immagini con
relativi stili/preset
Supporto per la gestione di campi multi-
istanza senza duplicare i record
Possibilità di associare link/azioni a ogni
elemento (modifica, elimina, pubblica,
ecc.)
Fornisce anche feed RSS o esportazione
tipo CSV
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
32. Drupal Contrib: Rules
Azione e reazione
Rules è un modulo molto utile, che
permette di gestire il comportamento
della piattaforma in risposta a
determinati eventi.
Adatto a gestire meccanismi di notifica,
gestione di utenti e ruoli, ecc.
Possibili utilizzi
Notifica agli amministratori quando viene
creato o modificato o commentato un
contenuto
Attivazione o disattivazione di un utente
al raggiungimento di una soglia
Esecuzione di codice PHP arbitrario in
occasione di un evento
Destinazione di un utente dopo il login
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
33. Drupal Contrib: Devel
Image: VistaICO.com (http://www.iconfinder.com/icondetails/49236/256/config_tools_icon)
Diagnostica e supporto allo
sviluppo
Funzioni principali
Non solo gli sviluppatori hanno bisogno di
controllare lo stato di esecuzione delle Log e visualizzazione delle query sul
funzioni della piattaforma; anche gli database, con relativi tempi di
amministratori del sistema hanno esecuzione
talvolta bisogno di controllare, per Creazione automatica di utenti e
esempio, il tempo di esecuzione delle contenuti, per testare rapidamente il
query. sito
Visualizzazione di informazioni sul tema
in uso
Visualizzazione di “backtrace”
Tramite i permessi, si possono mostrare
le informazioni di debug solo a ruoli
definiti, mentre per gli utenti normali il
sito continua a funzionare
regolarmente
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
34. Drupal Contrib: Altri moduli
L'universo dei moduli contrib è vastissimo
e si impara a conoscere solo
Image: Drago (http://www.iconfinder.com/icondetails/37337/256/settings_icon)
misurandolo con le esigenze che si
presentano man mano.
I moduli presentati sono fondamentali per
l'uso quotidiano, ma se ne trovano altri Ubercart / Drupal Commerce: due suite
con funzionalità interessanti e con un di moduli per creare piattaforme di e-
uso piuttosto diffuso. commerce
Workflow: permette di generare flussi di
gestione redazionale complessi
OpenLayers: porta su Drupal l'omonima
libreria JS per la visualizzazione di
mappe con marker, integrate con i
contenuti di Drupal grazie a Views
Jquery Update: permette di utilizzare
versioni più aggiornate della nota
libreria JS, che è alla base delle
funzioni AJAX di Drupal
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
35. Come si integra Drupal?
Modularità
Drupal è un sistema estremamente
modulare e si presta quindi ad essere
integrato con l'aggiunta di moduli
aggiuntivi. Contrib e Custom
I moduli non sono applicazioni, ma Le migliaia di moduli contrib disponibili
spesso inseriscono piccole funzionalità gratuitamente nell'archivio di
o aggiunte a quanto già esiste, per Drupal.org (alcuni moduli non gratuiti
esempio: tipi di dati in input, widget, sono disponibili altrove) sono la fonte
blocchi per la visualizzazione di principale di nuove funzionalità
informazioni, ecc. Per venire incontro alle esigenze
specifiche di un cliente, è possibile
sviluppare moduli ad-hoc e svolgere
attività di “theming”, cioè creare un
layout e creare una logica di
presentazione con le variabili da
passare ai template
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
36. Sviluppare per Drupal
PHP: funzioni e hook
Drupal è scritto in PHP, un linguaggio
molto popolare. Per sviluppare
funzionalità aggiuntive, non basta però
conoscere PHP, ma occorre conoscere Scrivere un modulo per Drupal significa
la API di Drupal, un set di funzioni che per la maggior parte implementare
espongono ai programmatori le attività degli “hook”, funzioni particolari che
e gli eventi del sistema. intercettano uno stato di esecuzione di
Drupal e permettono al programmatore
di inserire funzionalità aggiuntive in
quel particolare stato. Esempi:
hook_schema: definisce una o più tabelle
del database
hook_user_insert: è stato appena creato
un utente
hook_form_alter: un form definito altrove
può essere modificato aggiungendo o
modificandone gli elementi
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
37. Aspetto grafico
“Theming”
L'aspetto di un sito fatto in Drupal è
completamente personalizzabile,
scaricando o creando un “tema”.
Un Tema è un pacchetto di file di
template php,fogli di stile css e
javascript che determina lo stile grafico
e il look and feel di un sito fatto in
drupal.
Temi pronti all'uso si trovano su
Drupal.org (e su alcuni siti di produttori
di temi).
Sono disponibili sia temi gratis che a
pagamento.
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
38. Temi pronti e temi di base
A seconda del tipo di progetto e di budget, si
può scegliere se usare un tema pronto,
oppure svilupparlo ad hoc.
Pochissimi scelgono di partire da zero per
creare un tema di Drupal: è molto più
comune partire da “temi base”, pensati per
fornire una buona base
flessibile per realizzare un design
Esistono temi di base che integrano
personalizzato.
framework CSS come 960gs, oppure
sistemi come Less e Sass, responsive
Esempi di temi base includono:
Design.
http://drupal.org/project/zen
Tutte le tecniche di CSS possono essere
http://drupal.org/project/omega applicate ai temi di Drupal.
http://drupal.org/project/ninesixty Addentrandosi nello sviluppo di Drupal, si
scopre che tutto l'output generato può
essere modificato e gestito, basta sapere
dove mettere le mani :)
Associazione Drupal Italia – Treatabit Torino, 02/05/2012
39. Alessandra Petromilli
petromilli@csp.it
Twitter: @Aleanan
Marcello Testi
m.testi@gmail.com
Twitter: @pinolo
GRAZIE A
Mario Vercellotti
mario.vercellotti@gmail.com
Twitter: @vermario
Associazione Drupal Italia – Treatabit Torino, 02/05/2012