logo

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

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

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

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

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

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

Scroll

Տեղեկացրեք Drupal 8-ին ձեր մոդուլի մասին .info.yml ֆայլի միջոցով

20/06/2025, by Ivan

Menu

Հիմնական թեմա․ նախագծի մեթատվյալներ

.info.yml ֆայլը (հայտնի նաև որպես «info yaml ֆայլ») Drupal 8 մոդուլի, թեմայի կամ տեղադրման պրոֆիլի կարևոր բաղադրիչ է՝ նախագծի մասին մեթատվյալները պահպանելու համար։

Այս .info.yml ֆայլերը անհրաժեշտ են՝

  • Տեղեկացնելու Drupal-ին մոդուլի, թեմայի կամ տեղադրման պրոֆիլի գոյության մասին։
  • Տարբերակելու թեմաները, մոդուլները՝ ըստ տեսակի։
  • Տրամադրելու տեղեկատվություն Drupal-ի վեբ UI-ի ադմինիստրացիոն էջերի համար։
  • Նշելու մոդուլի ակտիվացման և ապաակտիվացման կառավարման չափանիշները և Drupal-ի տարբերակի հետ համատեղելիությունը։
  • Ընդհանուր ադմինիստրացիոն նպատակների համար այլ կոնտեքստներում։

 

Լրացուցիչ տեղեկությունների համար տես վերջին API-ն InfoParserInterface.php-ի մասին։ (Սեղմեք Աղբյուրը դիտելու համար։)

Hello World

Ստորև բերված է hello_world.info.yml ֆայլը, որ մենք օգտագործելու ենք։ Եթե դուք հետևում եք օրինակին, ստեղծեք նոր hello_world.info.yml ֆայլ ձեր մոդուլի արմատային թղթապանակում և տեղադրեք այս կոդը այնտեղ։

name: Hello World Module
description: Ստեղծում է էջ, որը ցույց է տալիս "Hello World":
package: Custom

type: module
core: 8.x

Եկեք դիտարկենք յուրաքանչյուր տողը, որպեսզի հասկանանք դրանց գործառույթը։

Առաջին երեք տողերը հիմնականում օգտագործվում են ադմինիստրատորի ինտերֆեյսում, երբ օգտատերերը կարող են միացնել կամ անջատել ձեր մոդուլը։ name և description բանալիները տրամադրում են տեքստ, որը երևում է մոդուլի ադմինիստրացիոն էջում, իսկ package բանալին թույլ է տալիս խմբավորել նմանատիպ մոդուլները միասին։ Օրինակ, Core-ը օգտագործում է package: Core՝ բոլոր այն մոդուլները խմբավորելու համար, որոնք գալիս են Drupal 8-ի հետ։ Դուք կարող եք օգտագործել նաև package: Custom՝ ձեր սեփական մոդուլները խմբավորելու և գտնելու գործընթացը հեշտացնելու համար։

type բանալին, որը նոր է Drupal 8-ում, նշում է ընդլայնման տեսակը, օրինակ՝ մոդուլ, թեմա կամ պրոֆիլ։

drupal.org-ում տեղադրված մոդուլների դեպքում տարբերակի համարը լրացվում է փաթեթավորման սցենարի կողմից։ Դուք չպետք է դա նշեք ձեռքով, պարզապես բաց թողեք version տողը։

core բանալին նշում է, թե որ Drupal-ի միջուկի տարբերակի հետ է ձեր մոդուլը համատեղելի։

name, type և core պարտադիր բանալիներ են։

core_version_requirement-ի նշում
Զգուշացում
Ներկայումս DrupalCI-ն չի աջակցում այն թեստային փաթչերը, որոնք փոխում են core_version_requirement-ը։

Ձեզ անհրաժեշտ է core_version_requirement?

Միջուկային տարբերակի սահմանափակումները որոշելիս կիրառվում է հետևյալ առաջնահերթության կարգը.

  • Եթե composer.json-ում նշված է միջուկային պահանջ, այն ունի առավելագույն առաջնահերթություն։
  • Եթե composer.json-ում միջուկային պահանջ չկա, info.yml-ի core_version_requirement-ը ստանում է հաջորդ առաջնահերթությունը։
  • Եթե info.yml-ում core_version_requirement չկա, ապա կիրառվում է հիմնական մոդուլի dependencies բաժնում նշված ցանկացած տարբերակ։

 

core_version_requirement-ի նշում ըստ անհրաժեշտության

