logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

Umetanje bloka u bilo koji šablon (Drupal insert block into template)

26/05/2025, by Ivan

Drupal 8

U Twig šablonu ne možete direktno pozvati PHP kod, zato je potrebno već pripremljeni blok proslediti u šablon. Ako treba da prosledite promenljivu Twig šablonu za nodu, koristite funkciju themename_preprocess_node() u temi, a za page šablon koristite themename_preprocess_page(). Prosledite promenljivu u Twig i u njemu je prikažite.

Blokovi kreirani preko admin panela

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

U funkciji themename_preprocess_node() (za šablon node) blok možete prikazati ovako:

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

U šablonu node.html.twig blok se ispisuje kao:

{{ block_output }}

Blokovi kreirani preko plugina

Ove blokove možete prikazati slično kao blokove iz admin panela, ali sa malo drugačijim kodom:

$block_manager = \Drupal::service('plugin.manager.block');
// Ovde možete podesiti konfiguraciju bloka.
$config = [];
$plugin_block = $block_manager->createInstance('system_breadcrumb_block', $config);
// Provera pristupa bloku
$access_result = $plugin_block->access(\Drupal::currentUser());
// Ako nema pristupa, vraća prazan niz.
if ($access_result->isForbidden()) {
  return [];
}
$render = $plugin_block->build();
// Po potrebi dodajte cache tagove ili kontekste.
return $render;

Isti kod bez komentara:

$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;

Drupal 7

U Drupal 7 funkcija je slična, samo su parametri malo drugačiji, umesto dva parametra block, view koristi se jedan block_view:

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

Za Views blok umetanje izgleda ovako:

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

Ovako u Drupal 7 umetnemo views blok; primetite da se sada u delti za prvi blok ne koristi broj bloka već samo ime, npr. feedbacks-block.

Drupal 6

Da biste ubacili blok na željeno mesto koristite funkciju module_invoke():

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

Na primer, ako treba da ubacite blok kreiran preko admin panela, koristite sledeći kod:

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

Gde je 12 broj (delta) bloka.

Ako ubacujete views blok, uradite to ovako:

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

Gde je feedbacks-block_1 naziv bloka u view-u, feedbacks je ime view-a, a block_1 je ime prikaza u tom view-u.