Drupal-ի գլոբալ ներդրման շաբաթավերջ, 26, 27 հունվարի, 2019թ.
2019 թվականի հունվարի 26 — 10:00 - 14:00 (Մոսկվայի ժամանակ)
2019 թվականի հունվարի 27 — 10:00 - 14:00 (Մոսկվայի ժամանակ)
Ողջույն բոլորին։ Իմ անունն է Իվան, ես աշխատում եմ Drupal-ի վրա, վարում եմ բլոգ և YouTube ալիք՝ նվիրված Drupal-ին․
https://drupalbook.org
https://www.youtube.com/c/IvanAbramenko
Drupal-ում սոցիալական ցանցի ստեղծում
Drupal-ի հնարավորությունների սահմանը
Drupal-ը համարվում է բովանդակության կառավարման լավագույն համակարգերից (CMS) մեկը։ Փաստորեն, այն երկու անգամ հաղթել է 2008թ. Լավագույն բաց կոդով CMS և Լավագույն PHP բաց կոդով CMS մրցանակները։ Մոտավորապես 8 տարվա ընթացքում Drupal-ը դարձել է լավագույն և բազմաֆունկցիոնալ ֆրեյմվորկներից մեկը։ Drupal-ի բացառիկ բազմակողմանիությունն անկասկած նրա ուժեղ կողմն է...
Drupal 7-ի համար մոդուլների մշակում
Այս ձեռնարկի բաժնում ես ցույց կտամ, որ Drupal-ը պարզապես CMS չէ։ Մենք կքննարկենք, թե ինչից են կազմված Drupal մոդուլները, ինչպես նաև կստեղծենք մի քանի սեփական մոդուլներ։
Drupal 7 - Աշխատանք տվյալների բազայի հետ PHP PDO-ի միջոցով
Անցում կատարելով Drupal 7-ի վրա՝ մենք անցնում ենք նոր Drupal տվյալների բազայի աբստրակցիայի շերտի API-ի, որը կառուցված է PDO-ի հիման վրա։ PDO-ն վաղուց արդեն օգտագործվում է ինչպես Zend framework-ում, այնպես էլ բազմաթիվ այլ PHP ֆրեյմվորկներում։ Ամեն ինչ շատ հարմար էր Drupal 6-ում՝ SQL հարցումներ գրելու առումով, բայց ի՞նչու է մեզ պետք ինչ-որ նոր բան։
Եկեք նախ պարզենք՝ ի՞նչ է PDO-ն։
Աշխատանք տվյալների բազայի հետ Drupal 7-ում - Դաս 1 - drupal db api
Եթե դուք գրել եք մոդուլներ Drupal-ի 6-րդ տարբերակի համար, ապա ձեզ համար դժվար չի լինի անցում կատարել դեպի Drupal 7-ի database API: Նոր DB API-ն աշխատում է PHP-ի PDO ընդլայնման հիման վրա, ինչը նրան հնարավորություն է տալիս աշխատել տարբեր տվյալների բազաների հետ, ինչպիսիք են MySQL, PostgreSQL, MSSQL և հնարավոր է նաև Oracle։ Պարզության մասին դժվար է խոսել, քանի որ պետք է սովորել նոր շարահյուսությանը, SQL հարցում գրելն ավելի սովորական է։
Ահա մի հատված պաշտոնական փաստաթղթերից՝
Աշխատանք տվյալների բազայի հետ Drupal 7-ում - Դաս 2 - Տվյալների բազայի կարգավորում
ԲԴ-ի հետ կապի սահմանման հիմնական միջոցը $databases զանգվածն է, որը գտնվում է settings.php ֆայլում։ Ինչպես ցույց է տալիս անունը, $databases թույլ է տալիս սահմանել բազմաթիվ կապեր տվյալների բազաների հետ։ Այն նաև աջակցում է մի քանի նպատակների սահմանումը։ Կապը չի բացվում (կապի օբյեկտ չի ստեղծվում), մինչև առաջին անգամ որևէ կոդի հատված հարցում չկատարի տվյալների բազային։
Աշխատանք տվյալների բազայի հետ Drupal 7-ում - Դաս 3 - Ստատիկ հարցումներ (SELECT)
Drupal-ում հարցման ամենընդհանուր ձևը ստատիկ հարցումն է։ Ստատիկ հարցումը բառացիորեն փոխանցվում է տվյալների բազային։ Միայն ընտրության հարցումը (select) կարող է լինել ստատիկ։
Ստատիկ հարցումներ պետք է օգտագործել միայն շատ պարզ դեպքերում։ Եթե անհրաժեշտ է գրավել բարդ հարցում, դինամիկ ստեղծվող կամ փոփոխվող հարցում՝ օգտագործեք դինամիկ հարցումներ։
Պարզ ճանապարհ ստատիկ հարցում կատարելու՝ մեթոդի միջոցով՝
<?php
$result = $conn->query("SELECT nid, title FROM {node}");
?>
Նախընտրելի է օգտագործել գործընթացային փաթեթավորիչը՝
Աշխատանք տվյալների բազայի հետ Drupal 7-ում - Դաս 4 - Դինամիկ հարցումներ (SELECT)
Հավանաբար մենք մոտեցել ենք Drupal-ի Database API-ի ամենահետաքրքիր հատվածին՝ դինամիկ հարցումներին: Դրանք անվանվում են դինամիկ, քանի որ Drupal-ը դինամիկ կերպով ավելացնում է հարցման տեքստը: Բոլոր ներմուծման, թարմացման, ջնջման կամ միավորման հարցումները կարող են լինել դինամիկ: Ընտրության հարցումները կարող են լինել թե՛ դինամիկ, թե՛ ստատիկ: Այնուամենայնիվ, խորհուրդ է տրվում օգտագործել դինամիկ հարցումներ՝ նույնիսկ ընտրության համար:
Ինչից է բաղկացած Drupal 7 մոդուլը։
Նախքան սկսել մեր մոդուլի ստեղծումը, ես դեռ մի քիչ կպատմեմ Drupal API-ի հնարավորությունների մասին։ API-ն տալիս է լայն հնարավորություններ՝ աշխատելու Տաքսոնոմիայի, նոդերի, օգտագործողների, ԲԴ մուտքագրման և արտածման հետ։ Դրուպալում գոյություն ունի հուկերի համակարգ, որը նախատեսված է մոդուլների և միջուկի, ինչպես նաև մոդուլների միջև փոխկապակցության համար։ Հուկը հետադարձ կանչվող ֆունկցիա է (callback), այսինքն՝ երբ կոդի կատարումը հասնում է հուկին, կատարվում է մեր ֆունկցիայի կցում՝ որը մենք գրում ենք մեր մոդուլում։ Այդպես մենք կարող ենք մշակել օգտատիրոջ տվյալները, մենյուները, տաքսոնոմ
Drupal-ում մոդուլի ստեղծում, արագ մեկնարկ
Սկսենք api.drupal.org կայքից, բացեք hook_node_presave() հուկի էջը, որը գործարկվում է նախքան նոդի ավելացումը։
http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7
Հուքերը թույլ են տալիս մեզ ներդնել մեր կոդը Դրուպալի ընթացիկ գործընթացների մեջ, ավելացնել ստուգումներ, տվյալների դաշտեր, ձևերի տարրեր և այլն։
Ավելացնենք մեր մոդուլը sites/all/modules թղթապանակում՝ հետևյալ կառուցվածքով․