Articles

Tema je skup fajlova koji definišu nivo prikaza. Takođe možete kreirati jednu ili više „podtema“ ili varijanti teme. Potreban je samo .info.yml fajl, ali većina tema i podtema koristi i druge fajlove. Na ovoj stranici su navedeni fajlovi i folderi koji se nalaze u tipičnoj temi ili podtemi.
Lokacija tema
Teme treba smestiti u folder „themes“ vaše Drupal instalacije. Obratite pažnju da se glavne Drupal teme, poput Bartik i Seven, nalaze u folderu core/themes vaše instalacije.


Dodavanje regiona u temu zahteva:
- Dodavanje metapodataka regiona u fajl THEMENAME.info.yml.
- Izmenu fajla page.html.twig i prikazivanje novih regiona.
Napomena. Ako definišete bilo koji region u svojoj temi, čak i samo jedan, svi podrazumevani regioni više neće važiti i vi preuzimate odgovornost da definišete sve oblasti koje želite da koristite.


Ova dokumentacija je za teme. Informacije o modulima pogledajte u odeljku Dodavanje stilskih tablica (CSS) i JavaScript (JS) u Drupal 8 modul.
U Drupalu 8, stilovi (CSS) i JavaScript (JS) se učitavaju kroz isti sistem za module (kod) i teme za sve: biblioteke resursa.
Za jasnoću, ove instrukcije su namenjene SAMO radu u temama i ne odnose se na module.


Twig je šablonski engine za PHP koji je deo Symfony2 framework-a.
U Drupalu 8 Twig je zamenio PHPTemplate kao podrazumevani šablonski sistem. Jedan od rezultata ove promene je da su sve funkcije theme_* i PHPTemplate bazirani *.tpl.php fajlovi zamenjeni *.html.twig šablonskim fajlovima.


Drupal vam omogućava da prepišete sve šablone koji se koriste za kreiranje HTML markupa, tako da možete potpuno kontrolisati markup koji se prikazuje kao izlaz u korisničkoj temi. Postoje šabloni za svaki element stranice, od visokog nivoa HTML-a pa sve do malih polja.
Prepisivanje šablona
Možete prepisati osnovne Drupal šablone tako što ćete dodati šablone u folder vaše teme, koji odgovaraju određenim konvencijama imenovanja.
Da biste prepisali šablone, potrebno je:


Drupal učitava šablone na osnovu određenih konvencija imenovanja. To vam omogućava da prepišete šablone dodavanjem istih u vašu temu i dodeljivanjem određenih imena.
Nakon dodavanja šablona, morate osvežiti keš da bi Drupal otkrio vaš novi šablon.


O Twig-u
Twig je kompajlirani šablonski jezik zasnovan na PHP-u. Kada se vaša web stranica prikazuje, Twig engine uzima šablon i pretvara ga u "kompajlirani" PHP šablon koji se čuva u zaštićenom direktorijumu na putanji sites/default/files/php/twig. Kompajliranje se obavlja jednom, fajlovi šablona se keširaju za ponovnu upotrebu i rekompajliraju prilikom čišćenja Twig keša.
Drupal Twig inicijativa ima istu motivaciju kao i Symfony inicijativa: implementirati moderan, moćan, objektno-orijentisani engine koji programerima omogućava da se pravilno fokusiraju na Drupal.


Prilikom rada sa Twig šablonskim fajlom, većina promenljivih je dokumentovana u komentarima u fajlu šablona. Međutim, kada to nije slučaj, ili kada teme ili moduli uvode nove promenljive, potreban nam je način da otkrijemo sve promenljive dostupne u okviru šablona. Twig pruža funkciju dump() za otkrivanje i proveru promenljivih u šablonskim fajlovima.
Funkcija dump() neće prikazati izlaz ako debagovanje nije uključeno. Saznajte kako da uključite Twig debagovanje.


Twig šablonski engine nudi alat za debagovanje.
Drupal 8 implementacija takođe dodaje dodatni alat koji vam omogućava da pronađete šablon koji generiše markup.
Upozorenje: uključivanje Twig debaga može narušiti neke delove sajta, naročito Views. Pogledajte ovaj problem.
Uključivanje debaga
Debag Twig-a uključujete u sites/default/services.yml.
Postavite vrednost promenljive debug na true. I očistite keš.


Kako Twig obično funkcioniše
Podrazumevano, Twig tematski mehanizam kompajlira šablone u PHP kod i čuva kompajlirani kod u memoriji. Kompajlirani kod nije pogodan za razvoj, jer promene u Twig šablonima se odmah ne osvežavaju na vašem Drupal sajtu.
Nakon što Twig završi sa generisanjem nekog markupa, u Render API-ju se pojavljuje još jedan nivo keširanja. Ovo uzima markup koji je Twig napravio i kešira ga tako da Twig uopšte ne učestvuje u daljim zahtevima stranica, zbog čega se Twig opcije za debagovanje na kraju zanemaruju.
