ПРоблема с темой - не подключаются библиотеки

Главные вкладки

Аватар пользователя protoftor protoftor 14 июля 2022 в 14:34

Уважаемые коллеги, доброго времени суток
Осваиваю 9-ку, раньше сидел на 7-ке. И сразу проблема: моя пользовательская тема не подключает библиотеки. Никакие свои css и js файлы я не могу подключить. Хотя, делаю все как на drupal.org велят:
в папке themes сделал папку mukcbs_thm, в ней папки css и js. в кои положил файлы custom.css и custom.js,Ж в папке mukcbs_thm создал
создал файл mukcbs_thm.libraries.yml:
custom-styling:
version: 1.x
head: true
css:
theme:
css/custom.css: {}
custom-scripts:
version: 1.x
head: true
js:
js/custom.js: {}
# Так как наш скрипт использует jQuery, мы устанавливаем зависимость/
dependencies:
- core/drupal
- core/once
- core/jquery
и файл mukcbs_thm.info.yml
name: mukcbs_thm
type: theme
base theme: false
description: 'Main theme for Uliyanovsk Library System site.'
core_version_requirement: ^9
version: VERSION
libraries:
- mukcbs_thm/custom-scripts
- mukcbs_thm/custom-styling
regions:
header: Header
breadcrumbs: Breadcrumbs
content: Conrtent
footer: Footer

Тему Дрпуал видит, подключает, регионы нормально делает, в них все выводится. А вот js и css файлов пользовательских не видит в упор. Их нет нигде в коде страницы, ни в тегах
Подскажите, что я не так делаю? Кэши чищу - не помогает.
Заранее благодарю. файлы темы прилагаю в архиве

ВложениеРазмер
Файл Моя тема на Друпал 92 КБ

Комментарии

Аватар пользователя marassa marassa 15 июля 2022 в 9:32

Je suis désolé Monsieur, mais Вы же не читаете того, что Вам пишут Sad
Совет от levmyshkin из конца той ветки с attach_library() в твиг-шаблоне пробовали? Хоть один из множества вариантов, описанных по ссылке OldWarrior пробовали? Так как же Друпал должен понять, что Вы хотите включить Ваши библиотеки на какие-то страницы? Пока Вы просто описали, что эти библиотеки существуют. Этого мало.

Аватар пользователя protoftor protoftor 19 июля 2022 в 18:28

ВСе я перепробовал, благодарю, дело было в банальной опечатке.... Файл с имеем библиотеки был неверно поименован.

Аватар пользователя OldWarrior OldWarrior 14 июля 2022 в 18:31

https://www.drupal.org/docs/theming-drupal/adding-assets-css-js-to-a-dru...

...Most themes will use a global-styling asset library, for the stylesheets (CSS files) that need to be loaded on every page where the theme is active. It is also possible to do with JS via a global-scripts asset library...

Я бы порекомендовал начать с того, чтобы переименовать библиотеки в global-styling и global-scripts (да-да). Если не поможет - то создать PHP-файл mukcbs_thm.theme и использовать имплементацию hook_page_attachments().

Аватар пользователя protoftor protoftor 18 июля 2022 в 13:17

Спасибо, уважаемый коллега, это тоже не помогает. Уточните, должен ли файл mukcbs_thm.theme иметь в конце расширение .php?
ПОка у меня получилось подключить библиотеку только модулем, но это же неправильно? Или правильно? Я с этой 9-кой совсем запутался.... Ни один из способов, приведенных здесь:

Аватар пользователя OldWarrior OldWarrior 18 июля 2022 в 17:19

protoftor wrote: Уточните, должен ли файл mukcbs_thm.theme иметь в конце расширение .php

Нет. В соответствии со стандартами D8/9 расширение должно быть именно .theme

Ещё раз пересмотрел ваш код. Объективных причин вроде не нахожу, должно работать. Возможно, как указал ниже marassa, банальная опечатка/ошибка где-то в путях или именах файлов JS/CSS. Если, конечно, сама тема работает, как вы указали выше.

Использовать хук mukcbs_thm_page_attachments() из вашего файла mukcbs_thm.theme пробовали?

Аватар пользователя protoftor protoftor 19 июля 2022 в 18:22

БОЛьшое спасибо. уважаемый коллега, исправил, теперь скрипт custom .js подключается. А не подскажете ли, как подключить скрипт jquery.cycle2.min.js? РАньше на 7-ке это было просто,
<?php
drupal_add_library('jquery_plugin','cycle');
?>
при условии. что был включен модуль JQuery Plugns
А как на 9-ке - что-то не пойму. пробовал этот скрипт в ту жу библиотеку global-scripts добавить - не подхватывает, пробовал отдельную библиотеку для него сделать - тот же результат.
Скрипт я скачал на свой сайт, так что это - не внешняя библиотека, а обычный скрипт (если я верно понимаю). Как можно несколько скриптов в теме подключить? У меня такие вещи часто на сайтах...

Аватар пользователя protoftor protoftor 19 июля 2022 в 20:28

Колеги, всем спасибо! ВСЕ понял, надо было без дефисов имена файлов js писать, вот так:
global-scripts:
version: VERSION
head: true
js:
js/custom.js: {}
js/jquery.cycle2.min.js: {}
dependencies:
- core/drupal
- core/once
- core/jquery
ТОгда все просто - блок с таким кодом:

<div class="cycle-slideshow" data-cycle-slides="> a">
   <a href="https://mail.ru" target="_blank"><img src="slide1.jpg"></a>
   <a href="https://yandex.ru" target="_blank"><img src="slide2.jpg"></a>
   <a href="https://rambler.ru" target="_blank"><img src="slide3.jpg"></a>
   <a href="https://kinopoisk.ru" target="_blank"><img src="slide4.jpg"></a>
</div>

И пашет даже без подключения, т.е. вот этого:
Drupal.behaviors.run_cycle= {
attach: function (context, settings) {

$(context).find(".cycle-slideshow").once('run_cycle').cycle({
slides:'> a'
});

//console.log('privet, azat');
}
}
в custom.js можно не писать. Молодец Мальтсап!