Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

Ինչից է բաղկացած Drupal 7 մոդուլը։

12/05/2025, by Ivan

Նախքան սկսել մեր մոդուլի ստեղծումը, ես դեռ մի քիչ կպատմեմ Drupal API-ի հնարավորությունների մասին։ API-ն տալիս է լայն հնարավորություններ՝ աշխատելու Տաքսոնոմիայի, նոդերի, օգտագործողների, ԲԴ մուտքագրման և արտածման հետ։ Դրուպալում գոյություն ունի հուկերի համակարգ, որը նախատեսված է մոդուլների և միջուկի, ինչպես նաև մոդուլների միջև փոխկապակցության համար։ Հուկը հետադարձ կանչվող ֆունկցիա է (callback), այսինքն՝ երբ կոդի կատարումը հասնում է հուկին, կատարվում է մեր ֆունկցիայի կցում՝ որը մենք գրում ենք մեր մոդուլում։ Այդպես մենք կարող ենք մշակել օգտատիրոջ տվյալները, մենյուները, տաքսոնոմիաները, տարբեր կոնտենտ տեսակների նոդերը։

Հաջորդ էջում՝

http://api.drupal.org/api/drupal/includes--module.inc/group/hooks/7

ներկայացված է Drupal-ի միջուկի հուկերի ցանկը։ Նկատեք, որ միջուկի տարբեր տարբերակների համար հուկերի ցանկը տարբեր է։ Ես պատրաստվում եմ ստեղծել մոդուլ Drupal 7-ի համար, հետևաբար մենք կօգտագործենք համապատասխան հուկ այդ տարբերակի համար։
Drupal-ի հուկերը ունեն հետևյալ տեսքը՝

module_name_hook_name

Այն տեղերում, որտեղ հուկի անունում գրված է hook, այդ տեղը պետք է փոխարինել ձեր մոդուլի անվամբ՝ որտեղ հուկը օգտագործվում է։

Սկզբում անհրաժեշտ է ստեղծել մոդուլը։

1. sites/all/modules թղթապանակում ստեղծեք մի թղթապանակ՝ ձեր մոդուլի ապագա անվանումով։ Ես իմը կկոչեմ site-made։

2. Մոդուլի թղթապանակում պետք է ստեղծել երկու ֆայլ՝ module_name.info և module_name.module։ Իմ դեպքում դրանք կլինեն sitemade.info և sitemade.module։

Drupal մոդուլ

3. sitemade.info ֆայլում գրեք հետևյալը․

;$Id$ // Այս մեկնաբանությունը պարտադիր չէ, բայց հարմար է drupal.org-ում մոդուլը բեռնելու համար
name = Sitemade module // Մեր մոդուլի անունը մոդուլների ցանկում
package = sitemade // Փաթեթի անունը, որին պատկանում է մեր մոդուլը
core = 7.x // Դրուպալի տարբերակը
files[] = sitemade.module // նշում ենք այն ֆայլերը, որոնք պարունակում են PHP կոդ

sitemade.module ֆայլում գրենք php-ի մեկնարկային տողը՝

<?php  // Տեգը կարելի է չփակել
//$Id$ // նույնպես ավելացվում է՝ drupal.org բեռնելու հարմարության համար

Այժմ մեր մոդուլը պետք է հայտնվի մոդուլների ցանկում։ Միացնենք այն։

Drupal մոդուլ

Այժմ, երբ մոդուլը միացված է, կարող ենք ավելացնել կոդ։ Առաջարկում եմ հեռացնել History (Պատմություն) տեքստային բլոկը օգտագործողի էջից։

Drupal բլոկ

Նախ նայենք ինչպես է դա աշխատում։ Մեզ անհրաժեշտ կլինի hook_user_view հուկը։

http://api.drupal.org/api/drupal/modules--user--user.api.php/function/hook_user_view/7

Այս հուկի իմաստն այն է, որ երբ Դրուպալը կատարում է օգտատիրոջ էջի դիտման համար անհրաժեշտ կոդը, մեր մոդուլի հուկը ներառվում է այդ գործընթացում։ Մեր մոդուլում մենք կհեռացնենք օգտագործողի account զանգվածից այն տվյալները, որոնք վերաբերում են Պատմությանը։ Բացեք sitemade.module ֆայլը և ավելացրեք հետևյալ կոդը․

function sitemade_user_view($account, $view_mode, $langcode){
  print_r($account);
}

Պահպանեք ֆայլը և մաքրեք Դրուպալի քեշը, որպեսզի հուկը ակտիվանա։ Էջի վերևում դուք պետք է տեսնեք որոշ տվյալներ։

Drupal module

Սա իրականում $account զանգվածն է, որը փոխանցվում է hook_user_view հուկով, իսկ print_r ֆունկցիան տպում է այն։ Եթե դուք օգտագործում եք Mozilla Firefox (խորհուրդ է տրվում կայքերի մշակումների համար), սեղմեք CTRL+U՝ էջի աղբյուրը դիտելու համար, և կտեսնեք այս զանգվածի պարունակությունը։

Drupal account

Ուշադրություն դարձրեք uid և name դաշտերին՝ դրանք հաճախ օգտագործվում են օգտատիրոջ էջին կամ նրա ստեղծած նյութերին հղումներ ստեղծելու համար։

Ինչպես տեսնում ենք, այստեղ միայն օգտատիրոջ տվյալներն են։ Պատմություն բլոկի մասին տեղեկատվություն չկա։ Փորձենք օգտագործել hook_user_view_alter հուկը։

http://api.drupal.org/api/drupal/modules--user--user.api.php/function/hook_user_view_alter/7

Փոխենք մոդուլի կոդը այսպես․

function sitemade_user_view_alter($account, $view_mode, $langcode){
  print_r($account);
}

Պահպանեք փոփոխությունները։ Տպված զանգվածը պետք է փոխված լինի՝ account դաշտը այժմ պարզապես դաշտ է ընդհանուր զանգվածում։ Իսկ summary դաշտում կա Պատմություն բլոկի տվյալը։ Փորձենք հեռացնել այս դաշտը։ Դա անում ենք unset ֆունկցիայով։

function sitemade_user_view_alter($account, $view_mode, $langcode){
  unset($account['summary']);
  print_r($account);
}

Ես հեռացրի summary դաշտը, սակայն Պատմություն բլոկը մնաց։ Ինչո՞ւ։ Քանի որ ֆունկցիայի պարամետր $account-ը փոխանցվել է որպես սովորական փոփոխական։ Այսինքն՝ մենք փոփոխություններ ենք անում ֆունկցիայի ներսում միայն այդ տեղային պատճենով։ Պետք է այն փոխանցել ըստ հղման՝ այդ փոփոխականի վրա ազդելու համար։ Այսինքն՝ ավելացնենք ampersand (&) նշանը՝

function sitemade_user_view_alter(&$account, $view_mode, $langcode){
  unset($account['summary']);
  print_r($account);
}

Պահպանեք ֆայլը և մաքրեք քեշը։ Պատմություն բլոկը պետք է անհետանա։ Այդ & նշանը ստեղծում է հղում դեպի $account փոփոխականը։ Ավելին՝ PHP հղումների մասին կարող եք կարդալ ցանկացած PHP ծրագրավորման ձեռնարկում։