Ֆիլտրեր - փոփոխականների փոփոխումը Twig կաղապարներում
Twig-ում ֆիլտրերը կարող են օգտագործվել փոփոխականների փոփոխման համար։ Ֆիլտրերը փոփոխականից բաժանվում են "|" նշանով։ Դրանք կարող են ունենալ ընտրովի արգումենտներ փակագծերում։ Կարելի է կապել մի քանի ֆիլտրեր։ Առաջին ֆիլտրի արդյունքը փոխանցվում է հաջորդին։
Օրինակ՝
{{ content|safe_join(", ")|lower }}
Միգուցե անհրաժեշտ լինի սկզբում էլեմենտը դ_render անել, այնուհետև ֆիլտրել․
{{ item|render|filter }}
Twig-ը ներառում է բազմաթիվ ներկառուցված ֆիլտրեր, որոնք կարող եք տեսնել նրանց պաշտոնական փաստաթղթերում։ Drupal-ը ունի նաև բազմաթիվ իր սեփական ֆիլտրերը։
Drupal հատուկ ֆիլտրեր
Դրանք հայտարարված են TwigExtension::getFilters() մեթոդում։
Թարգմանության ֆիլտրեր
trans
Այս ֆիլտրը (այլընտրանքով՝ t) անցկացնում է փոփոխականը Drupal-ի t() ֆունկցիայի միջոցով, որն վերադարձնում է թարգմանված տողը։ Այս ֆիլտրը պետք է օգտագործել այնպիսի ինտերֆեյսի տողերի համար, որոնք ձեռքով են տեղադրվել կաղապարում և կցուցադրվեն օգտվողներին։
Օրինակ՝
<a href="{{ url('<front>') }}" title="{{ 'Home'|t }}" rel="home" class="site-logo"></a>
placeholder
Այս ֆիլտրը HTML-ում էսկեյփավորում է պարունակությունը և ձևավորում այն drupal_placeholder()-ի միջոցով, ինչը հնարավորություն է տալիս ցույց տալ ընդգծված տեքստ։
Օրինակ՝
{% trans %}Submitted on {{ date|placeholder }}{% endtrans %}
Անվտանգ չլինող թարգմանություն
Որոշ կաղապարներ չեն անվտանգ և չպետք է օգտագործվեն, քանի որ նրանք փոփոխականը ուղիղ փոխանցում են թարգմանությանը։ Սա ոչ միայն ավելացնում է թարգմանությունների տողերի ցանկը, այլ նաև հնարավոր է անվտանգության խոցելիություն առաջացնի, հատկապես եթե ելքը կարող է մուտքագրվել օգտվողի կողմից։ Կան օրինակներ սխալ թարգմանության համար՝
{# ԱՅՍ ՉՏՎԵԼ #} {{ var1|t }} {{ var1|placeholder }} {% trans %}{{ var1 }}{% endtrans %}
Լրացուցիչ ֆիլտրեր
clean_class
Այս ֆիլտրը պատրաստում է տողը՝ որպես HTML դասի վավեր անուն օգտագործելու համար։ Տես Html::getClass()
clean_id
Այս ֆիլտրը պատրաստում է տողը՝ որպես վավեր HTML նույնականացուցիչ օգտագործելու համար։ Տես Html::getID()
format_date
Այս ֆիլտրը պատրաստում է ժամանակի նշանը՝ որպես ֆորմատավորված ամսաթվի տող օգտագործելու համար։ Տես DateFormatter::format()
raw
Սովորաբար այս ֆիլտրը պետք է խուսափել, հատկապես եթե ցուցադրում եք տվյալներ, որոնք կարող են մուտքագրվել օգտվողի կողմից։ Տես այս էջը՝ Drupal 8-ում ավտոմատ էսկեյփինգի մասին լրացուցիչ տեղեկությունների համար։
render
Այս ֆիլտրը պարունակում է render() ֆունկցիայի ձեւավորումը։ Այն ընդունում է դրսևորումների զանգված և արտածում է դրսևորված HTML կոդ։ Կարող է օգտակար լինել, եթե ցանկանում եք կիրառել լրացուցիչ ֆիլտր (օրինակ՝ նշումների վերլուծություն) կամ պայման դնել արտածվածի հիման վրա (օրինակ՝ եթե ունեք ոչ դատարկ դրսևորումների զանգված, որն վերադարձնում է դատարկ տող)։ Կարող է օգտագործվել նաև տողերի և որոշ օբյեկտների համար, հատկապես նրանց, որոնք ունեն toString() մեթոդ։
safe_join
safe_join ֆիլտրը միավորում է մի քանի տող նշված բաժանարարով։ Տես TwigExtension::safeJoin()։
Օրինակ՝
{{ items|safe_join(', ') }}
Սա կարտածի items փոփոխականի յուրաքանչյուր տող՝ միացված ու ',', որպես տարրերի բաժանարար։
without
without ֆիլտրը ստեղծում է դրսևորման զանգվածի պատճեն և հեռացնում երեխաներին՝ նշված բանալիով, որը փոխանցվում է ֆիլտրին արգումենտներով։ Պատճենը կարելի է տպել առանց այդ տարրերի։ Աղբյուրը դեռ հասանելի է ամբողջական տպագրության համար կաղապարի ճյուղում։ Տես twig_without։
Օրինակներ՝
{{ content|without('links') }}
Սա տպում է content փոփոխականի բոլորը, բացի content.links-ից։
{{ content|without('links', 'field_some_data') }}
Օրինակ՝ երկու տարրերի բացառումը ցուցադրությունից։ Հեռացնում է «links» և «field_some_data»։
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.