Drupal 7 hook_block_info() և hook_block_view() ֆունկցիաները ցուցադրում են բլոկի տեղեկատվությունը։
Նախորդ դասում մենք ստեղծեցինք մոդուլ Drupal 7-ի համար, իսկ այս դասում կշարունակենք ընդլայնել մեր մոդուլի հնարավորությունները։ Մենք կավելացնենք բլոկի արտածում՝ օգտագործելով hook_block_info()
և hook_block_view()
hook-երը։ Այդ բլոկում կցուցադրվի վերջին գրանցված օգտվողների ցանկը՝ հղումներով դեպի իրենց էջերը։
Սկսենք hook_block_info()-ի նկարագրությունից՝
Այս hook-ը սահմանում է՝ ինչ բլոկներ է մոդուլը ստեղծում։
Մեկնաբանություններ՝
- Յուրաքանչյուր բլոկ ունենում է յուրօրինակ delta նույնացուցիչ։
- Այս delta-ն փոխանցվում է այլ hook-երին, օգտագործվում է HTML շաբլոնում՝
block-MODULE-DELTA
ձևաչափով, CSS-ի կամ JS-ի համար։ - Օգտագործվում է նաև
block__MODULE__DELTA
ձևաչափով թեմիզացիայի համար։
Delta-ն կարող է լինել տող կամ թիվ, առավելագույն երկարությունը՝ 32 բայթ։
Վերադարձվող արժեքները
Ասոցիատիվ զանգված, որի բանալիները՝ delta-ներն են, և արժեքները՝ բլոկի մասին տեղեկություն։
'info': (պարտադիր) Բլոկի անուն՝ ադմինիստրատորի համար։
'cache': (ըստ ցանկության) Քեշավորման կարգավորում։ Հնարավոր արժեքներ՝
- DRUPAL_CACHE_PER_ROLE
- DRUPAL_CACHE_PER_USER
- DRUPAL_CACHE_PER_PAGE
- DRUPAL_CACHE_GLOBAL
- DRUPAL_NO_CACHE
'properties': Լրացուցիչ մետատվյալների զանգված (օր.՝ administrative, weight, status, region, visibility, pages):
Ավելացնում ենք hook_block_info()
<?php function sitemade_block_info() { $blocks = array(); $blocks[1]['info'] = 'Ստեղծված օգտատերեր'; return $blocks; } ?>
Այժմ բլոկը երևում է ադմինկայում, տեղադրում ենք այն ձախ sidebar-ում՝
hook_block_view($delta = '')
$delta: Նշում է՝ որ բլոկն է արտածվում։
Վերադարձվող արժեք: Զանգված՝ subject
(վերնագիր), content
(պարունակություն):
<?php function sitemade_block_view($delta = '') { $block = array(); switch ($delta) { case 1: $block['subject'] = 'Օգտատերեր'; $block['content'] = ''; $query = db_select('users', 'u') ->fields('u', array('uid', 'name')) ->orderBy('u.uid', 'DESC') ->range(0, 5) ->execute(); $users = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($users as $user) { $block['content'] .= '<div><a href="' . base_path() . 'user/' . $user['uid'] . '">' . $user['name'] . '</a></div>'; } break; } return $block; } ?>
Արդյունքում մենք ստանում ենք վերջին 5 գրանցված օգտատերերի ցանկը՝ հղումներով դեպի իրենց էջերը։ Իհարկե, ավելի ճիշտ կլինի օգտագործել l()
ֆունկցիան հղումների համար, բայց դա արդեն առանձին թեմա է։