Kreiranje prilagođenog tipa sadržaja u Drupalu 8
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“.