[drupalday2017] - drupal & patternlab: un nuovo approccio al theming

31

Upload: drupalday

Post on 21-Mar-2017

60 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
Page 2: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Drupal & Pattern Labun nuovo approccio al theming

Drupal Day 2017

Page 3: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Gian Mario [email protected]

Page 4: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Twig

Page 5: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Twig

Page 6: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Twig

Stampa qualcosa: {{ ... }}

esegui il comando: {% ... %}

commenti: {# ... #}

Page 7: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Twig

Accesso variabili{{ object.pippo }}

Page 8: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Twig

Includere file

{% include “file.html.twig” with { var1: value } %}

{% include “file.html.twig” with { var1: value } only %}

Page 9: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Twig

blocchi“page.html.twig”

Page 10: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Twig

estendere un twig

Page 11: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Problema: Drupal theming

il Drupal themer

Theme accoppiato alle strutture dati

Pipeline: 1) sviluppo e/o building; 2) theming;

Page 12: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al 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

Page 13: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Metodologie per la progettazione e strumenti a supporto dello sviluppo

Atomic Design prende ispirazione dai ricordi di chimica dell’ideatore

Page 14: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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

Page 15: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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

Page 16: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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

Page 17: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Metodologie per la progettazione e strumenti a supporto dello sviluppo

i template raggruppano oggetti: organismi, molecole ed atomi, in uno specifico layout

Page 18: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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

Page 19: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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

Page 20: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab)

source

root directory

Page 21: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Metodologie per la progettazione e strumenti a supporto dello sviluppo (pattern lab)

source/_patterns

http://demo.patternlab.io/

Page 22: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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

Page 23: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Strumenti esistenti in Drupal (elenco non completo)

Moduli

● componentsPermette 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" %}

Page 24: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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

Page 25: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

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>

Page 26: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Demo

Page 27: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Team Member

Page 28: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Conclusioni

il Drupal themer

Theme accoppiato alle strutture dati

Pipeline: 1) sviluppo e/o building; 2) theming;

Page 29: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

http://atomicdesign.bradfrost.comhttp://patternlab.io

https://www.aleksip.net // https://github.com/aleksip/shila-drupal-themehttps://www.phase2technology.com // https://github.com/phase2/pattern-lab-starter

Page 30: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming

Domande

Page 31: [drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming