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() ֆունկցիան հղումների համար, բայց դա արդեն առանձին թեմա է։
