introduzione a drupal e componenti del core - sidcamp 2015
TRANSCRIPT
Introduzione a Drupal e
componenti del coreGiancarlo Diana
Senior Consultant @Kelyon
1
Prefazione
• Che cos’è Drupal• La piattaforma di sviluppo (LAMP)• Installazione di Drupal• Struttura file system e database• Installazione moduli da interfaccia• Index.php .htaccess e routing• Sistema di nodi• Sistema di utenti, ruoli e pemessi2
DI COSA PARLEREMO
• Tema – pagine, nodi, regioni e blocchi• Pagine e tipi di contenuto• Campi, Menu, Tassonomia• Relazioni tra i contenuti
3
Che cos’è Drupal
15/04/20234
• Drupal è un framework scritto in PHP• Consente di creare potenti applicazioni• Può essere usato da • Sviluppatori• Webmaster• Copyright
• È open source• Drupal è diffuso, supportato e flessibile
Con Drupal si fanno i siti?• Con Drupal si fanno anche i siti• Drupal è un framework in grado di fare di tutto
15/04/20235
Con la diffusione di apperecchi di piccole dimensioni su cui si può montare un webserver, le applicazioni di Drupal sono aumentate in modo esponenziale.
Usi più diffusi• Produzione di pagine web• HTML
• Webservices• Json, rest eccetera
15/04/20236
In via di diffusione• Applicazioni indrustriali• Reti sensoriali• Domotica
Curva di apprendimento della concorrenza
15/04/20237
… e di Drupal
15/04/20238
Quando usare Drupal• È necessario realizzare un progetto che sia flessibile
ed estendibile nel tempo• C’è bisogno di un software che deve fare quello che
già fa il core di Drupal ed i suoi principali moduli contrib• Quando è necessaria robustezza e sicurezza e
professionalità• Quando si deve fare fronte a grosse e variegate
richieste di dati
15/04/20239
Quando NON usare Drupal
15/04/202310
La piattaforma di sviluppo LAMP• LINUX• APACHE• MYSQL (MARIADB)• PHP
15/04/202311
PHPM
YSQL
APACHE
LINUX
Drupal si poggia su questa infrastruttura, un ambiente di sviluppo completamente open source e ben rodato da una grossa community
Installazione di Drupal• Drupal.org è il punto di
inizio• https://
www.drupal.org/project/drupal e https://www.drupal.org/project/NOME_PROGETTO• Moduli e temi
15/04/202312
Installazione di Drupal• Scelta del profilo• Scelta della lingua• Setup del database• Installazione profilo• Importazione traduz.• Configurazione
15/04/202313
Struttura del file system• Del core di Drupal fanno parte tutti
i file e le cartelle della root• La catella sites viene gestita in
maniera diversa (multisite)• Sites è la cartella dove definire tutti
i nostri sitiall si riferisce a tutti i siti• Default è quella che verrà usata se
Drupal non ne trova altre
15/04/202314
• Un’occhiata alla cartella sites/all
• Come organizzare modules
15/04/202315
Il tema ed il figlio (starterkits)• Il tema padre è la base• Il tema figlio è il padre modificato
• Il tema padre è sotto versionatura • Il tema figlio può essere aggiornato solo a mano
15/04/202316
Il tema Bootstrap
Molto diffusoMolti codici precottiCodice standard
Troppe classi nell’DOM
15/04/202317
Il tema Zen con Zen-grids
Molto diffusoHTML e DOM pulitiGrande potenza ed estrema flessibilità
Pochi precottiCodice non standard
15/04/202318
Il database• Un astrazione molto astratta• La struttura rispecchia la
modularità di Drupal• I moduli sono legati da dipendenza
a livello software (PHP)• Quando si mettono le mani
direttamente alla base dati c’è qualcosa che non va
15/04/202319
Tabelle principali• System
con le principali configurazioni• Users – Role
Utenti e ruoli (categorie di utenti)• Variable
Variabili di configurazione pronte all’uso• Watchdog
Log di sistema
15/04/202320
Index.php .htaccess e routing• Drupal serve una pagina in risposta ad una richiesta
che lo innesca• TUTTE le richieste passano dall’index.php (grazie
anche ad htaccess)• Ogni indirizzo di pagina innesca delle azioni definite
a livello PHP• Questo non significa che per mostrare pagine bisogna
scrivere codice PHP
15/04/202321
Richiesta di una pagina
Richiesta http htacess Index.php Invio risposta
15/04/202322
Cosa succede quando invochiamo un url dove gira Drupal
Sistema di nodi• Drupal (core) consente di creare una variegata
quantità di contentuti semplicemente e da interfaccia• I contenuti possono essere di varie tipologie
(Pagine, Articoli, Webform)• Ad ogni contenuto è associato un identificativo
univoco
15/04/202323
La pagina servita• Quando viene invocata la URL relativa ad un nodo
Drupal (se l’utente ne ha facoltà) serve la pagina• Ad esempio miosito.it/?q=node/120 dove 120 è il nid
• La pagina viene preparata da Drupal seguendo delle regole molto precise ma facilmente estendibili e manipolabili per i propri scopi• La pagina consta in una struttura HTML suddivisa
secondo le informazioni del tema
15/04/202324
Struttura del template di pagina• Regioni• Le regioni sono delle aree in cui stampare i blocchi
• Blocchi• I blocchi sono dei pezzi di contenuti; ideale se il blocco
deve essere presentato su più pagine
• Regioni• Intestazione• Contenuto• Footer (Piè di pagina)
15/04/202325
Struttura del template di pagina
15/04/202326
Tipi di contenuti• Col core vengono installati articoli e pagine• Articoli• Finiscono nei feed RSS• Sono fagocitate diversamente dai motori di ricerca• L’informazione che offrono ha una durata limitata
• Pagine• Pagine informative standard ragionevolmente
immutabili
15/04/202327
Presentare i contenuti• Aggiunta di un blocco• Regioni• Permessi
• Menu di Drupal• Usare un menu esistente• Creare un nuovo menu• Presentarlo in un blocco
15/04/202328
Manipolazione dei contenuti esistenti• Aggiunta campi ad un tipo di contenuto• Gestione della visualizzazione
15/04/202329
Tassonomia - relazionamoli• Per aggiungere relazioni tra i contenuti ci viene
incontro il modulo taxonomy che consente di relazionare i contenuti tra di loro in modo molto semplice• Tag• Categorie
• Come spesso accade in Drupal è possibile estendere i termini di tassonomia con altri campi
15/04/202330
Utenti e Ruoli• Gli utenti sono quelli che muniti di credenziali
(username e password di default) possono accedere al sistema previa registrazione• Gli utenti sono in relazione con i ruoli (1 a molti)• I ruoli rappresentano un raggruppamento di utenti• Ai ruoli vengono applicati i permessi• Ad esempio: il ruolo «Editore» può modificare l’articolo
Tutti gli utenti che hanno quel ruolo tra i propri possono modificare l’articolo
15/04/202331
15/04/202332
15/04/202333
Grazie
15/04/202334