Բլոգ
Drupal թեմատիկ դաս 2. Գլխավոր էջի դասավորությունը
Այս դասում մենք կներկայացնենք կայքի գլխավոր էջը, ես ստորև կցում եմ սկզբնական կոդը, դեմո տարբերակը կհայտնվի, հենց որ ավարտեմ թեմատիկ դասերի շարքը։
Drupal դաս 1-ի թեմատիկա Readme ֆայլ Zen թեմա
Ինչից սկսել?
Ուռա։ Դուք բացեցիք ճիշտ ֆայլը առաջին հերթին։ Առաջին բանը, ինչ նկատում են մարդիկ երբ ներբեռնում են Zen թեման, այն է, որ այստեղ շատ ավելի շատ ֆայլեր կան, քան մյուս թեմաներում։
Չանհանգստանաք։ Ձեզ անհրաժեշտ չէ ամեն ինչ իմանալ միանգամից՝ Drupal թեմա ստեղծելու համար։
Zen-ը քեզ կտա այն, ինչ դու չգիտեիր, և համբերատար կսպասի մինչ դու կսովորես փաստաթղթավորումը և մեկնաբանությունները դրա մասին։
Ստեղծեք ձեր սեփական Drupal թեման՝ հիմնված Zen թեմայի վրա
Եթե դուք որոշել եք չօգտագործել պատրաստի թեմա Drupal-ի համար, այլ ստեղծել սեփականը կամ տեղափոխել շաբլոն WordPress-ից կամ Joomla-ից, ապա ստիպված եք լինելու թեման գրել զրոյից։ Սակայն դրա համար արդեն գոյություն ունեն պատրաստի karkas-ներ՝ ձեր թեմաների համար։
Drupal 6/7 կայքի թեմատիկա։ Ինչի՞ց է բաղկացած ձևանմուշը։
Ողջույն բոլորին!
Հույս ունեմ՝ դուք արդեն դիտել եք HTML և CSS-ի կարճ ներածականները։ Այժմ պատրաստ եք ստեղծելու Drupal-ի թեմաներ՝ հիմնվելով PSD մակետների վրա։ Ստորև բերված են հղումներ դեպի HTML և CSS «ձեռնարկները»՝
Drupal թեմատիկա (ոճավորում, ձևանմուշներ)
Դուք արդեն ծանոթ եք drupalbook.org կայքի Drupal-ի ձեռնարկի առաջին երկու բաժիններից, որտեղ սովորեցիք ինչպես տեղադրել կայքը, ավելացնել բովանդակության տիպեր, ստեղծել տարբեր տիպի նյութեր և դրանք ցուցադրել Views մոդուլի միջոցով։ Հաջորդ բաժիններում դուք ծանոթացաք HTML/CSS-ի հիմունքներին։ Այժմ եկել է ժամանակը խոսելու այն մասին, թե ինչպես փոխել այդ նյութերի արտաքին տեսքը՝ օգտագործելով CSS։
Drupal 7 ձևաթղթերի API՝ Drupal-ում ձևերի ստեղծման համար
Նախորդ դասերում մենք ծանոթացանք hook_block_info(), hook_block_view(), hook_menu(), hook_permission() hook-երին և այժմ կարող ենք ծրագրային եղանակով ստեղծել անսահմանափակ քանակությամբ էջեր և բլոկներ։ Այս դասում մենք կծանոթանանք Drupal 7-ի Form API-ին՝ ձևերի ստեղծման համար։ Մենք կստեղծենք ձև՝ մոդուլի ֆունկցիաների ադմինիստրացման համար և կփորձենք օգտագործել հնարավորինս շատ արդեն ծանոթ hook-եր՝ հմտությունները ամրապնդելու նպատակով։
Սկզբում կարտածենք 3 բլոկ՝ վստահ եմ՝ դա ձեզ համար բարդ չի լինի։
hook_permission Drupal 7 մուտքի թույլտվություններ տարբեր դերերի համար
Նախորդ դասերում մենք արտածում էինք էջեր և բլոկներ տարբեր տեղերում, ինչպես նաև օգտագործում էինք access arguments և access callback հատկությունները՝ էջերին հասանելիությունը սահմանափակելու համար։ Այս դասում մենք կստեղծենք օգտվողների թույլտվությունների ճկուն վերահսկման հնարավորություն՝ օգտագործելով hook_permission() (Drupal 6-ում՝ hook_perm())։
hook_permission()
Սահմանում է օգտվողի թույլտվությունները։
Hook_menu Drupal 7-ում՝ էջերի ստեղծում մոդուլի միջոցով
Նախորդ դասում մենք ուսումնասիրեցինք, թե ինչպես արտածել տեղեկություն բազայից Drupal API-ի միջոցով՝ մասնավորապես hook_block_info() և hook_block_view() hook-երի միջոցով։ Այս դասում մենք կարտածենք էջեր, ավելի ճիշտ՝ hook_menu()-ի միջոցով կկապենք էջը Drupal-ի այլ մասերի՝ մենյուի, թարգմանությունների մոդուլի, շաբլոնների և այլն։
Սկսենք պարզից՝ կարտածենք վերջին 10 նորությունների վերնագրերն ու նկարագրությունները։ Կօգտագործենք hook_menu():
Drupal 7 hook_block_info() և hook_block_view() ֆունկցիաները ցուցադրում են բլոկի տեղեկատվությունը։
Նախորդ դասում մենք ստեղծեցինք մոդուլ Drupal 7-ի համար, իսկ այս դասում կշարունակենք ընդլայնել մեր մոդուլի հնարավորությունները։ Մենք կավելացնենք բլոկի արտածում՝ օգտագործելով hook_block_info()
և hook_block_view()
hook-երը։ Այդ բլոկում կցուցադրվի վերջին գրանցված օգտվողների ցանկը՝ հղումներով դեպի իրենց էջերը։
Սկսենք hook_block_info()-ի նկարագրությունից՝
Այս hook-ը սահմանում է՝ ինչ բլոկներ է մոդուլը ստեղծում։
Մեկնաբանություններ՝
page-content-type.tpl.php առանձին ձևանմուշ բովանդակության տեսակի համար
Հավանաբար դուք ոչ մեկ անգամ ստեղծել եք նոդերի համար առանձին շաբլոններ՝ վերագրելով դրանք որպես node-content-type.tpl.php
։
Երբեմն դա լիովին բավական է, բայց երբեմն կոնկրետ կոնտենտի տիպի համար անհրաժեշտ է առանձնահատուկ շաբլոն։ Ցավոք, Drupal 6-ում դա հնարավոր չէ առանց լրացուցիչ կոդ գրելու։ Որպեսզի page-content-type.tpl.php
ձևաչափով նոր շաբլոնները աշխատեն, անհրաժեշտ է template.php
ֆայլում տեղադրել հետևյալ կոդը՝