Tôi khá mới với Drupal, tôi đến từ sự phát triển của Wordpress và tôi đang cố gắng "dịch" một số bổ trợ của mình sang các mô-đun trong Drupal 8.
Tôi đang theo tài liệu cố gắng thêm một trường mới, nói "giá" vào một nút. Tất cả các tài liệu tôi tìm thấy có liên quan đến việc thêm một trường vào một nút tùy chỉnh, nhưng trong trường hợp của tôi, tôi muốn thêm các trường đó vào các nút được xác định trước thông thường.
Câu hỏi đầu tiên xuất hiện trong đầu tôi là, tôi có thể tạo trường tùy chỉnh bằng các tệp cấu hình YML hoặc mã phải không?
Tôi đã tạo trường bằng YML và nó được công nhận bởi drupal; vấn đề là chúng không xuất hiện trên các nút (tôi phải kích hoạt thủ công).
Tôi đã tạo trên module / config / install /:
- core.entity_form_display.node.article.default
- core.entity_view_display.node.article.default
Tôi thêm trường của mình, nhưng tất nhiên khi tôi cố gắng kích hoạt mô-đun thì nó không thích vì chúng đã được Drupal định nghĩa.
Có cách nào để "mở rộng" những tập tin cốt lõi đó không? điều đó có thể với YML hoặc mã không?
Tôi đã theo dõi https://www.drupal.org/docs/8/api/entity-api/programming-custom-fields-into-your-content-type . Tôi đã tạo các tệp YML trên / config / install và thực tế trường được tạo, vấn đề là tôi không biết cách "mở rộng" chế độ xem và biểu mẫu hiển thị vì chúng không liên quan đến loại nút tùy chỉnh, nếu không thì chúng nên được liên kết với các loại nút dựng sẵn và tôi không thể xác định lại các tệp đó (core.entity_form_display.node.article.default core.entity_view_display.node.article.default) vì chúng đã tồn tại trên lõi.
Theo dõi nhận xét này, tôi đã tạo các tệp sau:
/config/install/field.field.node.article.field_price.yml
langcode: en
status: true
dependencies:
config:
- field.storage.node.field_price
- node.type.article
id: node.article.field_price
field_name: field_price
entity_type: node
bundle: article
label: Price
description: 'Premium Price'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
min: 1
max: 9999
prefix: ''
suffix: ''
field_type: integer
/config/install/field.st Storage.node.field_price.yml
langcode: en
status: true
dependencies:
module:
- node
id: node.field_price
field_name: field_price
entity_type: node
type: integer
settings:
unsigned: false
size: normal
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false
Ngoài ra tôi đã tạo FieldFormatter và FieldWidget. (Tôi không chắc chắn nếu đúng.)
Những gì tôi phát hiện ra là mô-đun đang tạo ra trường Giá. Nếu tôi đi đến / admin / cấu trúc / loại / quản lý / bài viết / màn hình, tôi thấy giá của tôi ở đó, nhưng nó là dưới Disabled .
Tôi cảm thấy mình thật gần gũi, nhưng đồng thời cũng lạc lõng.
Tôi còn thiếu gì để làm cho lĩnh vực đó hoạt động?