Նոր core_version_requirement բանալին *.info.yml ֆայլերում՝ մոդուլների, թեմաների և պրոֆիլների համար, այժմ աջակցում է վարկածների սեմանտիկ կառավարում, որն իրականացված է Composer նախագծում։ Սա թույլ է տալիս մոդուլներին, թեմաներին և պրոֆիլներին նշել, որ դրանք համատեղելի են միաժամանակ մի քանի միջուկային տարբերակների հետ։

Օրինակ, մոդուլ, որը համատեղելի է Drupal 8-ի և Drupal 9-ի հետ, կարող է ունենալ info.yml ֆայլ հետևյալ տեսքով՝

name: My Module
type: module
core: 8.x
core_version_requirement: ^8 || ^9

Սա նշում է, որ մոդուլը համատեղելի է Drupal 8-ի և 9-ի բոլոր տարբերակների հետ։ Core-ը պահանջվում է այստեղ, քանի որ Drupal Core-ի 8.7.7-ից հին տարբերակները չեն ճանաչում core_version_requirement բանալին։

Սակայն շատ մոդուլներ պետք է հեռացնեն հնացած կոդը, որպեսզի կարողանան աշխատել Drupal 9-ի հետ։ Այդ պատճառով դրանք չեն կարող համատեղելի լինել Drupal 8-ի բոլոր տարբերակների հետ։

Օրինակ, մոդուլ, որը համատեղելի է միայն Drupal 8.8.0-ից բարձր տարբերակների և Drupal 9-ի հետ, info.yml ֆայլում կունենա՝

name: My Module
type: module
core_version_requirement: ^8.8 || ^9

core բանալին չպետք է օգտագործվի այստեղ, որպեսզի Drupal-ի 8.7.7-ից հին տարբերակները չկարողանան տեղադրել մոդուլը։ Եթե միաժամանակ ավելացվի core և core_version_requirement, բացի core_version_requirement: ^8 || ^9 տարբերակից, դա կբերի սխալի։

core_version_requirement-ը չի կարող օգտագործվել միջուկի տարբերակը մինչև 8.7.7 սահմանափակելու համար։ Օրինակ՝ core_version_requirement: ^8.7 || ^9 կբերի սխալի, քանի որ ^8.7-ը ներառում է 8.7.0 տարբերակը, որը չի ճանաչում այս բանալին։

Սա կարևոր է, եթե նոր բանալին օգտագործվում է, ապա այն պետք է փորձարկված լինի Drupal 8.7.7 կամ ավելի նոր միջուկի վրա։

Լրիվ օրինակ

Բացի նախորդ օրինակում նշված հիմնական հատկություններից, կան նաև մի շարք լրացուցիչ հատկություններ։ Ահա ամբողջական օրինակ.


name: Hello World Module
description: Ստեղծում է էջ, որը ցույց է տալիս "Hello World":
package: Custom

type: module
core: 8.x

dependencies:
  - drupal:link
  - drupal:views
  - paragraphs:paragraphs
  - webform:webform (>=8.x-5.x)

test_dependencies:
 - drupal:image

configure: hello_world.settings

php: 5.6

hidden: true
required: true

