logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

Օգտագործողի դաշտերի ծրագրավորում ձեր կոնտենտի տիպում

18/06/2025, by Ivan

Կարող է պատահել, երբ դուք օգտվում եք կոնտենտի տիպից օգտվողի մոդուլից, դուք նույնպես կարող եք ավելացնել դաշտեր, որոնք վերաբերում են այդ կոնտենտի տիպին։ Դաշտերը ավտոմատ կերպով ստեղծելու հնարավորությունը թույլ է տալիս ձեզ մի քանի կայքերում հեռացնել և տեղադրել դրանք՝ առանց ավելորդ դաշտեր թողնելու և երաշխավորելու, որ չեք մոռանա դրանք ավելացնել։ Կան երկու եղանակ, որոնք թույլ են տալիս այդ դաշտերը ավելացնել ձեր կոդային բազայում, որոնք մենք կքննարկենք։

Նախապայմաններ

  • Տեղադրված է Drupal 8.0.x։
  • Ունեք օգտվողի մոդուլ (այս օրինակով օգտագործվող մոդուլի անունը foobar է)։
  • Ունեք օգտվողի կոնտենտի տիպ մոդուլում (Խնդրում ենք հետևել հիմնական էջի հրահանգներին։ Կոնտենտի տիպի անունը կլինի Car Brand)։

Լրացուցիչ դաշտեր ավելացնել մեր կոնտենտի տիպին

Այս քայլը կարելի է կատարել երկու ճանապարհով։ Կարող եք օգտագործել օգտվողի ինտերֆեյսը դաշտեր ստեղծելու և կոնֆիգուրացիան ֆայլերի արտահանելու համար, կամ կարող եք ուղղակի ինքնուրույն գրել ֆայլերը։ Ինձ դուր է գալիս օգտագործել առաջին տարբերակը, որպեսզի համոզվեմ, որ ոչինչ կարևոր չմնա անտեսված, սակայն դաշտերը արտահանվում են «field_» նախաբանի հետ, այլ ոչ թե «foobar_car_brand_», որպեսզի կապվեն մեր օգտվողի կոնտենտի տիպին։ Այս էջում մենք կքննարկենք դաշտերի ձեռքով կոդավորումը ձեր օգտվողի մոդուլում։

Դաշտերի ձեռքով կոդավորում ձեր մոդուլում

Ինչպես արդեն նշվեց, այս մեթոդը պահանջում է ավելի շատ գիտելիքներ և հստակ հասկացություն այն մասին, թե ինչ է դաշտը անում և ինչպես պետք է երևա։ Ամեն դաշտի համար պետք է երկու YAML ֆայլեր՝ կոնֆիգուրացիայի տեղեկություններով։ Դրանք կոչվում են field.field.node.car_brand.field_brand_information.yml և field.storage.node.field_brand_information.yml։

Հեռացրեք օգտվողի կոնտենտի տիպը

Եթե արդեն միացրել եք foobar մոդուլը նախորդ էջում, այժմ կարող եք հեռացնել այն։

foobar/config/install/field.storage.node.field_brand_information.yml

Այս ֆայլը կտեղեկացնի Drupal-ին, որ պետք է ստեղծի մեր դաշտը։

# field.storage.node.field_brand_information.yml
langcode: en
status: true
dependencies:
  module:
    - node
    - text
id: node.field_brand_information
field_name: field_brand_information
entity_type: node
type: text_with_summary
settings: {  }
module: text
locked: false
cardinality: 1
translatable: true
indexes: {  }
persist_with_no_fields: false
custom_storage: false

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

Այս ֆայլը կտեղեկացնի Drupal-ին, որ պետք է կցի մեր դաշտը մեր կոնտենտի տիպին։

# field.field.node.car_brand.field_brand_information.yml
langcode: en
status: true
dependencies:
  config:
    - field.storage.node.field_brand_information
    - node.type.car_brand
  module:
    - text
id: node.car_brand.field_brand_information
field_name: field_brand_information
entity_type: node
bundle: car_brand
label: 'Brand Information'
description: 'More specific information about the car brand'
required: false
translatable: false
default_value: {  }
default_value_callback: ''
settings:
  display_summary: false
