Кастомний 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);
    }
    

Тут спочатку ми додаємо на сторінку налаштувань вашої теми код для власних налаштувань. Потім ми додаємо функцію для зберігання даних форми, в якій вказується шлях до файлу стилю нашої теми, в кінці якого буде доданий наш власний код.

Важливе зауваження - в залежності від налаштувань кешу вашого сайту або сервера, зміни у браузері можуть не відображатися негайно.

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.
Код мови коментаря.