logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

Kreiranje naprednih podešavanja teme

19/06/2025, by Ivan

U Drupal administratorskom delu, svaka tema ima svoju posebnu stranicu za podešavanja na adresi admin/Appearance/Settings/nazivTeme. Ta stranica sadrži formu sa standardnim podešavanjima, kao što su „Podešavanja slike logotipa“ i „Podešavanja ikone prečice“.

U Drupalu 8, teme mogu menjati celu formu podešavanja teme dodavanjem PHP funkcije u fajl THEMENAME.theme ili u fajl theme-settings.php. U jednom od ovih fajlova tema treba da koristi funkciju hook THEMENAME_form_system_theme_settings_alter(&$form, $form_state). Pogledajte „API formi u Drupalu 8“ i kompletan spisak elemenata Form i renderovanja, kao i dokumentaciju hook_form_FORM_ID_alter() docs za kompletnu fleksibilnost API formi.

Evo primera: ako imate temu „foo“ i želite da dodate tekstualno polje sa podrazumevanom vrednošću „blue bikeshed“. Dodajte sledeće u fajl foo/foo.theme ili u fajl foo/theme-settings.php:

function foo_form_system_theme_settings_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id = NULL) {
  // Zaobilaženje buga u jezgru koji utiče na administratorske teme. Pogledajte problem #943212.
  if (isset($form_id)) {
    return;
  }

  $form['foo_example'] = array(
    '#type'          => 'textfield',
    '#title'         => t('Widget'),
    '#default_value' => theme_get_setting('foo_example'),
    '#description'   => t("Postavite ovaj tekst u widget na vašem sajtu."),
  );
}

Da biste postavili podrazumevanu vrednost za bilo koji dodatni element forme, potrebno je da u fajl config/install/THEME.settings.yml unesete jednostavnu liniju: SETTING_NAME: DEFAULT_VALUE. Za našu temu foo, potrebno je da izmenite fajl foo/config/install/foo.settings.yml i dodate sledeću liniju:

foo_example: blue bikeshed

U bilo kom PHP fajlu vaše teme možete dobiti korisnički podešenu vrednost pozivom:

$foo_example = theme_get_setting('foo_example');

Imajte na umu da autori tema mogu praviti složene dinamičke forme koristeći napredni API formi (autopopunjavanje, sklopivi skupovi polja).

Dobijanje vrednosti podešavanja u fajlovima vaše teme

Da biste koristili podešavanje u Twig fajlu, morate dodati novu promenljivu u Twig fajl tako što ćete je dodati preko funkcije prethodne obrade u fajlu THEMENAME.theme.

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

Na primer, da biste dodali naš parametar foo_example u fajl node.html.twig, dodajte ga u fajl foo.theme:

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

Zatim u fajlu node.html.twig možete pristupiti foo_example kao bilo kojoj drugoj Twig promenljivoj:

{{ foo_example }}

Više informacija

Pogledajte zapis promena za 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.