Создание подтемы в Drupal 9 позволяет вам настраивать и расширять внешний вид вашего веб-сайта Drupal, сохраняя при этом преимущества базовой темы. В этой статье блога я расскажу вам о нескольких методах создания подтемы в Drupal 9, а также приведу примеры кода.
Метод 1. Создание подтемы с помощью команды консоли Drupal:
Шаг 1. Установите консоль Drupal глобально, выполнив следующую команду:
composer global require drupal/console:@stable
Шаг 2. Перейдите в корневой каталог Drupal и выполните следующую команду, чтобы создать подтему:
drupal generate:theme
Следуйте инструкциям и введите необходимую информацию, такую как базовая тема, имя темы и имя компьютера.
Метод 2. Создание подтемы вручную:
Шаг 1. Перейдите в каталог тем Drupal (обычно он находится по адресу /themes).
Шаг 2. Создайте новый каталог для своей подтемы, например, my_subtheme.
Шаг 3. Внутри каталога подтемы создайте файл my_subtheme.info.ymlи определите необходимую информацию:
name: 'My Subtheme'
type: theme
base theme: 'base_theme_name'
description: 'Custom subtheme based on the base theme.'
core_version_requirement: ^9 || ^8
Шаг 4. Создайте файл my_subtheme.libraries.yml, включающий файлы CSS и JavaScript:
my_subtheme:
css:
theme:
css/style.css: {}
js:
js/script.js: {}
Шаг 5. Создайте файл my_subtheme.theme, чтобы добавить пользовательские функции PHP и изменить настройки:
<?php
use Drupal\Core\Form\FormStateInterface;
/
* Implements hook_form_system_theme_settings_alter().
*/
function my_subtheme_form_system_theme_settings_alter(&$form, FormStateInterface $form_state) {
// Add custom theme settings here.
}
Способ 3. Создание подтемы с помощью модуля Starterkits:
Шаг 1. Установите и включите модуль Starterkits.
Шаг 2. Запустите следующую команду, чтобы создать подтему на основе стартового набора:
drush starterkit:theme my_subtheme
Следуйте подсказкам и выберите нужный стартовый набор.
После того как вы создали свою подтему с помощью любого из упомянутых выше методов, включите ее в панели администрирования Drupal, и вы сможете начать настраивать внешний вид, изменяя файлы CSS, JavaScript и PHP, относящиеся к вашей подтеме.