Articles

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


Այս դասում մենք կծանոթանանք Drupal Form API-ին և կստեղծենք կարգավորման ձև՝ մոդուլի համար։ Մենք արդեն ստեղծել ենք էջ և բլոկ ցուցադրող մոդուլներ, այժմ եկեք ստեղծենք կարգավորումների ձև, որում կպահպանենք տվյալներ՝ որոշ ծառայության միացման համար։ Ենթադրենք՝ մեզ անհրաժեշտ է կայքում պահպանել API Key և API Client ID, օրինակ՝ Google Maps API-ի համար։
Ծածկագրի օրինակները հասանելի են github-ում.
https://github.com/levmyshkin/drupalbook8


Այս դասում մենք կուսումնասիրենք, թե ինչպես կարելի է ծրագրային եղանակով բլոկեր ցուցադրել՝ օգտագործելով հարմարեցված մոդուլ Drupal 8-ում։
Ծածկագրի օրինակները հասանելի են github-ում.
https://github.com/levmyshkin/drupalbook8
Եկեք սկսենք PHP դաս պարունակող ֆայլ ավելացնելով, քանի որ այսպես են բլոկեր ստեղծվում Drupal-ում հարմարեցված մոդուլի միջոցով։ Ֆայլի ստեղծման գործընթացը նույնն է, ինչ էջի համար դասը ստեղծելիս, ինչպես արեցինք այստեղ․


Այս դասում մենք կծանոթանանք, թե ինչպես կարելի է ծրագրային եղանակով բլոկեր արտածել սեփական մոդուլի միջոցով Drupal 8-ում։
Կոդի օրինակները կարող եք դիտել GitHub-ում.
https://github.com/levmyshkin/drupalbook8
Սկսենք ֆայլ ավելացնելով, որը պարունակում է PHP դաս։ Այս կերպ են բլոկերը ստեղծվում Drupal-ում՝ սեփական մոդուլի միջոցով։ Ֆայլ ստեղծելու գործընթացը նման է էջի դասի ստեղծմանը, ինչպես արեցինք այստեղ․


Մենք կարող ենք օգտագործել URL-ի պարամետրերը երթուղիների (routes) համար։ Դրանք աշխատում են ճիշտ այնպես, ինչպես Views-ի կոնտեքստային ֆիլտրերը։ Օրինակ՝ մենք կարող ենք URL-ով փոխանցել տարբեր էություների ID-ներ, տեքստային տողեր կամ հերթական ID-ներ՝ բաժանված ստորակետով կամ գումարով։ Այս դասում մենք կփոխանցենք node-ի ID-ն և կցուցադրենք այդ node-ի վերնագիրը և հիմնական բովանդակությունը։
Կոդի օրինակները հասանելի են GitHub-ում՝
https://github.com/levmyshkin/drupalbook8


Drupal API-ն սովորելիս հաճախ ձեզ անհրաժեշտ կլինի օգտվել հիմնական փաստաթղթավորումից՝ https://api.drupal.org հասցեում։ Սա Drupal-ի ավտոմատ գեներացված փաստաթղթավորումն է։ Այն պարունակում է ամբողջ տեղեկատվությունը՝ յուրաքանչյուր ֆունկցիայի, դասի, մեթոդի, դրանց սահմանման վայրերի և համառոտ նկարագրության մասին։ Այս կայքում կա նաև API օգնություն։ Խորհուրդ եմ տալիս ծանոթանալ դրա յուրաքանչյուր բաժնին։


Այս դասում մենք կընդլայնենք մեր մոդուլի հնարավորությունները և կստեղծենք բովանդակություն, որը հասանելի կլինի միայն գրանցված օգտատերերին կամ որոշակի իրավունքներ ունեցողներին։
Կոդի օրինակները հասանելի են GitHub-ում՝
https://github.com/levmyshkin/drupalbook8
Եկեք սկսենք ավելացնելով նոր YML ֆայլ՝ մեր մոդուլի drupalbook.permissions.yml
թղթապանակում՝


Եկեք մեր մոդուլի ստեղծումը սկսենք փոքր-ինչ կարգապահ ձևով։ Շարունակենք բաժանել custom (անհատական) և contributed (ներբեռնված) մոդուլները։ Drupal-ում մոդուլները տեղակայվում են /modules
թղթապանակում։ Այժմ այլևս անհրաժեշտ չէ դրանք տեղադրել /sites/all/modules
թղթապանակի խորքում, չնայած որ readme-ն նշում է, որ դա աշխատում է։ Օգտագործեք /modules
թղթապանակը։ Դրա ներսում ստեղծեք custom
և contrib
թղթապանակները։ Contrib թղթապանակում կտեղադրվեն drupal.org-ից ներբեռնված մոդուլները, իսկ custom-ում՝ ձեր ստեղծած մոդուլները։


Այս հոդվածը նախատեսված է ձեզ ծանոթացնելու Drupal համակարգին։ Մենք կգրենք կոդի օրինակներ հետագայում՝ մեր սեփական մոդուլը ավելացնելուց հետո։


Այն ամենը, ինչ մենք մինչ այժմ ուսումնասիրել ենք, նման էր Drupal-ի նախորդ տարբերակներին։ Բայց երբ խոսքը վերաբերում է զարգացմանը, ամեն ինչ այլ է։ Թեև արտաքին տեսքով Drupal-ը նման է Drupal 7-ին, ներքուստ այն կառուցված է Symfony-ի բաղադրիչներով, իր սեփական կոմպոնենտներով և բազմաթիվ գրադարաններով։ Հետևաբար, դուք պետք է աշխատեք նոր plugin համակարգի հետ և օգտագործեք PHP-ում օբյեկտակենտրոն ծրագրման (OOP) սկզբունքները։
