Թեմայի ընդլայնված կարգավորումների ստեղծում
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.