SlideShare a Scribd company logo
1 of 31
Download to read offline
Drupal & Pattern Lab
un nuovo approccio al theming
Drupal Day 2017
Gian Mario Mereu
gmereu@wellnet.it
Twig
Twig
Twig
Stampa qualcosa: {{ ... }}
esegui il comando: {% ... %}
commenti: {# ... #}
Twig
Accesso variabili
{{ object.pippo }}
Twig
Includere file
{% include “file.html.twig” with { var1: value } %}
{% include “file.html.twig” with { var1: value } only %}
Twig
blocchi
“page.html.twig”
Twig
estendere un twig
Problema: Drupal theming
il Drupal themer
Theme accoppiato alle strutture dati
Pipeline: 1) sviluppo e/o building; 2) theming;
Metodologie per la progettazione e strumenti a supporto dello sviluppo
Metodo di progettazione di sistemi
(design system) chiamato:
Atomic Design
Strumento a supporto:
Pattern Lab
Metodologie per la progettazione e strumenti a supporto dello sviluppo
Atomic Design prende ispirazione dai ricordi di chimica dell’ideatore
Metodologie per la progettazione e strumenti a supporto dello sviluppo
tag html
a, input, label, h*, li, ol, p,
table, button, image
label
input
button
Metodologie per la progettazione e strumenti a supporto dello sviluppo
le molecole sono dei
raggruppamenti di elementi
(tag) e che funzionano come
una unità
Il form (molecola) viene
formato dagli elementi
(atomi) della slide
precedente
Metodologie per la progettazione e strumenti a supporto dello sviluppo
gli organismi sono dei
componenti della UI
mediamente complessi
composti da atomi e/o
molecole e/o altri organismi
Ad esempio l’header è un
organismo
Metodologie per la progettazione e strumenti a supporto dello sviluppo
i template raggruppano
oggetti: organismi, molecole
ed atomi, in uno specifico
layout
Metodologie per la progettazione e strumenti a supporto dello sviluppo
gli organismi sono dei
componenti della UI
mediamente complessi
composti da atomi e/o
molecole e/o altri organismi
Metodologie per la progettazione e strumenti a supporto dello sviluppo
Pattern Lab
“At its core, Pattern Lab is a static site generator (powered by either PHP or Node)
that stitches together UI components.”
definizione da http://patternlab.io/
Il sito statico viene generato a partire da una serie di template (twig o
mustache)/css/js organizzati in una gerarchia di directory
Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab)
source
root directory
Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab)
source/_patterns
http://demo.patternlab.io/
Strumenti esistenti in Drupal (elenco non completo)
Pattern Lab
● Pattern Lab Twig Standard Edition for Drupal (github)
plugin-drupal-twig-components (t, without, link, path …. )
Drupal 8 theme
● Phase2 Drupal 8 base theme with Pattern Lab (github)
gulp, sass, singularity - ottimamente documentato
● Shila theme for Drupal 8 (github)
gulp, sass, singularity
Strumenti esistenti in Drupal (elenco non completo)
Moduli
● components
Permette rendere accessibili nuovi componenti definiti in un tema o modulo come namespace Twig
mymodule.info.yml [mymodule directory]/myModuleComponets/box/box.twig
component-libraries:
myModule:
paths:
- myModuleComponets {% include "@myModule/box/box.twig" %}
Strumenti esistenti in Drupal (elenco non completo)
Moduli
● ui patterns
permette di definire dei pattern
ed usarli in: panels, field groups,
views, paragraphs
teammember:
label: Team Member
description: Display a team member.
fields:
name:
type: text
label: Name
description: Name of the team member.
preview: Nome Cognome
……….
use: '@molecules/components/shila-team-member/shila-team-member.html.twig'
libraries:
- shila_theme/team-member
my-pattern.ui_patterns.yml
Strumenti esistenti in Drupal (elenco non completo)
<div class="team-member">
<div class="team-member__picture">
<image src=”{{ image }}”>
</div>
<h2 class="team-member__name">
{{ name }}
</h2>
<span class="team-member__nikname">{{ nikname }}</span> //
<span class="team-member__email">{{ email }}</span>
<div class="team-member__bio">
<div class="team-member__bio__button">-</div>
<p class="team-member__bio__content collapse">
{{ bio }}
</p>
</div>
</div>
Demo
Team Member
Conclusioni
il Drupal themer
Theme accoppiato alle strutture dati
Pipeline: 1) sviluppo e/o building; 2) theming;
http://atomicdesign.bradfrost.com
http://patternlab.io
https://www.aleksip.net // https://github.com/aleksip/shila-drupal-theme
https://www.phase2technology.com // https://github.com/phase2/pattern-lab-starter
Domande
[Gian Mario Mereu] - Drupal & Patternlab: un nuovo approccio al theming

