Chính xác thì cái gì được tải vào bên trong kiểu jinclude type = cuộc gọi đầu?


7

Khi xây dựng một mẫu, bạn phải đặt một (và chỉ một) trong số các cuộc gọi này bên trong <head></head>:

<jdoc:include type="head" />

Kiểm tra ở đây không cung cấp nhiều thông tin thêm:

https://docs.j Joomla.org/Jdoc_statements#Head

Vì vậy, câu hỏi của tôi là: chính xác những gì được tải trong cuộc gọi này? Tôi biết điều này sẽ tải các tệp javascript và CSS bổ sung khi sử dụng:

$document = JFactory::getDocument();
$document->addStyleSheet($url);
$document->addScript($url);

hoặc thẻ tùy chỉnh bằng cách sử dụng

$document = JFactory::getDocument();
$document->addCustomTag($stylelink);

Còn gì nữa không? Và có cách nào để đặt hàng những gì được tải ở đó?

Cảm ơn.

Câu trả lời:


2

Trong Joomla 3.x, <jdoc:include type="head" />tải các mục sau (không theo thứ tự cụ thể):

  • Thư viện jQuery
  • jQuery noConflict
  • Di chuyển jQuery
  • Thư viện Bootstrap
  • Thư viện MooTools
  • Tất cả <meta>thông tin
  • Bất kỳ tệp CSS và JS nào cho tiện ích mở rộng trên các trang chúng được gán cho
  • Bất kỳ khai báo CSS hoặc JS nào đang được sử dụng trong các tiện ích mở rộng

Mootools được tải vì vẫn còn những thứ trong Joomla yêu cầu nó. Cuối cùng nó sẽ được gỡ bỏ.

jQuery được tải vì Bootstrap yêu cầu và Joomla 3.x sử dụng Bootstrap (không may).


Hmmm ... nó có luôn tải jQuery và Bootstrap không? Tôi đã thấy Protostar tải cụ thể bằng cách sử dụng JHtml :: _ ('bootstrap.framework'); Tại sao nó sẽ làm như vậy nếu nó được tải với jinclude? Cảm ơn bạn đã trả lời nhanh chóng
Isidro Baquero

Đó là một dự phòng. Một số tiện ích mở rộng như com_content yêu cầu và mọi thao tác nhập JHtml đều được đẩy lên đầu
Lodder

Ok, tôi nghĩ bây giờ tôi đã hiểu: nếu jQuery / Bootstrap được gọi bởi bất kỳ tiện ích mở rộng nào, thì nó được tải bởi <jdoc: include type = head>. Nhưng nếu 'không ai gọi cho họ và bạn sẽ cần họ, bạn phải thêm cuộc gọi vào tiện ích mở rộng của mình. Vì vậy, cuối cùng, nếu bạn sẽ cần jQuery hoặc bootstrap trong tiện ích mở rộng của mình, bạn nên thêm JHtml :: _ ('bootstrap.framework'); gọi trong đó, chỉ trong trường hợp nó chưa được tải. Cảm ơn rất nhiều!
Isidro Baquero
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.