logo

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

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

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

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

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

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

Scroll

Ձեր սեփական կոնֆիգուրացիայի սահմանումն ու օգտագործումը Drupal 8-ում

20/06/2025, by Ivan

Menu

Հիմնական թեմա՝ սեփական կոնֆիգուրացիայի սահմանում

Դուք կարող եք պահպանակ կոնֆիգուրացիա ներառել ձեր մոդուլում՝ հիմնվելով այլ մոդուլների ֆունկցիոնալության վրա (հանգույցի տեսակներ, դիտումներ, դաշտեր, տեքստային ֆորմատներ և այլն):
Օրինակ, հանգույցի մոդուլը տրամադրում է հանգույցի տեսակի կոնֆիգուրացիա, ուստի ձեր սեփական մոդուլում դուք կարգավորում եք մի հանգույցի տեսակ որպես կանխադրված, որը կարող է հանձնարարվել ձեր մոդուլին։

Միգուցե ցանկանաք սահմանել կոնֆիգուրացիա ձեր սեփական պլագինների, սուբյեկտների և պարամետրերի համար, որոնք իրենց հերթին կարող են օգտագործվել այլ մոդուլների կողմից, ինչպես դուք կարող եք օգտագործել հանգույցի պարունակության տեսակի կոնֆիգուրացիան։ Drupal 8-ը պարզեցնում է ձեր կոնֆիգուրացիայի մասի սահմանումը։

Կոնֆիգուրացիոն ֆայլ

Ձեր մոդուլի կոնֆիգուրացիոն ֆայլերը գտնվում են ձեր մոդուլի config/install ենթաթղթապանակում։ Այդպիսով, եթե ձեր մոդուլը գտնվում է /modules/example-ում, ապա կոնֆիգուրացիոն ֆայլը կլինի /modules/example/config/install/example.settings.yml։ Դուք կարող եք այստեղ տեղադրել ձեր մոդուլի կոնֆիգուրացիոն ֆայլերը YAML ֆորմատով։

Չնայած դա պարտադիր չէ, համառորեն խորհուրդ է տրվում մոդուլում սահմանված կոնֆիգուրացիոն ֆայլերը անվանել ձեր մոդուլի անունով նախածանցով՝ օրինակ example.settings.yml, կոնֆիգուրացիոն պարամետրերի համար։ Մի անվանեք ֆայլը settings.yml կամ system.settings.yml, քանի որ դրանք կարող են հակասել այլ վայրերի ֆայլերի անվանումներին։ Եթե չեք հետևի այս համաձայնությանը, Drush-ի նման հրամանները՝ drush config:import, կարող են շփոթվել։

Այս մոտեցումը թույլ է տալիս ձեզ նաև մատակարարել կոնֆիգուրացիա այլ կոմպոնենտների համար, օրինակ հանգույցի տեսակի օրինակ՝ ներառյալ կոնֆիգուրացիայի պահպանակը ձեր մոդուլում, որտեղ կոնֆիգուրացիոն ֆայլը node.type.example_mytype.yml էր, որը ճանաչվում է որպես հանգույցի տեսակի կոնֆիգուրացիա՝ հանգույցի մոդուլի կողմից։

Կոնֆիգուրացիոն ֆայլի անունը (.yml լրացումից բացի) կոչվում է նաև կոնֆիգուրացիայի անուն համակարգում, և հենց այդպես կարող եք կոնֆիգուրացիային դիմել PHP API-ից։

Կոնֆիգուրացիոն ֆայլի կառուցվածքը

Կոնֆիգուրացիոն ֆայլը պետք է լինի YAML ֆորմատով։ Դուք կարող եք կառուցել ձեր սեփական կոնֆիգուրացիոն ֆայլը ըստ ձեր կարիքների, սահմանափակում չկա, բացի YAML ֆորմատի պահանջներից։ Օրինակ, եթե ձեզ անհրաժեշտ է պարամետր հատուկ հաղորդագրության համար ձեր էջի կոնտրոլերում, ֆայլը կարող է ունենալ message բանալի տեքստային արժեքով՝

message: 'Hello'
langcode: 'en'

