SlideShare ist ein Scribd-Unternehmen logo
1 von 28
twig
Wat is twig?
●een template framework dat PHPTemplate vervangt
●ontwikkeld door de mensen achter Symfony
●wordt gebruikt door de grotere PHP community
●OOP in het achterhoofd gehouden
Waarom twig?
●PHPTemplate is verouderd
●twig is sneller
●duidelijk en netter/korter.
●gemakkelijker om te leren
●gedocumenteerd
●veilig
●uitbreidbaar
Hoe ziet het er uit?
File en functie namen
theme_node() node.html.twig
Functie namen
page.tpl.php page.html.twig
File namen
Tags (block delimiters)
1. {{ deze }}
2. {% deze %}
3. {# deze #}
zeggen iets
doen iets
zijn voor comments
Tags (block delimiters)
{{ deze }} printen variabelen
Tags (block delimiters)
{% deze %} behandelen logica
Tags (block delimiters)
{# deze #} maken comments
Variabelen
variabele printen
hash key item printen
variabele maken
array maken
<div>{{ content }}</div>
{{ item[‘#item’] }}
{% set var = content.title %}
{% set var = [ ‘foo’: ‘foo’, ‘bar’:
‘bar’ ] %}
Variabelen
item toevoegen aan bestaande array:
{% set arr = arr|merge({'element': 'value'}) %}
Conditionals (if)
{% if content.comments %} {% endif %}
{% if content.comments is not empty %} {% endif %} // !empty()
{% if content.comments is defined %} {% endif %} // isset()
{% if var > 0 %} {% endif %}
Control structures
foreach ($users as $user) {}
in twig is dit
{% for user in users %} {% endfor %}
Filters
abs
batch
capitalize
convert_encoding
date
date_modify
default
escape
first
format
join
json_encode
keys
last
length
lower
merge
nl2br
number_format
raw
replace
reverse
round
slice
sort
split
striptags
title
trim
upper
url_encode
Filters
Filters staan bij de variabele die geprint wordt en worden
geïdentificeerd door een “|” (pipe)
Filters
Punt notatie
Twig gebruikt punt notatie (.) om attributen van variabelen
aan te spreken. Dit geldt ook voor properties van objecten en
voor items van arrays.
Naast de punt notatie is er ook de subscript syntax, handig
voor properties met een hash (#).
{{ foo.bar }} {{ foo[‘#bar’] }}
Wanneer een attribuut een speciaal karakter heeft (zoals
een liggend streepje dat als een min-operator
geïnterpreteerd wordt), gebruiken we de attribute functie:
{# equivalent van {{ foo.bar-data }} #}
{{ attribute(foo, ‘bar-data’) }}
Overerving
Templates kunnen erven van elkaar.
De originele template definieert een block dat overschreven
kan worden.
De ervende template roept het origineel aan en overschrijft
het blok.
Overerving
Voorbeeld uit core themes Classy en Bartik:
Classy definieert een blok in /templates/block/block--
search-form-block.html.twig
en gebruikt {{ parent() }} om de originele content te printen.
Bartik roept de Classy template aan en voegt code toe aan het block in /templates/block/block--
search-form-block.html.twig
Assets toevoegen
Debugging
locatie:
sites/default/services.yml
Zet debug: true
Debugging
●templates automatisch opnieuw gecompileerd
●toont handige comments in html
●laat toe de dump() functie te gebruiken
Doe dit NIET in productie!
Debugging
Debug output:
Debugging
Debug() kan vastlopen wanneer er veel variabelen zijn.
Alternatief: kint()
drush dl devel
drush en kint
Debugging
Gebruik {{ kint() }}
ipv {{ dump() }}
Documentatie
http://twig.sensiolabs.org
http://www.drupal.org/theme-guide/8

Weitere ähnliche Inhalte

Ähnlich wie Twig in drupal 8 (13)

NL - Q&amp;D Overview programming fundamentals C#
NL - Q&amp;D Overview programming fundamentals C#NL - Q&amp;D Overview programming fundamentals C#
NL - Q&amp;D Overview programming fundamentals C#
 
TU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basicsTU/e - Back to the TYPO3 CMS basics
TU/e - Back to the TYPO3 CMS basics
 
Drupal 7 Theming
Drupal 7 ThemingDrupal 7 Theming
Drupal 7 Theming
 
Gegevensbanken 2010 les12
Gegevensbanken 2010 les12Gegevensbanken 2010 les12
Gegevensbanken 2010 les12
 
Seminar Copernica Developer
Seminar Copernica DeveloperSeminar Copernica Developer
Seminar Copernica Developer
 
How to create a Drupal theme (Dut
How to create a Drupal theme (DutHow to create a Drupal theme (Dut
How to create a Drupal theme (Dut
 
Php samenvatting
Php samenvattingPhp samenvatting
Php samenvatting
 
Les 3 php prog 2
Les 3 php prog 2Les 3 php prog 2
Les 3 php prog 2
 
Cascading Style Sheets 2009
Cascading Style Sheets 2009Cascading Style Sheets 2009
Cascading Style Sheets 2009
 
Html, xhtml en Ftp
Html, xhtml en FtpHtml, xhtml en Ftp
Html, xhtml en Ftp
 
Css Positionering
Css PositioneringCss Positionering
Css Positionering
 
Css positioning
Css positioningCss positioning
Css positioning
 
XPages Advanced
XPages AdvancedXPages Advanced
XPages Advanced
 

Mehr von dropsolid (6)

Vertalen met Drupal.
Vertalen met Drupal.Vertalen met Drupal.
Vertalen met Drupal.
 
Drupal theming training
Drupal theming trainingDrupal theming training
Drupal theming training
 
Site building preview - Drupal training
Site building preview - Drupal trainingSite building preview - Drupal training
Site building preview - Drupal training
 
Drupal Deployment demo
Drupal Deployment demoDrupal Deployment demo
Drupal Deployment demo
 
Discover Drupal preview
Discover Drupal previewDiscover Drupal preview
Discover Drupal preview
 
Git session Dropsolid.com
Git session Dropsolid.comGit session Dropsolid.com
Git session Dropsolid.com
 

Twig in drupal 8

Hinweis der Redaktion

  1. Suggesties in DOM vertellen
  2. Suggesties in DOM vertellen
  3. Suggesties in DOM vertellen
  4. Suggesties in DOM vertellen
  5. Suggesties in DOM vertellen
  6. Suggesties in DOM vertellen