logo

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

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

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

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

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

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

Scroll
19/06/2025, by Ivan

Menu

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

Կաղապարների վերակազմակերպում

Դուք կարող եք վերակազմակերպել Drupal-ի հիմնական կաղապարները՝ ավելացնելով ձեր թեմայի թղթապանակում կաղապարներ, որոնք համապատասխանում են որոշակի անվանման կոնվենցիային։

Կաղապարները վերակազմակերպելու համար անհրաժեշտ է՝

1. Գտնել այն կաղապարը, որը ցանկանում եք վերակազմակերպել։
2. Պատճենել այդ կաղապարի ֆայլը՝ դրա հիմնական տեղամասից ձեր թեմայի թղթապանակ։
3. (հնարավոր է) Փոխել կաղապարի անունը՝ անվանման կոնվենցիաներին համապատասխան՝ ուղղված ավելի կոնկրետ ենթաբազմությանը, որտեղ օգտագործվում է կաղապարը։
4. Փոփոխել կաղապարը ձեր նախասիրությամբ։

Միայն ձեր կաղապարի ֆայլը ձեր թեմայում պատճենելու և քեշը մաքրելուց հետո Drupal-ը կկիրառի ձեր նոր կաղապարը՝ հին տեղամասի փոխարեն։

Դուք կարող եք պարզել, թե որ կաղապարներն են օգտագործվում էջի ցանկացած հատվածի համար՝ օգտագործելով Twig դեբագավորման գործիքները։

Թեմայի hook առաջարկներ

Կայքի որոշ մասերում կաղապարի ֆայլում փոփոխություններ կատարելու անհրաժեշտություն կարող է լինել միայն որոշակի դեպքերի համար։ Օրինակ՝ հանգույցի կաղապարի փոփոխություններ միայն որոշակի տիպի հանգույցների համար։ Drupal-ի թեմատիկ շերտը թույլ է տալիս կողմնորոշվել կոնկրետ դեպքերի համար՝ հետևելով անվանման կոնվենցիայի։ Երբ ցուցադրվում է հոդվածի հանգույց, Drupal-ը նախ փնտրում է node--article.html.twig ֆայլը և օգտագործում այն, եթե գոյություն ունի։ Եթե չկա, ապա անցնում է node.html.twig ստանդարտ կաղապարին։ Այս գործընթացը, որով Drupal-ը որոշում է, թե որոնք են հնարավոր կաղապարի անունները, կոչվում է թեմայի առաջարկներ։

Թեմայի hook առաջարկները թույլ են տալիս ձեր թեմայում իրականացնել թիրախավորված վերակազմակերպումներ ֆայլերի համար, որոնք ունեն որոշակի անվանման կոնվենցիա։

Բոլոր շերտերը՝ ներառյալ կոռի, մոդուլները, թեմաների շարժիչները և թեմաները, կարող են տրամադրել առաջարկներ։ Դուք կարող եք ավելացնել կամ փոխել առաջարկները՝ օգտագործելով հետևյալ hook-երը․

 

Քեշի մաքրման կարիք

Թեմայի առաջարկների hook-ների հետ աշխատելիս հնարավոր է, որ Drupal-ը օգտագործի իր քեշը՝ նոր կաղապարների փոխարեն։ Եթե ձեզ հանդիպում է այս խնդիրը, մաքրել քեշը։ Քեշը մաքրելու բազմաթիվ մեթոդներ կա՝ նայեք Drupal-ի քեշի մաքրման բաժինը։

Աղբյուրային տեղեկատվություն

Կաղապարի առաջարկները կարելի է դիտարկել որպես անվանման ցուցումներ, որոնք համակարգին ասում են՝ ընտրել ճիշտ կաղապարը՝ հիմնվելով համապատասխան իրավիճակների վրա։

