Tôi đã tham gia nâng cấp một trong những chủ đề đóng góp của mình lên Drupal 8 vì tôi muốn jquery.once cho người dùng ẩn danh. Đây là những gì tôi đã làm mà làm việc tuyệt vời:
Trong herchel.lologists.yml
herchel-corescripts:
version: VERSION
js:
js/scripts.js: {}
dependencies:
- core/jquery
- core/drupal.ajax
- core/drupal
- core/drupalSettings
- core/jquery.once
Sau đó, trong tập tin herchel.theme của chủ đề của bạn .
function herchel_preprocess_page(&$vars, $hook) {
// Render the library as laid out in herchel.libraries.yml
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
\Drupal::service('renderer')->renderRoot($libraries);
}
Hãy chú ý đến việc thụt lề cũng như mã YML. Mặc dù nó chưa thực sự được ghi nhận rõ ràng, nhưng bạn có thể xem xét vấn đề này và nhật ký thay đổi của nó.
Thay thế tệp hook_l Library_info () bằng tệp * .lologists.yml
Lưu ý rằng bạn cũng thấy tệp "scripts.js" của chủ đề lý thuyết trong mã ở trên nhưng bạn có thể không cần đến nó. Trong chủ đề của tôi, đó là những gì sử dụng jquery để gọi mã tùy chỉnh.
Mã này có lẽ cũng là một tài liệu tham khảo tốt cho các bit YML. Lưu ý rằng trong cả hai trường hợp version
đều ở cùng cấp độ với dependencies
.
Tôi cũng đã lập danh sách 8 vấn đề Drupal mà tôi gặp phải và tham gia nâng cấp D8.
Cập nhật:
Tôi đã sửa mã, chúng tôi gặp phải vấn đề này: Thay thế các giá trị mảng thư viện #attached bằng các chuỗi được đặt tên nhà cung cấp
Lưu ý điều này:
$libraries['#attached']['library'][] = array('herchel', 'herchel-corescripts');
so với
$libraries['#attached']['library'][] = 'herchel/herchel-corescripts';
Tôi đã thử nghiệm và các lỗi đã biến mất. :)
version
khớpdependencies