logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll
19/06/2025, by Ivan

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:

  • Podrazumevane vrednosti argumenata se određuju pomoću filtera default unutar tela makroa;
  • Argumenti makroa su uvek opciona;
  • Ako se makrou proslede dodatni pozicioni argumenti, oni se smeštaju u posebnu promenljivu varargs kao lista vrednosti.

Međutim, kao i kod PHP funkcija, makroi nemaju pristup trenutnim varijablama šablona. Možete proslediti ceo kontekst kao argument koristeći posebnu promenljivu _context.

Pozivanje makroa

Iz _self

Makro možete staviti u isti Twig šablon iz kojeg ga pozivate. U tom slučaju se koristi kontekst _self ...

{{ _self.input(name, value, type, size) }}

Iz spoljnog fajla

Ipak, preporučuje se da makroi budu smešteni u poseban fajl (npr. macros.twig), kako bi mogli biti korišćeni u više šablona.

Na primer, u korisničkoj temi „mytheme“ ovde smeštamo fajl makroa ...

[site_root]/themes/custom/mytheme/templates/macros.twig

Napomena: fajl makroa može imati bilo koje ime sa .twig ekstenzijom, ali ne sme imati .html ekstenziju (npr. macros.html.twig neće raditi). Takođe, fajl mora biti smešten u direktorijum „templates“ bez obzira gde se koristi (na primer, za Layout Builder rasporede koje ste smestili u ... /mytheme/layouts, makro mora postojati u ../mytheme/templates ).

U šablonu gde želite da koristite makro, dodajte ovaj import izraz.

{% import '@mytheme/macros.twig' as myMacros %}

@mytheme magično pronalazi direktorijum „templates“ vaše teme, ali dodatnu strukturu direktorijuma morate navesti u import izrazu, na primer:

{% import '@mytheme/foo/bar/macros.twig' as myMacros %}

Napomena: u starijim verzijama ove dokumentacije pisalo je da nije potrebno navoditi strukturu poddirektorijuma, pa može biti razlika u praksi. Ako ovo radite u korisničkom modulu, koristite istu tehniku, samo umesto imena teme koristite ime modula (npr. @mycustommodule).

Zatim koristite makro ...

{{ myMacros.input(name, value, type, size) }}

Primeri

U Drupalu 8 makro se koristi za pravljenje, na primer, glavne navigacije (vidi fajl menu.html.twig).

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.