# Նշում. Մի ավելացրեք 'version' կամ 'project' հատկությունները ձեռքով:
# Դրանք ավտոմատ կավելացվեն drupal.org-ի փաթեթավորիչի կողմից:
# version: 1.0
# project: 'hello_world'
  • dependencies՝ ձեր մոդուլի կախվածությունների ցուցակն է։ Drupal core-ից կամ contributed մոդուլներից կախվածությունները պետք է նշվեն {project}:{module} ձևաչափով, որտեղ {project}՝ նախագծի անունն է Drupal.org-ի հասցեում, իսկ {module}՝ մոդուլի մեքենայական անունը։ Կախվածությունները կարող են նաև պարունակել տարբերակի սահմանափակում, օրինակ՝ webform:webform (>=8.x-5.x): Եթե ձեր մոդուլը կախված է այլ մոդուլներից կամ գրադարաններից, դրանք նույնպես պետք է հայտարարվեն մոդուլի composer.json-ում։ Եթե ունեք տեղական custom մոդուլներ, որոնք իրարից կախված են, կարող եք օգտագործել {module}:{module} (կամ {module}:{submodule}՝ ենթամոդուլների համար)։
  • test_dependencies՝ այլ մոդուլների ցուցակ (նույն ձևաչափով ինչ dependencies), որոնք անհրաժեշտ են ձեր մոդուլի որոշ ավտոմատ թեստերի համար՝ Drupal-ի ավտոմատացված թեստավորման համակարգում (DrupalCI), սակայն որպես dependency պարտադիր չեն։ Ուշադրություն՝ test_dependencies փոփոխությունը պետք է պարտադիր push անեք Git-ի մեջ, քանի որ պարզապես info.yml-ում փոփոխություն ավելացնելը նույն փաթչում, ինչ նոր թեստը, բավարար չէ։ Կամ կարող եք օգտագործել Composer՝ թեստային կախվածությունները կառավարելու համար։ Տես համապատասխան փաստաթղթերը լրացուցիչ տեղեկատվության համար։
  • configure՝ եթե ձեր մոդուլը տրամադրում է կարգավորումների ձև, այստեղ կարող եք նշել այդ ձևի երթուղին։ Այնուհետև այն կհայտնվի որպես հղում «Ընդարձակումներ» էջում (/admin/modules), երբ օգտագործողը բացի մանրամասները։
  • php: 5.6՝ սահմանում է նվազագույն PHP տարբերակը, որը պահանջվում է ձեր մոդուլի համար։ Օգտատերերը չեն կարող միացնել մոդուլը, եթե իրենց մոտ ավելի հին տարբերակ է։ Սա օգտակար է, եթե մոդուլը օգտագործում է նոր ֆունկցիաներ, որոնք հասանելի չեն հին տարբերակներում։
  • hidden: true՝ թաքցնում է մոդուլը Ընդարձակումներ էջի ցուցակից։ Օգտակար է, եթե մոդուլը միայն թեստերի համար է կամ օրինակ է API-ի կիրառման համար։ Այսպիսի մոդուլները տեսանելի դարձնելու համար կարող եք settings.php-ում ավելացնել $settings['extension_discovery_scan_tests'] = TRUE:
  • required: true՝ նշանակում է, որ մոդուլը պարտադիր է և չի կարող անջատվել։
  • Սահմանափակված հատկություններ, որոնք ավելացվում են Drupal-ի փաթեթավորման համակարգի կողմից։ Մի ավելացրեք դրանք ձեռքով info.yml-ում՝ version և project

 

.info.yml ֆայլերի debug-ման եղանակը

Մոդուլը չի ցուցադրվում admin/modules էջում

  • Համոզվեք, որ info ֆայլը ունի {machine_name}.info.yml անունը և գտնվում է մոդուլի պանակի արմատում։
  • Համոզվեք, որ ֆայլի ձևաչափը ճիշտ է։ Օրինակ՝ չպետք է լինեն բացատներ մինչև :, բայց պետք է լինի բացատ հետո։ Օրինակը տեսեք ստորև։
  • Համոզվեք, որ ֆայլը պարունակում է հետևյալ տողը՝
type: module
  • Համոզվեք, որ մոդուլի անունը սկսվում է տառով կամ underline-ով։ Ստորև PHP փաստաթղթում բերված է թույլատրելի անունների օրինակ․

 

Ֆունկցիաների անունները հետևում են նույն կանոններին, ինչ այլ պիտակները PHP-ում։ Թույլատրելի անունը սկսվում է տառով կամ underline-ով, որին հաջորդում են տառեր, թվեր կամ underline: regular expression-ով՝ [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Մոդուլը ցուցադրվում է admin/modules-ում, բայց չակերտը անջատված է

  • Համոզվեք, որ core բանալին ունի 8.x արժեք
core: 8.x
  • Համոզվեք, որ մոդուլի բոլոր dependencies-ները առկա են։ Կարող եք ընդլայնել մոդուլի տվյալները՝ տեսնելու բացակա պահանջները։

expand_requirements

Ուշադրություն դարձրեք, որ որոշ մոդուլներ տեղափոխվել են Drupal 8-ի միջուկից, իսկ մյուսները տեղափոխվել կամ փոխարինվել են նոր միջուկային մոդուլներով։

Մոդուլի նկարագրությունը դատարկ է

Հիշեք, որ description արժեքը օգտագործվում է նկարագրության համար։

description: Օրինակային մոդուլի նկարագրություն։

composer.json ֆայլի ավելացում

Բացի .info.yml-ում մոդուլի կախվածությունները հայտարարելուց, եթե մոդուլը տեղադրված է Drupal.org-ում և ցանկանում է թեստավորել module dependency-ների փոփոխությունները DrupalCI-ով, պետք է ունենա composer.json ֆայլ, որտեղ նշված են այդ կախվածությունները (DrupalCI-ն dependency-ների փոփոխությունները կարող է հայտնաբերել միայն composer.json-ում, ոչ թե .info կամ .info.yml ֆայլերում):

Տե՛ս նաև

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.