it-swarm-vi.com

Làm thế nào để tốt nhất bao gồm jQuery Themeroller trong một phần mở rộng?

Với việc J3x có jQuery đi kèm, một nửa trận chiến dễ dàng bao gồm Themeroller được chăm sóc, nhưng tôi vẫn gặp vấn đề khi khía cạnh Themeroller hoạt động bình thường. Tôi đã thấy rằng việc thêm thẻ script "ở đâu đó" thường hoạt động, nhưng nơi thẻ script đi có vẻ khác nhau - khiến các widget bị hỏng trừ khi nó "ngay trước đó, hoặc ngay sau đó".

Có cách nào để thêm Themeroller và tất cả các tiện ích của nó đúng vào một thành phần không?

2
GDP

để bao gồm JS và CSS cụ thể trong một thành phần, tôi làm theo lời khuyên của Michael Babker:

Sử dụng thư mục phương tiện, cho phép phương tiện truyền thông quá mức

http://www.babdev.com/blog/139-use-the-media-folder-allow-overridable-media

  • tại thư mục thành phần gốc của bạn, tạo thư mục có tên media
  • bên trong, tạo 2 thư mục, cssjs Đừng quên bao gồm khoảng trống bắt buộc index.html trong tất cả các thư mục

  • Sửa đổi tệp tệp yourcomponent.xml cho phù hợp:


<media folder="media" destination="com_yourcomponent">               
    <filename>index.html</filename>                 
    <folder>css</folder>
    <folder>images</folder>              
    <folder>js</folder>
</media>
  • trong /views/yourcomponent/default.php

hoặc là

/view/whthingisthenameofthisfolder/default.php

gọi các tệp JS/CSS của bạn theo cách này:

JHtml::_('stylesheet', 'com_yourcomponent/yourcss.css', false, true);
JHtml::_('script', 'com_yourcomponent/yourjs.js', false, true);

Tất nhiên, bạn có thể sử dụng các tập lệnh JS/CSS khác nhau cho mỗi chế độ xem của mình.

Hy vọng nó giúp.

5
ghazal

Để đảm bảo thư viện JS sẽ được tải cùng với thành phần của bạn, bạn cần đưa nó vào khung nhìn của thành phần. Một cái gì đó như thế này trong view.html.php hoặc tệp mẫu của bạn sẽ hoạt động:

JHtml::_('jquery.framework');

Lưu ý rằng điều này sẽ bao gồm jQuery trong Chế độ noConflict. Nó cũng đảm bảo rằng khung sẽ chỉ được tải một lần.

Để tải jQuery ở chế độ Bình thường, hãy sử dụng:

JHtml::_('jquery.framework', false);

Cập nhật:

Bạn muốn js của bạn được tải trên phần xem của thành phần của bạn, vì vậy đây là nơi để thêm nó. Vì vậy, sau khi bao gồm bất kỳ khung yêu cầu nào, bạn cũng bao gồm bất kỳ js và css nào khác trên khung nhìn.

Để thêm vào điều này, và tùy thuộc vào cách bạn muốn làm mọi thứ hoặc nếu có bất kỳ lý do nào khác, bạn có thể tạo tệp trợ giúp với lớp và phương thức của riêng bạn, trong cuộc gọi, nó sẽ quyết định thêm tệp js/css nào, dựa trên từng điều kiện Bạn cũng có thể xem xét sử dụng thư mục phương tiện làm vị trí của js/css của bạn.

<?php $doc = JFactory::getDocument();
$doc->addScript(JURI::root(true).'/media/com_component/js/myscript.js');
?>


[.__.] Joomla: Thêm JS - Tài liệ

1
FFrewin