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

Kreiranje prilagođenog tipa sadržaja u Drupalu 8

18/06/2025, by Ivan

Ova stranica je kopija konfiguracije „Omogući po defaultu“ u Drupal 8 modulu. Treba je posmatrati kao zastarevanje.

Kreiranje prilagođenog tipa sadržaja postalo je prilično jednostavno zahvaljujući novom API-ju za konfiguraciju koji dolazi sa Drupalom 8.

Preduslovi

  • Drupal 8.0.x je instaliran
  • Imati sopstveni modul (ime modula korišćenog u ovom primeru je foobar)

Kreiranje prilagođenog tipa sadržaja

Kao što je pomenuto u uvodu, kreiranje prilagođenog tipa sadržaja se radi kreiranjem nekoliko YAML fajlova koji sadrže sve potrebne konfiguracije. U ovom primeru kreiraćemo tip sadržaja Car Brand koji će imati dva polja (po defaultu): telo i naslov.

foobar/config/install/node.type.car_brand.yml

Ovaj fajl obaveštava Drupal da treba da kreira novi tip sadržaja.

Napomena: imajte u vidu da dodajemo primoravajuću zavisnost na modul foobar. Ukoliko ovu zavisnost ne dodamo, Drupal neće ukloniti tip sadržaja kada se naš modul ukloni. Kada developer sajta odluči da ovaj modul više nije potreban, ne želimo da taj tip sadržaja ostane dostupan.

# node.type.car_brand.yml
langcode: en
status: true
dependencies:
  enforced:
    module:
      - foobar # Ovo je ime modula koji koristimo u ovom primeru
name: 'Car Brand'
type: car_brand
description: 'Tip sadržaja koji se može koristiti za dodatne informacije o <em>Markama automobila</em>'
help: ''
new_revision: false
preview_mode: 1
display_submitted: true

 

foobar/config/install/field.field.node.car_brand.body.yml

Ovaj fajl dodaje polje body našem tipu sadržaja.

# field.field.node.car_brand.body.yml
langcode: en
status: true
dependencies:
    config:
        - field.storage.node.body
        - node.type.car_brand
    module:
        - text
id: node.car_brand.body
field_name: body
entity_type: node
bundle: car_brand
label: Body
description: 'Više specifičnih informacija o marki automobila.'
required: false
translatable: true
default_value: {  }
default_value_callback: ''
settings:
    display_summary: true
field_type: text_with_summary

 

foobar/config/install/core.entity_view_display.node.car_brand.teaser.yml

Ovaj fajl govori Drupalu kako treba da se prikaže teaser (pregled) našeg prilagođenog tipa sadržaja.

# core.entity_view_display.node.car_brand.teaser.yml
langcode: en
status: true
dependencies:
    config:
        - core.entity_view_mode.node.teaser
        - field.field.node.car_brand.body
        - node.type.car_brand
    module:
        - text
        - user
id: node.car_brand.teaser
targetEntityType: node
bundle: car_brand
mode: teaser
content:
    body:
        label: hidden
        type: text_summary_or_trimmed
        weight: 101
        settings:
            trim_length: 600
        third_party_settings: {  }
    links:
        weight: 100
hidden: {  }

 

foobar/config/install/core.entity_view_display.node.car_brand.default.yml

Ovaj fajl govori Drupalu kako da se sadržaj našeg prilagođenog tipa prikaže po defaultu.

# core.entity_view_display.node.car_brand.default.yml
langcode: en
status: true
dependencies:
    config:
        - field.field.node.car_brand.body
        - node.type.car_brand
    module:
        - text
        - user
id: node.car_brand.default
targetEntityType: node
bundle: car_brand
mode: default
content:
    body:
        label: hidden
        type: text_default
        weight: 101
        settings: {  }
        third_party_settings: {  }
    links:
        weight: 100
hidden: {  }

 

foobar/config/install/core.entity_form_display.node.car_brand.default.yml

Ovaj fajl govori Drupalu kako treba da izgleda forma za kreiranje novog čvora našeg prilagođenog tipa sadržaja.

# core.entity_form_display.node.car_brand.default.yml
langcode: en
status: true
dependencies:
    config:
        - field.field.node.car_brand.body
        - node.type.car_brand
    module:
        - text
        - user
id: node.car_brand.default
targetEntityType: node
bundle: car_brand
mode: default
content:
    body:
        label: hidden
        type: text_textarea_with_summary
        weight: 101
        settings: { }
        third_party_settings: { }
    links:
        weight: 100
hidden: { }

Omogućavanje prilagođenog tipa sadržaja

Sada kada imamo naše konfiguracione fajlove, treba da obavestimo Drupal o našem novom prilagođenom tipu sadržaja. To se radi reinstalacijom modula. Ako vaš modul još nije omogućen, samo ga omogućite. Ako je već omogućen, uklonite modul pa ga ponovo omogućite.
Kada sada odete na stranicu „Kreiraj sadržaj“, videćete da možete kreirati novi čvor tipa sadržaja „Car Brand“.

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.