Кастомний CSS в налаштуваннях кастомної теми Drupal 9
Припустимо, що у нас є сайт на Drupal 9 з власною темою, і через деякі обставини у вас немає можливості постійно підключитися до FTP для додавання коду. У цьому випадку нам потрібно додати невеликий код до нашої теми, і ми зможемо додавати CSS з панелі адміністратора.
Припустимо, що у нас вже є трохи змінена тема і є файл налаштувань. theme-settings.php
<?php
function themename_form_system_theme_settings_alter(&$form, &$form_state) {
$form['custom_css'] = [
'#type' => 'textarea',
'#title' => t('Custom CSS'),
'#default_value' => theme_get_setting('custom_css'),
'#description' => t('Enter custom CSS here.'),
];
$form['#submit'][] = 'themename_form_system_theme_settings_submit';
}
function themename_form_system_theme_settings_submit($form, &$form_state) {
$css_code = $form_state->getValue('custom_css');
$file_path = DRUPAL_ROOT . '/themes/custom/themename/css/default.css';
file_put_contents($file_path, "\n" . $css_code, FILE_APPEND);
}
Тут спочатку ми додаємо на сторінку налаштувань вашої теми код для власних налаштувань. Потім ми додаємо функцію для зберігання даних форми, в якій вказується шлях до файлу стилю нашої теми, в кінці якого буде доданий наш власний код.
Важливе зауваження - в залежності від налаштувань кешу вашого сайту або сервера, зміни у браузері можуть не відображатися негайно.