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

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

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

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

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

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

Scroll

Բլոկի տեղադրումը ցանկացած թեմփլեյթում (Drupal-ում բլոկի տեղադրում թեմփլեյթում)

11/05/2025, by Ivan

Դրուպալ 8

twig ձևանմուշում հնարավոր չէ կանչել PHP կոդ, לכן պետք է ձևանմուշին փոխանցել արդեն պատրաստ բլոկ։ Եթե նոդի ձևանմուշին ցանկանում եք փոխանցել muuttable, կարող եք օգտագործել themename_preprocess_node() ֆունկցիան թեմայում, իսկ page ձևանմուշի համար՝ themename_preprocess_page()։ Փոխում եք muuttable-ը twig ձևանմուշին, և այնտեղ արդեն այն выводում եք։

Ադմինով ստեղծված բլոկներ

$block = \Drupal\block\Entity\Block::load('your_block_id');
$variables['block_output'] = \Drupal::entityTypeManager()
  ->getViewBuilder('block')
  ->view($block);

themename_preprocess_node() (նոդի ձևանմուշի) ֆունկցիայի մեջ բլոկը կարող եք вывести այս կերպ՝

function themename_preprocess_node(&$variables) {
  $block = \Drupal\block\Entity\Block::load('your_block_id');
  $variables['block_output'] = \Drupal::entityTypeManager()
    ->getViewBuilder('block')
    ->view($block);
}

node.html.twig ձևանմուշում հիմա կարելի է вывести բլոկը՝

{{ block_output }}

Փլագիններով ստեղծված բլոկներ

այդպիսի բլոկները նույնպես կարելի է вывести այնպես, ինչպես ադմինով ստեղծվածները, միայն դրանց выводի կոդը մի փոքր տարբերվում է՝

$block_manager = \Drupal::service('plugin.manager.block');
// Դուք կարող եք այստեղ նշել բլոկի համար ձեր կարգավորումները։
$config = [];
$plugin_block = $block_manager->createInstance('system_breadcrumb_block', $config);
// Որոշ բլոկների դիտման թույլտվություններ կարող են տարբեր լինել։
$access_result = $plugin_block->access(\Drupal::currentUser());
// Եթե թույլտվություն չկա, վերադարձնում է դատարկ զանգված։
if ($access_result->isForbidden()) {
  return [];
}
$render = $plugin_block->build();
// Այստեղ կարող է անհրաժեշտ լինել ավելացնել cache tag-եր կամ contexts.
// Կարելի է նաև ավելացնել cache tag եւ context, render(), ::getCacheTags, ::getCacheContexts մեթոդներում։
return $render;

Այստեղ նույն կոդը՝ առանց մեկնաբանությունների․

$block_manager = \Drupal::service('plugin.manager.block');
$config = [];
$plugin_block = $block_manager->createInstance('system_breadcrumb_block', $config);
$access_result = $plugin_block->access(\Drupal::currentUser());
if ($access_result->isForbidden()) {
  return [];
}
$render = $plugin_block->build();
return $render;

Դրուպալ 7

7-րդ Դրուպալում ֆունկցիան նույնն է, միայն parameters–ները մի փոքր այլ են․ block և view փոխարեն օգտագործում ենք մեկը՝ block_view․

print render(module_invoke('block', 'block_view', '12'));

Views բլոկներ տեղադրելու համար կգրեք՝

print render(module_invoke('views', 'block_view', 'feedbacks-block'));

Այսպես Դրուպալ 7-ում մենք տեղադրում ենք view բլոկ․ նկատեք, որ առաջին բլոկի delta-ն այլևս թիվ չէ, գրում ենք պարզապես 'feedbacks-block'։

Դրուպալ 6

Այն հատվածում, որտեղ ցանկանում եք տեղադրել բլոկը, օգտագործեք module_invoke() ֆունկցիան․

$block = module_invoke('views', 'block', 'view', 'block_name');
print $block['content'];

Օրինակ, ադմինով ստեղծված բլոկ տեղադրելու համար օգտագործեք՝

$block = module_invoke('block', 'block', 'view', 12);
print $block['content'];

որտեղ 12-ը բլոկի delta-ն է։

Views բլոկ տեղադրելու համար գրում ենք՝

$block = module_invoke('views', 'block', 'view', 'feedbacks-block_1');
print $block['content'];

որտեղ feedbacks-block_1-ը view-ի մեջ բլոկի անունն է․ feedbacks – view-ի անունը, իսկ block_1 – display-ի անունը view-ում։