Խորհուրդ է տրվում ընդգրկել ֆայլի լեզվի կոդը langcode բանալիի տակ։ Դա օգտագործվում է լեզվային համակարգի կողմից՝ թարգմանվող տեքստ առաջարկելու համար։ langcode բանալին հատուկ է այս նպատակով և դուք չպետք է այն օգտագործեք ֆայլի վերին մակարդակում այլ բաների համար։

Կոնֆիգուրացիայի թարգմանման համար պետք է տեղադրված լինի կոնֆիգուրացիայի թարգմանման մոդուլ։

Թարգմանելի դարձնելու համար անհրաժեշտ է ավելացնել ևս երկու ֆայլ՝

- /modules/example/config/schema/example.schema.yml
- /modules/example/example.config_translation.yml

Առաջինը սահմանում է ձեր սեփական կոնֆիգուրացիայի սխեման։ Մենք կսահմանենք example.settings-ը որպես config_object օբյեկտ, որը պարունակում է մի քանի դաշտեր։ Ամեն դաշտ ունի տեսակ՝ բազային տեսակի սահմանումը որոշում է, թե դաշտը թարգմանելի է, թե ոչ (տես core.data_types.schema.yml)։ Օրինակ, path-ը, որը ներառում է Drupal-ի ներքին ուղին, թարգմանելի չէ, իսկ text-ը՝ հակառակը։

# /modules/example/config/schema/example.schema.yml
example.settings:
  type: config_object
  label: 'Օրինակի կոնֆիգուրացիա'
  mapping:
    message:
      type: text
      label: 'Հաղորդագրություն'

Երկրորդը ավելացնում է հղում /admin/config/regional/config-translation հասցեում համապատասխան թարգմանման ֆորմային՝

# /modules/example/example.config_translation.yml
example.admin.config:
  title: 'Օրինակի մոդուլ'
  base_route_name: example.admin.config
  names:
    - example.settings

Ըստ համաձայնության բանալին համընկնում է հիմնական երթուղու անվան հետ՝ example.admin.config-ը ձեր մոդուլի ադմինիստրատորի կոնֆիգուրացիոն ֆորմայի երթուղու անունն է։ Անվանումները ներառում են կոնֆիգուրացիայի բոլոր բանալիները, որոնք խմբագրվում են ֆորմայում, այս դեպքում՝ վերևում սահմանված սեփական կոնֆիգուրացիան։

Ֆայլը կարող է պարունակել ավելի բարդ ցուցակներ և բանալի/արժեք զույգեր ծառի կառուցվածքով։ Տեսեք օրինակ՝ views.view.content.yml ֆայլը, որը ցույց է տալիս կոնֆիգուրացիայի մի փոքր բարդ օրինակ։

Կոնֆիգուրացիայի թարգմանումը ավտոմատ ավելացնում է «մոդուլի թարգմանություն» էջանիշը մոդուլի կոնֆիգուրացիայի ֆորմային, սակայն այն կարող է չցուցադրվել, եթե դա միակ հասանելի էջն է։ Թող «նախնական» էջանիշ ավելացնելու համար կոնֆիգուրացիայի ֆորմայի համար պետք է ավելացնենք ևս մեկ ֆայլ՝ example.links.task.yml (տես Մոդուլի սահմանած տեղական առաջադրանքներ

// example.links.task.yml
example.admin.config:
  route_name: example.admin.config
  title: Կարգավորումներ
  base_route: example.admin.config

Կոնֆիգուրացիայի օգտագործում

Drupal 8-ն ունի PHP API այս կոնֆիգուրացիայի կարդալու և գրելու համար։ Հեշտագույն եղանակը օգտագործել է Drupal::config() ստատիկ մեթոդը․

$config = \Drupal::config('example.settings');
// Տպում է 'Hello'-ն։
print $config->get('message');
// Տպում է 'en'-ը։
print $config->get('langcode');

Եթե ցանկանում եք խմբագրել կոնֆիգուրացիան և փոխել այն նոր արժեքով, կարող եք օգտագործել \Drupal::service('config.factory')->getEditable() մեթոդը՝

$config = \Drupal::service('config.factory')->getEditable('example.settings');

// Սահմանում և պահպանում նոր հաղորդագրությունը։
$config->set('message', 'Hi')->save();

// Այժմ տպում է 'Hi'-ն։
print $config->get('message');

Տես նաև

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.