logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll
19/06/2025, by Ivan

Menu

«Twig»-ի պաշտոնական փաստաթղթից՝ «Մակրոներն ընդհանրելի են սովորական ծրագրավորման լեզուների ֆունկցիաների հետ։ Դրանք օգտակար են հաճախ օգտագործվող HTML իդիոմները բազմակի օգտագործման տարրերում տեղավորելու համար, որպեսզի չկրկնվեն»։

{% macro input(name, value, type, size) %}
  <input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
{% endmacro %}

Մակրոները տարբերվում են PHP-ի բնիկ ֆունկցիաներից մի քանի ուղղություններով՝

  • Օգտագործվում է default ֆիլտրը մակրոյի մարմնում, որպեսզի սահմանվի դեֆոլտ արգումենտների արժեքները․
  • Մակրոյի արգումենտները միշտ ընտրովի են։
  • Եթե մակրոյին տրվում են լրացուցիչ դիրքային արգումենտներ, դրանք ընկնում են հատուկ varargs փոփոխականում՝ որպես արժեքների ցուցակ։

Բայց ինչպես PHP ֆունկցիաներում, մակրոները չունեն մուտք ներկա կաղապարի փոփոխականներին։ Կարող եք ամբողջ կոնտեքստը փոխանցել որպես արգումենտ՝ օգտագործելով հատուկ _context փոփոխականը։

Մակրոյի կանչը

_self-ից

Մակրոն կարող եք տեղադրել հենց այն Twig կաղապարում, որտեղ կանչում եք այն։ Այս դեպքում օգտագործվում է _self կոնտեքստը․

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

Դրսի ֆայլից

Այնուամենայնիվ, առաջարկվում է մակրոները տեղադրել առանձին ֆայլում (օրինակ՝ macros.twig), որպեսզի դրանք կարողանաք օգտագործել մի քանի կաղապարներում։

Օրինակ, մեր «mytheme» օգտվող թեմայում մակրոյի ֆայլը տեղադրում ենք այստեղ՝

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

Նշում․ մակրոյի ֆայլը կարող է ունենալ ցանկացած անուն՝ any.twig, բայց չի կարող ունենալ html ընդլայնում (օրինակ՝ macros.html.twig չի աշխատի)։ Ֆայլը նաև պետք է լինի «templates» թղթապանակում, անկախ նրանից, թե որտեղ է օգտագործվում (օրինակ՝ Layout Builder-ի լեյաուտների համար, որոնք դուք դրել եք .../mytheme/layouts, մակրոն պետք է լինի ../mytheme/templates)

Մակրոն օգտագործելու կաղապարում ավելացրեք այս import հրամանը․

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

@Mytheme մոգական կերպով գտնում է ձեր թեմայի «templates» թղթապանակը, բայց պետք է ներմուծման հրամանում ճշգրտեք ցանկացած լրացուցիչ ենթաթղթապանակների կառուցվածքը, օրինակ՝

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

Նշեք, որ այս փաստաթղթի ավելի հին տարբերակներում նշվում էր, որ ենթաթղթապանակների կառուցվածքը նշելը պարտադիր չէ, այդ պատճառով կարող են տարբերություններ լինել։ Եթե դա անում եք օգտվողի մոդուլում, օգտագործեք նույն մեթոդը՝ օգտագործելով մոդուլի անունը՝ թեմայի անունի փոխարեն (օրինակ՝ @mycustommodule)։

Այնուհետև օգտագործեք մակրոն ...

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

Օրինակներ

Drupal 8-ում մակրոն օգտագործվում է, օրինակ, հիմնական նավիգացիայի կառուցման համար (տես՝ 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.