More Related Content

Viewers also liked

Lexical and functional word
Lexical and functional wordLexical and functional word
Lexical and functional wordElita Nur Aina
 
Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015
Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015
Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015European Drupal Days
 
Golab.io
Golab.ioGolab.io
Golab.ior3vit
 
Come sfruttare tutte le potenzialità di Symfony in Drupal 8
Come sfruttare tutte le potenzialità di Symfony in Drupal 8Come sfruttare tutte le potenzialità di Symfony in Drupal 8
Come sfruttare tutte le potenzialità di Symfony in Drupal 8Wellnet srl
 
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8Wellnet srl
 
[Luca Cracco] - DevOps: strumenti di automazione per Drupal8
[Luca Cracco] - DevOps: strumenti di automazione per Drupal8[Luca Cracco] - DevOps: strumenti di automazione per Drupal8
[Luca Cracco] - DevOps: strumenti di automazione per Drupal8Wellnet srl
 
Drupal day Roma 2017 - Zaratan
Drupal day Roma 2017 - Zaratan Drupal day Roma 2017 - Zaratan
Drupal day Roma 2017 - Zaratan r3vit
 
El derecho de las niñas y los niños
El derecho de las niñas y los niñosEl derecho de las niñas y los niños
El derecho de las niñas y los niñosAlfredo nobel
 
KocSistem | SOC Aylik Bulten Mart 2017
KocSistem | SOC Aylik Bulten Mart 2017KocSistem | SOC Aylik Bulten Mart 2017
KocSistem | SOC Aylik Bulten Mart 2017KocSistem_
 
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...DrupalDay
 
Alat peredaran darah
Alat peredaran darahAlat peredaran darah
Alat peredaran darahchie chie
 
Da X a Drupal 8, migra tutto e vivi sereno
Da X a Drupal 8, migra tutto e vivi serenoDa X a Drupal 8, migra tutto e vivi sereno
Da X a Drupal 8, migra tutto e vivi serenoDrupalDay
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client ManagerDrupalDay
 

Viewers also liked (15)

Lexical and functional word
Lexical and functional wordLexical and functional word
Lexical and functional word
 
Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015
Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015
Sponsorship Opportunities European Drupal Days & Dutch PHP Conference 2015
 
Golab.io
Golab.ioGolab.io
Golab.io
 
Come sfruttare tutte le potenzialità di Symfony in Drupal 8
Come sfruttare tutte le potenzialità di Symfony in Drupal 8Come sfruttare tutte le potenzialità di Symfony in Drupal 8
Come sfruttare tutte le potenzialità di Symfony in Drupal 8
 
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8
[Marco Capobussi] - DevOps: strumenti di automazione per Drupal8
 
[Luca Cracco] - DevOps: strumenti di automazione per Drupal8
[Luca Cracco] - DevOps: strumenti di automazione per Drupal8[Luca Cracco] - DevOps: strumenti di automazione per Drupal8
[Luca Cracco] - DevOps: strumenti di automazione per Drupal8
 
Drupal day Roma 2017 - Zaratan
Drupal day Roma 2017 - Zaratan Drupal day Roma 2017 - Zaratan
Drupal day Roma 2017 - Zaratan
 
El derecho de las niñas y los niños
El derecho de las niñas y los niñosEl derecho de las niñas y los niños
El derecho de las niñas y los niños
 
KocSistem | SOC Aylik Bulten Mart 2017
KocSistem | SOC Aylik Bulten Mart 2017KocSistem | SOC Aylik Bulten Mart 2017
KocSistem | SOC Aylik Bulten Mart 2017
 
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
 
