Drupal 8-ում օգտվողի կոնտենտի տիպի ստեղծում
Այս էջը պատճեն է Drupal 8 մոդուլի «Ավտոմատ միացնել» կոնֆիգուրացիայի։ Կայուն համարեք որպես վերահինացում։
Օգտվողի կոնտենտի տիպի ստեղծումը շատ հեշտացել է նոր կոնֆիգուրացիոն API-ի շնորհիվ, որը ներառված է Drupal 8-ում։
Նախապայմաններ
- Տեղադրված է Drupal 8.0.x
- Ունեք սեփական մոդուլ (այս օրինակում օգտագործվող մոդուլի անունը foobar է)
Օգտվողի կոնտենտի տիպի ստեղծում
Ինչպես նշվեց նախաբանման մեջ, օգտվողի կոնտենտի տիպը ստեղծվում է մի քանի YAML ֆայլեր ստեղծելով, որոնք պարունակում են բոլոր անհրաժեշտ կոնֆիգուրացիաները։ Այս օրինակում մենք կստեղծենք Car Brand կոնտենտի տիպ, որը կունենա երկու դաշտ (ստանդարտ՝ ըստ լռության)՝ մարմին և վերնագիր։
foobar/config/install/node.type.car_brand.yml
Այս ֆայլը կտեղեկացնի Drupal-ին, որ պետք է ստեղծի նոր կոնտենտի տիպ։
Նշում. նկատի ունեցեք, որ մենք ավելացնում ենք պարտադիր կախվածություն foobar մոդուլից։ Եթե չավելացնենք այս կախվածությունը, Drupal-ը չի հեռացնի կոնտենտի տիպը մեր մոդուլի ջնջման ժամանակ։ Երբ կայքի ծրագրավորողը որոշում է, որ մոդուլը այլևս անհրաժեշտ չէ, մենք չենք ցանկանում, որ այս կոնտենտի տիպը հասանելի լինի։
# node.type.car_brand.yml
langcode: en
status: true
dependencies:
enforced:
module:
- foobar # Սա այն մոդուլի անունն է, որը մենք օգտագործում ենք այս օրինակում
name: 'Car Brand'
type: car_brand
description: 'Content type that can be used to provide additional information on <em>Car Brands</em>'
help: ''
new_revision: false
preview_mode: 1
display_submitted: true
foobar/config/install/field.field.node.car_brand.body.yml
Այս ֆայլը կավելացնի մարմնի դաշտը մեր կոնտենտի տիպին։
# 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: 'More specific information about the car brand.'
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
Այս ֆայլը տեղեկացնում է Drupal-ին, թե ինչպես պետք է ցուցադրվի մեր օգտվողի կոնտենտի տիպի թիզերը։
# 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
Այս ֆայլը տեղեկացնում է Drupal-ին, թե ինչպես պետք է ցուցադրվի մեր օգտվողի կոնտենտի տիպի բովանդակությունը ըստ լռության։
# 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
Այս ֆայլը տեղեկացնում է Drupal-ին, թե ինչպես պետք է ցուցադրվի ձևը, երբ ստեղծվում է նոր նոդ մեր օգտվողի կոնտենտի տիպով։
# 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: { }
Օգտվողի կոնտենտի տիպի միացում
Հիմա, երբ ունենք մեր կոնֆիգուրացիոն ֆայլերը, մենք պետք է տեղեկացնենք Drupal-ին մեր նոր օգտվողի կոնտենտի տիպի մասին։ Սա կատարվում է մոդուլի նորից միացմամբ։ Եթե մոդուլը դեռ միացված չէ, պարզապես միացրեք այն։ Եթե մոդուլը արդեն միացված է, ապա հեռացրեք այն և նորից միացրեք։
Եթե այժմ գնաք «Կոնտենտ ստեղծելու» էջ, կտեսնեք, որ կարող եք ստեղծել նոր նոդ «Car Brand» կոնտենտի տիպով։