Articles

Մենք արդեն ուսումնասիրել ենք Form API-ն, Fields API-ն և գիտենք, թե ինչպես է տվյալները Drupal-ում պահվում տվյալների բազայում։ Այժմ անդրադառնանք բոլոր Drupal կայքերի հիմքին՝ Entity API-ին։


Այս հոդվածում մենք կդիտարկենք դաշտի ձևաչափիչները (Field Formatters), որոնք թույլ են տալիս խմբագրել դաշտերի ցուցադրումը և դրանք ցուցադրել էջում։
Նախորդ հոդվածներում մենք ստեղծեցինք Link դաշտի տիպ, իսկ այս հոդվածում կդիտենք, թե ինչպես են այդ դաշտերը ցուցադրվում էջում և որ դասերն են պատասխանատու այդ ցուցադրման համար։
Drupal-ում ավելացրած յուրաքանչյուր դաշտ կարող է ցուցադրվել էջում, և նրա կարգավորումները հնարավոր է փոփոխել Manage display էջից։


Նախորդ հոդվածներում մենք ուսումնասիրել ենք Link դաշտի տեսակը՝ պահեստավորում (Storage), մուտքագրում (Widget), ցուցադրում (Formatter): Այս հոդվածում մենք կստեղծենք մեր սեփական դաշտի տեսակը՝ էջում YouTube տեսանյութ ցուցադրելու համար՝ երկու տարբեր ձևաչափով և կարգավորումներով:
Այս հոդվածը կենտրոնացած է Fields API-ի վրա, իսկ եթե Ձեզ անհրաժեշտ է YouTube տեսանյութի դաշտ ավելացնել կայքին, ապա ավելի լավ է օգտվել պատրաստի մոդուլից՝


Այս հոդվածում կքննարկենք դաշտի ցուցադրման ձևավորիչները (Field Formatters), որոնք թույլ են տալիս խմբագրել դաշտերի ցուցադրումը և դրանք տեսանելի դարձնել էջում։
Նախորդ հոդվածներում մենք ստեղծել էինք Link դաշտի տիպ։ Այս հոդվածում կտեսնենք, թե ինչպես են այդ դաշտերը ցուցադրվում էջում և որ դասն է դրա համար պատասխանատու։
Յուրաքանչյուր դաշտ, որը դուք ավելացնում եք Drupal-ում, կարող է ցուցադրվել էջում և դրա կարգավորումները կարող եք փոխել Manage display էջում։


Այս ձեռնարկում կծանոթանանք, թե ինչպես է աշխատում Link մոդուլի Field Widget-ը։ Սա վերանայման հոդված է, այնպես որ եթե ցանկանում եք սկսել գրել ձեր սեփական Field Widget-ը, կարող եք անցնել հաջորդ հոդվածներին։
Նախորդ դասում մենք ավելացրինք Link դաշտեր նոդերի և բլոկների համար։ Հիմա եկեք տեսնենք, թե ինչի հիման վրա է կազմվում Link դաշտի ձևը։
Մենք արդեն ծանոթացել ենք Drupal-ում PHP դասերի ավտոլցման համակարգին, և դաշտերի համար գոյություն ունի նաև WidgetBase կոչվող հիմնական դաս՝
core/lib/Drupal/Core/Field/WidgetBase.php


Այս հոդվածում կփորձենք հասկանալ, թե ինչպես են աշխատում դաշտերը Drupal-ում, ինչի համար են դրանք նախատեսված և ինչպես են օգնում արագ կայքեր մշակել Drupal-ով:
Մենք արդեն աշխատել ենք դաշտերի հետ նախորդ հոդվածներում՝


Շատ հաճախ արտաքին ծառայությունների հասանելիությունը պետք է տարբեր լինի զարգացման (dev) և աշխատանքային (live) միջավայրերում։ Այս խնդիրը կարգավորելու համար կարող եք օգտագործել Configuration Split մոդուլը՝
https://www.drupal.org/project/config_split
Config Split մոդուլը միացնելուց հետո կկարողանաք նշել կոնֆիգուրացիաների թղթապանակները տարբեր միջավայրերի համար։ Գնացեք Configuration Split մոդուլի կարգավորումների էջ՝
/admin/config/development/configuration/config-split


Երբ դուք ներմուծում եք կոնֆիգուրացիան մեկ կայքից մյուսը, որոշ կոնֆիգուրացիաներ անհրաժեշտ են բովանդակության արտածման համար, բայց կոնֆիգուրացիայի մեջ բուն բովանդակություն չկա։ Այս դասում մենք կբացատրենք, թե ինչպես տեղափոխել բլոկներ, հանգույցներ (nodes) և դասակարգման տերմիններ (taxonomy terms) մեկ կայքից մյուսը։


Կոնֆիգուրացիան (Configuration) Drupal-ում կայքի բոլոր պարամետրերի՝ բովանդակության տեսակների, դաշտերի, կարգավորումների ձևերի և փոփոխականների հիմքն է։ Կոնֆիգուրացիայի օգնությամբ մենք կարող ենք փոփոխությունները փոխանցել մեկ կայքից մյուսը, միաժամանակ զարգացնել տարբեր ֆիչերներ՝ առանց միմյանց խանգարելու։
Կոնֆիգուրացիաները կարելի է արտահանել YML ֆայլերի մեջ և ավելացնել Git-ի պահոցում, այսինքն՝ դուք կարող եք կայքի կարգավորումների փոփոխությունները կոմիտել և փոխանցել դրանք Dev կամ Live։ Drupal-ում կոնֆիգուրացիայի գաղափարը նման է Features մոդուլի աշխատանքին՝


Այս հոդվածում մենք կշարունակենք ծանոթանալ Drupal 8-ի Form API-ին և կստեղծենք բազմափուլ ձև (multi-step form): Մենք արդեն ստեղծել ենք մոդուլի սովորական կարգավորումների ձևը, իսկ բազմափուլ ձևը ստեղծվում է նույնատիպ ձևով՝ օգտագործելով $form_state՝ ձևի փուլերի միջև տվյալները պահելու համար։
Կոդի օրինակները կարող եք գտնել github-ում՝
https://github.com/levmyshkin/drupalbook8
Բազմափուլ ձևի համար անհրաժեշտ է ձևի class ավելացնել՝
/modules/custom/drupalbook/src/Form/MultiStepForm.php