Alat peredaran darah
Alat peredaran darahAlat peredaran darah
Alat peredaran darah
 
Da X a Drupal 8, migra tutto e vivi sereno
Da X a Drupal 8, migra tutto e vivi serenoDa X a Drupal 8, migra tutto e vivi sereno
Da X a Drupal 8, migra tutto e vivi sereno
 
Redes de contenido inglés 2017
Redes de contenido inglés 2017Redes de contenido inglés 2017
Redes de contenido inglés 2017
 
HZH INSIGHTS OMNICHANNEL | ENABLING STRONG BRANDS
HZH INSIGHTS OMNICHANNEL | ENABLING STRONG BRANDSHZH INSIGHTS OMNICHANNEL | ENABLING STRONG BRANDS
HZH INSIGHTS OMNICHANNEL | ENABLING STRONG BRANDS
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
 

Similar to [Gian Mario Mereu] - Drupal & Patternlab: un nuovo approccio al theming

Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010Domenico Monaco
 
Drupal Lessons by nois3lab
Drupal Lessons by nois3labDrupal Lessons by nois3lab
Drupal Lessons by nois3labnois3lab
 
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen..."Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...bmeme
 
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen..."Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...DrupalDay
 
Code Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studioCode Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studioMarco Parenzan
 
Drupal 7 : theming avanzato
Drupal 7 : theming avanzatoDrupal 7 : theming avanzato
Drupal 7 : theming avanzatoTwinbit
 
Presentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal ItaliaPresentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal ItaliaMarcello Testi
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Alessandro del Gobbo
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMSRoberto Polillo
 
Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Paolo Galfione
 
Drupal
DrupalDrupal
DrupalNaLUG
 
Corso Pratico di WordPress
Corso Pratico di WordPressCorso Pratico di WordPress
Corso Pratico di WordPressNicola Strumia
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Wordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginWordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginCity Planner
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)Alessandro Giorgetti
 
Pasw2015 a SMAU MILANO 2014
Pasw2015 a SMAU MILANO 2014Pasw2015 a SMAU MILANO 2014
Pasw2015 a SMAU MILANO 2014Marco Milesi
 

Similar to [Gian Mario Mereu] - Drupal & Patternlab: un nuovo approccio al theming (20)

Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
Slide sessione Drupal Theming & CSS Framework – Drupal Camp Torino 2010
 
Drupal Lessons by nois3lab
Drupal Lessons by nois3labDrupal Lessons by nois3lab
Drupal Lessons by nois3lab
 
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen..."Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
 
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen..."Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
"Twig e i belli dentro": panoramica sui nuovi standard di frontend-developmen...
 
Code Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studioCode Generation con i templates T4 in visual studio
Code Generation con i templates T4 in visual studio
 
Drupal 7 : theming avanzato
Drupal 7 : theming avanzatoDrupal 7 : theming avanzato
Drupal 7 : theming avanzato
 
Presentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal ItaliaPresentazione Drupal 2012 - Associazione Drupal Italia
Presentazione Drupal 2012 - Associazione Drupal Italia
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013
 
Drupal 7
Drupal 7Drupal 7
Drupal 7
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
 
Sviluppare moduli per il client web
Sviluppare moduli per il client webSviluppare moduli per il client web
Sviluppare moduli per il client web
 
Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018Enterprise Applications - Angular Day 2018
Enterprise Applications - Angular Day 2018
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Drupal
DrupalDrupal
Drupal
 
Corso Pratico di WordPress
Corso Pratico di WordPressCorso Pratico di WordPress
Corso Pratico di WordPress
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Wordpress 3/7. temi e plugin
Wordpress 3/7. temi e pluginWordpress 3/7. temi e plugin
Wordpress 3/7. temi e plugin
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)
 
Pasw2015 a SMAU MILANO 2014
Pasw2015 a SMAU MILANO 2014Pasw2015 a SMAU MILANO 2014
Pasw2015 a SMAU MILANO 2014
 

