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
20/06/2025, by Ivan

Menu

Blokovi u Drupal 8 su instance blok plugina.
Menadžer blokova u Drupalu skenira vaše module tražeći klase koje sadrže @Block anotaciju.

Primer koda ispod koristi @Block anotaciju zajedno sa svojstvima „id“ i „admin_label“ za definisanje prilagođenog bloka.

Kreirajte fajl src/Plugin/Block/HelloBlock.php u strukturi modula koju ste ranije napravili i dodajte sledeći kod.

Da bi vaš Drupal sajt prepoznao ovu novu klasu, potrebno je da očistite keš.

<?php

namespace Drupal\hello_world\Plugin\Block;

use Drupal\Core\Block\BlockBase;

/**
 * Pruža 'Hello' blok.
 *
 * @Block(
 *   id = "hello_block",
 *   admin_label = @Translation("Hello block"),
 *   category = @Translation("Hello World"),
 * )
 */
class HelloBlock extends BlockBase {

  /**
   * {@inheritdoc}
   */
  public function build() {
    return [
      '#markup' => $this->t('Hello, World!'),
    ];
  }

}

Da biste dodali „Hello block“, možete otići na Structure -> Block Layout (admin/structure/block) i kliknuti na dugme „Place block“ povezano sa svakim dostupnim regionom.

Kada kliknete na dugme „Place block“ za bilo koji region, pojaviće se iskačući dijalog „Place block“ sa listom svih dostupnih blokova. Da brzo pronađete svoj blok, jednostavno koristite opciju „Filter by block name“ ili skrolujte listu dok ne nađete „Hello block“. Tako možete dodati bilo koji broj instanci prilagođenog bloka bilo gde na vašem sajtu.

Rešavanje problema

  • Ime klase i ime fajla moraju biti ista (klasa HelloBlock i /src/Plugin/Block/HelloBlock.php). Ako ime klase nije isto, blok će se pojaviti na listi dostupnih blokova, ali nećete moći da ga dodate.
  • Obavezno dvaput proverite sve putanje i imena fajlova. Vaš .php fajl mora biti u ispravno označenom direktorijumu (/src/Plugin/Block/), inače Drupal neće moći da ga pronađe.
  • Ako se blok ne prikazuje u regionu ili ako se javljaju greške na ekranu ili u logovima, proverite PHP/Apache error logove.
  • Ako vaš blok nije na listi, obavezno očistite Drupal keš (npr. komandom drush cr).
  • Proverite da ime vašeg modula koristi mala slova. Neki korisnici su prijavili da se blokovi ne prikazuju za module sa camelCase imenima. Na primer, myModule nikada neće prikazati određene blokove, dok my_module hoće. Ovo je testirano u Drupal 8.8.1.

 

Napomena: Korišćenje Twig šablona sa prilagođenim blokovima

1. Dodajte hook_theme u vaš .module fajl.
Napomena: nemojte imenovati funkciju kao 'block__...' jer to neće proslediti promenljive Twig šablonima blokova. Umesto toga koristite ime modula kao prefiks.

2. Koristite „#theme“ u render nizu u build() metodu i prosledite promenljive na istom nivou kao „#theme“ — sa ključevima „#varname“.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.