Articles

Da biste saznali koji šablon generiše markup za određeni element, možete koristiti ugrađenu Twig opciju debug. Ovaj parametar prikazaće HTML komentare zajedno sa prikazanim izlazom, koji uključuje korišćene tematske hookove, predložena imena fajlova šablona, kao i označava tačan Twig fajl koji se koristi za renderovanje određenog dela vašeg markupa.


Filteri u Twig-u se mogu koristiti za izmenu promenljivih. Filteri se odvajaju od promenljive simbolom cevi (|). Mogu imati opcionе argumente u zagradama. Više filtera može biti povezano zajedno. Izlaz jednog filtera se primenjuje na sledeći.
Primer:
{{ content|safe_join(", ")|lower }}
Možda ćete morati da renderujete element pre nego što ga filtrirate:


Twig pruža niz korisnih funkcija koje se mogu koristiti direktno u šablonima.
Drupal kernel dodaje nekoliko korisničkih funkcija specifičnih za Drupal. One su definisane u TwigExtension klasi.


Iz zvanične Twig dokumentacije: „Makroi se mogu uporediti sa funkcijama u uobičajenim programskim jezicima. Korisni su za smeštanje često korišćenih HTML idiomskih izraza u višekratne elemente, kako bi se izbeglo ponavljanje.“
{% macro input(name, value, type, size) %} <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" /> {% endmacro %}
Makroi se razlikuju od nativnih PHP funkcija na nekoliko načina:


Da biste postigli maksimalnu performansu teme u Drupal 8 i omogućili više opcija za prilagođavanje u Twig šablonima, sledite sledeće preporuke:


Osnovna ideja u Drupalu 8 je da želite izbeći pravljenje HTML-a direktno u PHP kodu vašeg korisničkog modula. Želite da se to prebaci u Twig šablone. Da biste kreirali nove Twig šablone u vašem modulu, pratite sledeće korake.
Korak 1: Definišite hook_theme u .module fajlu
Kreirajte fajl [module].module ako već ne postoji i dodajte kod koji definiše svaki od vaših Twig šablona. Ključ svakog elementa u nizu je ono što će vam biti potrebno za pozivanje šablona kasnije. Ne koristite crticu u imenu fajla.


Twig šabloni mogu se proširiti koristeći sledeću sintaksu -
{% extends 'html.twig' %}
Više detalja potražite na https://symfony.com/doc/current/templates.html#template-inheritance-and-layouts


Podteme, kao i svaka druga tema, razlikuju se po jednoj karakteristici: one nasleđuju resurse roditeljske teme. Ne postoje ograničenja u lancu koji povezuju podteme sa njihovim roditeljima. Podtema može biti dete druge podteme, i može biti razgranata i organizovana kako god želite.


Classy je osnovna Drupal 8 tema i glavna tema koju koriste Bartik i Seven. HTML markup koji se nalazi u Classy (i njenim podtemama) sadrži CSS klase strukturirane na način sličan CSS konvencijama imenovanja BEM i SMACSS.
Iako su BEM/SMACSS konvencije imenovanja koje je dizajnirao Classy vrlo efikasne i nude mnogo pogodnosti, nisu pogodne za svaki projekat. Oni koji nisu zainteresovani za Classy CSS klase mogu izabrati drugu osnovnu temu.


Dokumentujte sve CSS klase selektora koji postoje u temi classy Drupal8 RC 2
format:
.foo { }
.foo-bar { }
filename.html.twig / filename.css
Twig - Dostupni CSS selektori u Classy temi:
LAYOUT
Body
.user-logged-in { }
.path-frontpage { }
.path-[root_path] { }
.node--type-[node_type] { }
.db-offline { }
.visually-hidden { }
.focusable { }
.skip-link { }
fajl: html.html.twig
