logo

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

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

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

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

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

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

Scroll

Թեմայի ընդլայնված կարգավորումների ստեղծում

19/06/2025, by Ivan

Menu

Drupal ադմինիստրատիվ հատվածում յուրաքանչյուր թեմայի համար կա իր կարգավորումների էջը՝ հասցեով admin/Appearance/Settings/themeName։ Այդ էջը պարունակում է ֆորմա ստանդարտ կարգավորումներով, օրինակ՝ «Նշանաբանի պատկերակի կարգավորումներ» և «Կարճ հղման պատկերակի կարգավորումներ»։

Drupal 8-ում թեմաները կարող են փոփոխել ամբողջ թեմայի կարգավորումների ֆորման՝ ավելացնելով PHP ֆունկցիա կամ այն THEMENAME.theme ֆայլում, կամ theme-settings.php ֆայլում։ Այս ֆայլերից մեկում թեման պետք է օգտագործի հետևյալ միացնող ֆունկցիան՝ THEMENAME_form_system_theme_settings_alter(&$form, $form_state)։ Տեսեք «Drupal 8-ի ֆորմերի API» և Form և Render-ի ամբողջական ցուցակը՝ ինչպես նաև hook_form_FORM_ID_alter()» փաստաթուղթը՝ ֆորմերի API-ի ամբողջական ճկունությունը ուսումնասիրելու համար։

Ահա օրինակ, եթե ձեր թեման foo է և ցանկանում եք ավելացնել տեքստային դաշտ, որի նախնական արժեքը «blue bikeshed» է։ Ավելացրեք հետևյալը foo/foo.theme կամ foo/theme-settings.php ֆայլում.

function foo_form_system_theme_settings_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id = NULL) {
  // Ծածկել ադմին-թեմաներին ազդող կորպուսի սխալը։ Տես #943212 խնդիր։
  if (isset($form_id)) {
    return;
  }

  $form['foo_example'] = array(
    '#type'          => 'textfield',
    '#title'         => t('Widget'),
    '#default_value' => theme_get_setting('foo_example'),
    '#description'   => t("Տեքստը տեղադրեք ձեր կայքի վիջեթի հատվածում։"),
  );
}

Ցանկացած նոր ավելացված ֆորմայի էլեմենտի նախնական արժեքը սահմանելու համար անհրաժեշտ է config/install/THEME.settings.yml ֆայլում ավելացնել պարզ տող՝ SETTING_NAME: DEFAULT_VALUE։ Մեր foo թեմայի համար պետք է խմբագրել foo/config/install/foo.settings.yml ֆայլը և ավելացնել հետևյալ տողը՝

foo_example: blue bikeshed

Թեմայի PHP ֆայլերից որևէ մեկում կարող եք օգտվողի տրված արժեքը ստանալ այսպես՝

$foo_example = theme_get_setting('foo_example');

Նշեք, որ թեմաների հեղինակները կարող են ստեղծել բարդ դինամիկ ֆորմաներ՝ օգտագործելով ընդլայնված ֆորմերի API (օրինակ՝ ավտոմատ լրացում, կոճակավոր դաշտերի հավաքածուներ)։

Կարգավորումների արժեքների ստացում ձեր թեմայի ֆայլերում

Twig ֆայլում պարամետրը օգտագործելու համար անհրաժեշտ է ավելացնել նոր փոփոխական Twig ֆայլում՝ այն ավելացնելով նախապատրաստման ֆունկցիայի միջոցով THEMENAME.theme ֆայլում։

$variables['varname'] = theme_get_setting('varname')

Օրինակ՝ foo_example պարամետրը ավելացնելու համար node.html.twig ֆայլում, ավելացրեք հետևյալը foo.theme ֆայլում՝

<?php
function foo_preprocess_node(&$variables) {
  $variables['foo_example'] = theme_get_setting('foo_example');
}

Այնուհետև node.html.twig ֆայլում կարող եք սովորաբար Twig փոփոխականի նման օգտագործել foo_example-ը՝

{{ foo_example }}

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

Տեսեք Drupal 8-ի փոփոխությունների գրառումը՝ https://www.drupal.org/node/2382645

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.