field_type: text_with_summary

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

Այս երկու ֆայլերը պետք է թարմացվեն նախորդ էջից, որպեսզի ներառեն բոլոր նոր դաշտերը, որոնք դուք ավելացնում եք։ Ես ավելացրել եմ երկու լրացուցիչ դաշտ՝ «Additional_field_1» և «Additional_field_2», որպեսզի տեսնեք, թե ինչպես կդիտվի մի քանի դաշտերով։

Նշում. Եթե չեք ցանկանում ստեղծել լրացուցիչ դաշտեր, ջնջեք դրանց կախվածությունները և տեղեկությունները հետևյալ կոդում։

# core.entity_view_display.node.car_brand.default.yml
langcode: en
status: true
dependencies:
  config:
    - field.field.node.car_brand.field_brand_information
    - field.field.node.car_brand.field_additional_field_1
    - field.field.node.car_brand.field_additional_field_2
    - node.type.car_brand
  module:
    - file
    - text
    - user
_core:
  default_config_hash: Nfnv6VMugBKl6EOqi_U0I_LQ1ZQpbNDN3a9GXHWUBz4
id: node.car_brand.default
targetEntityType: node
bundle: car_brand
mode: default
content:
  field_brand_information:
    weight: 101
    label: above
    settings: {  }
    third_party_settings: {  }
    type: text_default
  field_additional_field_1:
    weight: 103
    label: above
    settings:
      link_to_entity: false
    third_party_settings: {  }
    type: string
  field_additional_field_2:
    weight: 102
    label: above
    settings: {  }
    third_party_settings: {  }
    type: file_default
  links:
    weight: 100
hidden: {  }
# core.entity_form_display.node.car_brand.default.yml
langcode: en
status: true
dependencies:
  config:
    - field.field.node.car_brand.field_brand_information
    - field.field.node.car_brand.field_additional_field_1
    - field.field.node.car_brand.field_additional_field_2
    - node.type.car_brand
  module:
    - file
    - path
    - text
_core:
  default_config_hash: qZE-qJ04DTTNggVVQdVOPQmpE_I69GQ_LqB32kXivVg
id: node.car_brand.default
targetEntityType: node
bundle: car_brand
mode: default
content:
  created:
    type: datetime_timestamp
    weight: 2
    settings: {  }
    third_party_settings: {  }
  field_brand_information:
    weight: 7
    settings:
      rows: 9
      summary_rows: 3
      placeholder: ''
    third_party_settings: {  }
    type: text_textarea_with_summary
  field_additional_field_1:
    weight: 6
    settings:
      size: 60
      placeholder: ''
    third_party_settings: {  }
    type: string_textfield
  field_additional_field_2:
    weight: 8
    settings:
      progress_indicator: throbber
    third_party_settings: {  }
    type: file_generic
  path:
    type: path
    weight: 5
    settings: {  }
    third_party_settings: {  }
  promote:
    type: boolean_checkbox
    settings:
      display_label: true
    weight: 3
    third_party_settings: {  }
  sticky:
    type: boolean_checkbox
    settings:
      display_label: true
    weight: 4
    third_party_settings: {  }
  title:
    type: string_textfield
    weight: 0
    settings:
      size: 60
      placeholder: ''
    third_party_settings: {  }
  uid:
    type: entity_reference_autocomplete
    weight: 1
    settings:
      match_operator: CONTAINS
      size: 60
      placeholder: ''
    third_party_settings: {  }
hidden: {  }

Միացնել օգտվողի կոնտենտի տիպը

Հիմա պետք է միացնեք foobar մոդուլը։ Եթե գնաք «Կոնտենտ ստեղծելու» էջ, կտեսնեք, որ կարող եք ստեղծել նոր նոդ «Car Brand» կոնտենտի տիպով, և նա կունենա մեր նոր դաշտը՝ «Brand Information»։

Մենք կքննարկենք դաշտերի ավելացումը UI-ի միջոցով հաջորդ էջում։

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.