Điểm:0

Phụ thuộc chủ đề tùy chỉnh

lá cờ my

Tôi gặp sự cố với chủ đề tùy chỉnh mà tôi đã tạo trên trang web thử nghiệm Drupal 9.

  • Phiên bản Drupal: 9.3.13
  • Máy chủ web Apache 2.4.41 (XAMP win64)
  • Phiên bản PHP 8.0.11
  • Phiên bản cơ sở dữ liệu 10.4.8-MariaDB

chủ đề tùy chỉnh professional.info.yml:

tên: Chuyên nghiệp
loại: chủ đề
mô tả: Phiên bản Drupal 9 của chủ đề Chuyên nghiệp
core_version_requirement: ^8 || ^9
chủ đề cơ sở: sai
phiên bản: 1.0.0
thư viện:
  - phong cách chuyên nghiệp/toàn cầu
  - tập lệnh chuyên nghiệp/toàn cầu
vùng:
  sidebar_first: 'Thanh bên đầu tiên'
  sidebar_second: 'Thanh bên thứ hai'
  tiêu đề: 'Tiêu đề'
  front_welcome: 'Chào mừng phía trước'
  nội dung: 'Nội dung'
  content_top: 'Nội dung hàng đầu'
  cứu cứu'
  chân trang: 'Chân trang'
  footer_first: 'Đáy đầu tiên'
  footer_second: 'Đáy thứ hai'
  footer_third: 'Đáy thứ ba'
Tính năng, đặc điểm:
  biểu tượng: đúng
  site_name: true
  site_slogan: đúng
  nút_user_picture: đúng
  comment_user_picture: đúng
  comment_user_verification: đúng
  biểu tượng yêu thích: đúng
  main_menu: đúng
  secondary_menu: sai

chủ đề tùy chỉnh professional.libraries.yml:

phong cách toàn cầu:
  phiên bản: PHIÊN BẢN
  css:
    chủ đề:
      css/style.css: {}  
tập lệnh toàn cầu:
  phiên bản: PHIÊN BẢN
  js:
    js/custom.js: {}
    js/jquery.flexslider-min.js: {}
    js/slide.js: {}
  phụ thuộc:
    - lõi/jquery
    - lõi/drupal
    - lõi/drupalSettings
    - lõi/drupal.dialog.ajax

Tôi đã lưu tất cả các tệp của chủ đề mới theo quy ước:

/site-root
 - chủ đề
   - cao thủ
     - css
     - js
     - mẫu
       - hệ thống

Vấn đề là các phụ thuộc, bao gồm cả lõi/drupal, hoàn toàn không được áp dụng và ba tệp JavaScript trong tập lệnh toàn cầu lệnh không được bao gồm trong các trang của trang web, mặc dù cả tệp CSS lõi Drupal cũng như style.css từ chuyên nghiệp: phong cách toàn cầu đã được bao gồm.

Tôi đã thấy điều đó trên bảng điều khiển công cụ phát triển trình duyệt chrome khi tôi cố gắng hiển thị một trang cơ bản chẳng hạn nút trong cửa sổ bật lên theo phương thức bằng cách sử dụng ví dụ về Drupal.org:

<ol>
    <li><a class="use-ajax" data-dialog-options="{&quot;width&quot;: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="{&quot;width&quot;: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="{&quot;width&quot;: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>

Nút được hiển thị dưới dạng một trang thông thường, không có cửa sổ bật lên phương thức nào được mở. Vì vậy, cả JavaScript và AJAX cốt lõi đều không được áp dụng nếu tôi sử dụng chủ đề tùy chỉnh của mình; khi tôi chuyển sang chủ đề Bartik, mọi thứ đều hoạt động, các phương thức cũng vậy. Tôi đã thử thêm trực tiếp các thư viện lõi Drupal và AJAX vào professional_pre process_page(&$variables) trong tệp professional.theme có dòng:

$variables['#attached']['library'][] = 'core/drupal';
$variables['#attached']['library'][] = ' professional/global-scripts';

Tôi thậm chí đã thử thêm thư viện bằng Twig trực tiếp vào mẫu html.html.twig với {{ attachment_library('core/drupal') }}, nhưng không có thay đổi nào trong số này có tác dụng.

Tất nhiên, mỗi khi tôi thay đổi một số cài đặt, tôi cũng xóa bộ nhớ cache của trang.

Tôi đang làm gì sai? Ai đó có thể cho tôi một giải pháp?

Jaypan avatar
lá cờ de
Tôi không thể cho bạn biết bạn đang làm gì sai, nhưng tôi cá rằng đó là sự cố về mẫu và bạn đang thiếu một số thứ cần thiết. Bạn đã triển khai `html.html.twig` chưa? Có lẽ bạn có một cái gì đó kỳ lạ.
lá cờ ru
Chủ đề của bạn có ghi đè lên mẫu `html.html.twig` không? Bạn *phải* có cả ba `` và ``s ở đó, xem https://github.com/drupal/drupal/blob/9.5.x/core/themes/stable9/templates/layout/html.html.twig#L31
Kevin avatar
lá cờ in
Vâng, vì Bartik hoạt động còn của bạn thì không, nên bạn đang thiếu một số thứ cơ bản. Bạn không có bộ chủ đề cơ sở nào, vì vậy một số thứ bị thiếu như những người bình luận khác đã lưu ý.
lá cờ my
Cảm ơn câu trả lời của bạn, tôi đã giải quyết được vấn đề, nhưng tôi phải thêm các tệp js tùy chỉnh vào ngay trước thẻ, nhưng dòng trong phần đã có sẵn và nó vô dụng... Tôi nghĩ rằng việc chỉ ra các thư viện tùy chỉnh và các phần phụ thuộc trong tệp library.yml là đủ để làm cho nó hoạt động.
mradcliffe avatar
lá cờ cn
Nó sẽ hoạt động. Nhắc lại rằng phải có điều gì đó khác sai. Bạn có đang theo dõi các hành vi tái tạo API Drupal JavaScript và chèn các phụ thuộc bằng biểu thức hàm được gọi ngay lập tức (IIFE) không? Cung cấp javascript có thể hữu ích.
lá cờ my
@mradcliffe: Tôi không biết câu trả lời cho câu hỏi của bạn, nhưng nếu bạn thích, tôi có thể cung cấp toàn bộ chủ đề tùy chỉnh cho mọi người (miễn là bạn giải thích cho tôi biết tôi có thể tải nó lên ở đâu và như thế nào), vì vậy nếu ai đó muốn gỡ lỗi và cải thiện nó, nó có thể là một lựa chọn mới cho tất cả người dùng trên toàn thế giới, sau tất cả, tôi chỉ sửa đổi chủ đề của người khác cho Drupal 7.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.