Կաղապարի առաջարկները սահմանվում են hook-երով, որոնք թույլ են տալիս ցանկացած մոդուլին կամ թեմային տրամադրել այլընտրանքային թեմատիկ ֆունկցիաներ կամ կաղապարային անվանումներ և փոփոխել կամ հանել մյուս hook_theme_suggestions_HOOK()-ի կամ նմանատիպ hook-երի առաջարկները։

Ինչպես Drupal-ը որոշում է էջի թեմայի առաջարկները՝ հիմնվելով ուղու վրա

Ստորև ներկայացված է բացատրություն՝ հիմնված theme_get_suggestions() ֆունկցիայի վրա։

Անշրջելի էջի հնարավոր կաղապարների ցուցակը ձևավորվում է Drupal-ի կողմից՝ օգտագործելով theme_get_suggestions() ֆունկցիան, որը կանչվում է system_theme_suggestions_page() ֆունկցիայի միջոցով։

Էջի ուղին նախ բաժանվում է բաղադրիչների։ Ինչպես նշված է վերևում՝ Drupal-ի ուղին համարժեք է ներքին ուղուն, և չի ներառում մականունները։ Օրինակ՝ "http://www.example.com/node/1/edit" և "http://www.example.com/mysitename?q=node/1/edit" էջերի համար ուղին Drupal-ում կլինի node/1/edit, որի բաղադրիչներն են "node", 1 և "edit"։

Հետո սահմանվում է "page" նախածանցը։ Յուրաքանչյուր բաղադրիչի համար կիրառվում է հետևյալ տրամաբանությունը․

1. Եթե բաղադրիչը թիվ է, ապա առաջարկների ցանկին ավելացվում է նախածանցը + "__%"։
2. Անկախ բաղադրիչի տիպից, առաջարկների ցանկին ավելացվում է նախածանցը + "__" + բաղադրիչ։
3. Եթե բաղադրիչը թիվ չէ, ապա նախածանցին ավելանում է "__" + բաղադրիչ։

Բաղադրիչների ցանկի կրկնությունից հետո, եթե էջը գլխավոր էջ է (նույնը, ինչ նշված է "Administration > Configuration > System > Site information"), ապա առաջարկների ցանկին ավելանում է "page__front"։

Նշեք, որ վերջնականում "__" փոխարինվում է "--" և ավելացվում է ".html.twig" ընդարձակումը՝ կաղապարի անունը ստանալու համար։ Node/1/edit-ի համար առաջարկների ցանկը հետևյալն է՝

1. page.html.twig ( միշտ առաջարկ է)
2. page--node.html.twig (նախածանցը page__node է)
3. page--node--%.html.twig
4. page--node--1.html.twig (ինչպես թվային բաղադրիչ)
5. page--node--edit.html.twig (նախածանցը page__node__edit է)
6. page--front.html.twig (միայն եթե էջը գլխավոր է)

Էջը ցուցադրվում է՝ սկսելով վերջին առաջարկից։ Եթե գոյություն ունի, օգտագործվում է այն, հակառակ դեպքում անցնում են հաջորդին։ Եթե ոչ մի առաջարկ գոյություն չունի, ապա page.html.twig-ն է օգտագործվում որպես վերջնական տարբերակ։ Սա բացատրում է, թե ինչու page--front.html.twig-ն միշտ վեր է մյուս գլխավոր էջի առաջարկներից՝ քանի որ դա վերջին առաջարկն է գլխավոր էջի համար։

Այլություններ Drupal 7-ից

Երկար ժամանակ Drupal 7-ում առաջարկները փոխելու համար դուք փոփոխում էիք $variable['theme_hook_suggestion'] և $variable['theme_hook_suggestions'] նախապատրաստման ֆունկցիաներում։ Drupal 8-ում մոդուլներն ու թեմաները սահմանում և փոփոխում են առաջարկները իրենց հատուկ hook-երով։

Լրացուցիչ տեղեկություններ

Տես փոփոխության գրառումը՝ Թեմատիկ առաջարկների նոր hook-եր

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.