logo

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

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

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

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

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

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

Scroll

Նախապատրաստում և հատկությունների փոփոխություն .theme ֆայլում

19/06/2025, by Ivan

Menu

Ինչպես Drupal 7-ում, դուք կարող եք ազդել որոշակի HTML-ի արտածման վրա նախապատրաստման ֆունկցիաների միջոցով։ Օրինակ, եթե ցանկանում եք ավելացնել դաս մենյուին և նախընտրում եք դա անել PHP մակարդակով, կարող եք դա անել։ Սա լավ միջոց է թեմային առնչվող նշագրման փոփոխման համար, բայց եթե ցանկանում եք ստեղծել թեմայից անկախ նշագրում, ավելի լավ է գրել ձեր սեփական մոդուլը։

(Նշում․ այստեղ «mytheme»-ը ձեր թեմայի մեքենայական անունն է, օրինակ՝ «bartik»։)

Նախապատրաստման ֆունկցիաների հետ աշխատելու համար՝

1. Ստեղծեք կամ խմբագրեք ձեր թեմայի տոպրակին պատկանող mytheme.theme ֆայլը։

2. Ստեղծեք ֆունկցիա, օրինակ՝ mytheme_preprocess_HOOK, որտեղ HOOK-ը հղում է այն տարրի վրա, որը ցանկանում եք փոխել։*

3. Գրեք ձեր փոփոխությունները և պահպանեք։

4. Վերակառուցեք քեշը, որպեսզի փոփոխությունները կիրառվեն (եթե ունեք drush, ապա հրամանի տողում գործարկեք drush cr)

* HOOK անունները հետևում են twig տեմպլեյթի անվանման ձևին։ Օրինակ՝ page.html.twig-ի համար հուկը կլինի mytheme_preprocess_page։ Եթե ցանկանում եք հուկ գրել article.html.twig-ի համար, դա կլինի mytheme_preprocess_node__article (ծայրակետերը փոխարինվում են ստորակետերով)։ Հուկերի անունները պարզելու համար տեսեք «Տեմպլեյթի ֆայլերի որոնում՝ դեբագի միջոցով» բաժինը։

Ենթադրենք ցանկանում եք բոլոր մենյուներին ավելացնել my-menu դաս։ Եթե ձեր թեման mytheme է, ապա պետք է գրեք հետևյալ ֆունկցիան․

/**
* hook_preprocess_HOOK() իրագործում menu.html.twig-ի համար։
*/
function mytheme_preprocess_menu(&$variables) {
  // Եթե դասերի զանգված գոյություն չունի, ստեղծեք դատարկ զանգված։
  if (!isset($variables['attributes']['class'])) {
    $variables['attributes']['class'] = [];
  }
  // Միացրեք այլ hook_preprocess_menu կանչերից եկած դասերին։
  $variables['attributes']['class'] = array_merge($variables['attributes']['class'], ['my-menu']);
}

Սա շատ նման է Drupal 7-ի և օգտակար է, եթե ցանկանում եք կառավարել կոնկրետ մենյուներ։

Կարող եք ստուգել $variables օբյեկտը՝ պայմանով, որպեսզի իմանաք, թե որ մենյուի հետ եք աշխատում։ $variables-ի ներսի տարրերը հասանելի են Twig-ում նախապատրաստումից հետո։

Հիմա մեր օրինակը զարգացնելու համար՝ ենթադրենք, որ ցանկանում եք գլխավոր մենյուին ավելացնել «my-main-menu» դասը։ Սա կլինի այդ ֆունկցիան․

/**
* hook_preprocess_HOOK() իրագործում menu.html.twig-ի համար։
*/
function mytheme_preprocess_menu(&$variables) {
  if ($variables['menu_name'] == 'main') {
    if (!isset($variables['attributes']['class'])) {
      $variables['attributes']['class'] = [];
    }
    $variables['attributes']['class'] = array_merge($variables['attributes']['class'], ['my-main-menu']);
  }
}

Փոփոխություններ Drupal 7-ից

Այժմ template.php ֆայլ չկա։ Այն փոխարինվել է mytheme.theme-ով։ Այնուամենայնիվ, այն դեռ գործում է շատ նման ձևով՝ թույլ տալով հուկերին փոխել արտածումը։

Այլ օգտակար հղումներ

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.