[Gian Mario Mereu] - Drupal & Patternlab: un nuovo approccio al theming

  • 1.
  • 2. Drupal & Pattern Lab un nuovo approccio al theming Drupal Day 2017
  • 6. Twig Stampa qualcosa: {{ ... }} esegui il comando: {% ... %} commenti: {# ... #}
  • 8. Twig Includere file {% include “file.html.twig” with { var1: value } %} {% include “file.html.twig” with { var1: value } only %}
  • 11. Problema: Drupal theming il Drupal themer Theme accoppiato alle strutture dati Pipeline: 1) sviluppo e/o building; 2) theming;
  • 12. Metodologie per la progettazione e strumenti a supporto dello sviluppo Metodo di progettazione di sistemi (design system) chiamato: Atomic Design Strumento a supporto: Pattern Lab
  • 13. Metodologie per la progettazione e strumenti a supporto dello sviluppo Atomic Design prende ispirazione dai ricordi di chimica dell’ideatore
  • 14. Metodologie per la progettazione e strumenti a supporto dello sviluppo tag html a, input, label, h*, li, ol, p, table, button, image label input button
  • 15. Metodologie per la progettazione e strumenti a supporto dello sviluppo le molecole sono dei raggruppamenti di elementi (tag) e che funzionano come una unità Il form (molecola) viene formato dagli elementi (atomi) della slide precedente
  • 16. Metodologie per la progettazione e strumenti a supporto dello sviluppo gli organismi sono dei componenti della UI mediamente complessi composti da atomi e/o molecole e/o altri organismi Ad esempio l’header è un organismo
  • 17. Metodologie per la progettazione e strumenti a supporto dello sviluppo i template raggruppano oggetti: organismi, molecole ed atomi, in uno specifico layout
  • 18. Metodologie per la progettazione e strumenti a supporto dello sviluppo gli organismi sono dei componenti della UI mediamente complessi composti da atomi e/o molecole e/o altri organismi
  • 19. Metodologie per la progettazione e strumenti a supporto dello sviluppo Pattern Lab “At its core, Pattern Lab is a static site generator (powered by either PHP or Node) that stitches together UI components.” definizione da http://patternlab.io/ Il sito statico viene generato a partire da una serie di template (twig o mustache)/css/js organizzati in una gerarchia di directory
  • 20. Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab) source root directory
  • 21. Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab) source/_patterns http://demo.patternlab.io/
  • 22. Strumenti esistenti in Drupal (elenco non completo) Pattern Lab ● Pattern Lab Twig Standard Edition for Drupal (github) plugin-drupal-twig-components (t, without, link, path …. ) Drupal 8 theme ● Phase2 Drupal 8 base theme with Pattern Lab (github) gulp, sass, singularity - ottimamente documentato ● Shila theme for Drupal 8 (github) gulp, sass, singularity
  • 23. Strumenti esistenti in Drupal (elenco non completo) Moduli ● components Permette rendere accessibili nuovi componenti definiti in un tema o modulo come namespace Twig mymodule.info.yml [mymodule directory]/myModuleComponets/box/box.twig component-libraries: myModule: paths: - myModuleComponets {% include "@myModule/box/box.twig" %}
  • 24. Strumenti esistenti in Drupal (elenco non completo) Moduli ● ui patterns permette di definire dei pattern ed usarli in: panels, field groups, views, paragraphs teammember: label: Team Member description: Display a team member. fields: name: type: text label: Name description: Name of the team member. preview: Nome Cognome ………. use: '@molecules/components/shila-team-member/shila-team-member.html.twig' libraries: - shila_theme/team-member my-pattern.ui_patterns.yml
  • 25. Strumenti esistenti in Drupal (elenco non completo) <div class="team-member"> <div class="team-member__picture"> <image src=”{{ image }}”> </div> <h2 class="team-member__name"> {{ name }} </h2> <span class="team-member__nikname">{{ nikname }}</span> // <span class="team-member__email">{{ email }}</span> <div class="team-member__bio"> <div class="team-member__bio__button">-</div> <p class="team-member__bio__content collapse"> {{ bio }} </p> </div> </div>
  • 26. Demo
  • 28. Conclusioni il Drupal themer Theme accoppiato alle strutture dati Pipeline: 1) sviluppo e/o building; 2) theming;