Am o problemă cu o temă personalizată pe care am creat-o pe un site de testare Drupal 9.
- Versiunea Drupal: 9.3.13
- Server web Apache 2.4.41 (XAMP win64)
- PHP versiunea 8.0.11
- Versiunea bazei de date 10.4.8-MariaDB
temă personalizată professional.info.yml:
nume: Profesionist
tip: temă
descriere: versiunea Drupal 9 a temei Professional
cerinta_versiune_core: ^8 || ^9
tema de bază: fals
versiunea: 1.0.0
biblioteci:
- stil profesional/global
- scenarii profesionale/globale
regiuni:
sidebar_first: „Prima bară laterală”
sidebar_second: „A doua bară laterală”
antet: „Header”
front_welcome: „Bine ați venit”
conținut: „Conținut”
content_top: „Sub conținut”
ajutor ajutor'
subsol: „Footer”
footer_first: „Primul de jos”
footer_second: „Al doilea de jos”
footer_third: „Al treilea de jos”
caracteristici:
logo: adevărat
site_name: adevărat
site_slogan: adevărat
node_user_picture: adevărat
comment_user_picture: adevărat
comment_user_verification: adevărat
favicon: adevărat
meniul_principal: adevărat
secundar_meniu: false
temă personalizată professional.libraries.yml:
stil global:
versiune: VERSIUNE
css:
temă:
css/style.css: {}
scripturi globale:
versiune: VERSIUNE
js:
js/custom.js: {}
js/jquery.flexslider-min.js: {}
js/slide.js: {}
dependențe:
- core/jquery
- miez/drupal
- core/drupalSettings
- core/drupal.dialog.ajax
Am salvat toate fișierele noii teme respectând convenția:
/site-root
- teme
- profesionist
- css
- js
- șabloane
- sistem
Problema este că dependențele, inclusiv core/drupal, nu sunt aplicate deloc, iar cele trei fișiere JavaScript din scripturi globale
directive nu sunt incluse în paginile site-ului, chiar dacă atât fișierele CSS de bază Drupal, cât și style.css de la profesional: global-styling
au fost incluse.
Am văzut asta pe consola instrumentelor de dezvoltare a browserului Chrome când am încercat, de exemplu, să arăt o pagină de bază
nod într-un pop-up modal folosind un exemplu Drupal.org:
<ol>
<li><a class="use-ajax" data-dialog-options="{"width":400}" data-dialog-type="modal" href="/xampp/drupal9test/node/9">Basic page displayed in modal dialog. </a></li>
<li><a class="use-ajax" data-dialog-options="{"width":400}" data-dialog-type="dialog" href="/xampp/drupal9test/node/9">Basic page displayed in non modal dialog. </a></li>
<li><a class="edit-button use-ajax" data-dialog-options="{"width":400}" data-dialog-renderer="off_canvas" data-dialog-type="dialog" href="/xampp/drupal9test/node/9">Basic page displayed in a nice off canvas dialog. </a></li>
</ol>
Nodul este afișat ca o pagină convențională, niciun pop-up modal nu este deschis. Deci, nici JavaScript de bază, nici AJAX nu se aplică dacă folosesc tema mea personalizată; când trec la tema Bartik, totul funcționează, și modale.
Am încercat să adaug direct bibliotecile de bază Drupal și AJAX professional_preprocess_page(&$variabile)
în fișierul professional.theme cu linia:
$variables['#attached']['library'][] = 'core/drupal';
$variables['#attached']['library'][] = 'scripturi-profesionale/globale';
Am încercat chiar să adaug biblioteci cu Twig direct în șablonul html.html.twig cu {{ attach_library('core/drupal') }}
, dar niciuna dintre aceste modificări nu a avut vreun efect.
Desigur, de fiecare dată când am schimbat unele setări am șters și memoria cache a site-ului.
ce fac greșit? Imi poate da cineva o solutie?