it-swarm-tr.com

Jhtml :: komut dosyası sırası - jQuery yüklenene kadar nasıl ertelenir?

Kullanırım JHtml::script özel geliştirilmiş bir modüldeki sayfalarıma komut dosyaları eklemek için. Bununla birlikte, bu komut dosyaları J3 jQuery'ye eklenmeden önce kafaya enjekte edilir - örneğin:

<!-- my module js -->
<script src="/modules/mod_tiles/js/jquery.isotope.min.js" type="text/javascript"></script>
<script src="/modules/mod_tiles/js/jquery.hoverintent.min.js" type="text/javascript"></script>
<script src="/modules/mod_tiles/js/mod_tiles.js" type="text/javascript"></script>
<!-- then joomla loads jQuery --->
<script src="/media/jui/js/jquery-noconflict.js" type="text/javascript"></script>
<script src="/media/jui/js/jquery.min.js" type="text/javascript"></script>

Joomla'yı diğer komut dosyalarından önce jQuery yüklemeye nasıl zorlayabilirim?

11
codinghands

Aramalısın

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

diğer JHtml :: betiğinizden önce. AFAIK bu, önce jQuery'nin yüklenmesini sağlar.

15
fruppel

eğer sorunuzu doğru okursam, kendi modülünüzü geliştiriyorsunuz demektir.

Bunu varsayılan olarak deneyin. Php - modülün görünümü ("tmpl" de):

JHtml::stylesheet('modules/'.$module->module.'/assets/css/yourfile.css');

JHtml::script('modules/'.$module->module.'/assets/js/yourscript.js');

Veya bu :

JHtml::_('stylesheet', 'modules/'.$module->module.'/assets/css/anotherfile.css');

JHtml::_('script', 'modules/'.$module->module.'/assets/js/othercript.js');

Her iki durumda da, JS dosya (lar) ınız içinde bir "varlık" klasörü ve bir "css" ve "js" klasörü oluşturmuş olmanız koşuluyla, jQuery'den sonra enjekte edilmelidir.

İkinci çözüm daha çok joomla 3.X.X API'sine uygundur.

Umarım yardımcı olur.

2
ghazal

Geçen hafta bu soruna rastladım ve JHtml :: script'i çağırdığım yerle ilgiliydi. Bunu görünümünüzde veya görünümün şablonunda mı yapıyorsunuz? Komut dosyalarını görünümün içine eklemeye çalışırsanız (views/yourview/view.html.php) Joomla! 'Nın kendi komut dosyalarından önce eklenirler, ancak şablondaki komut dosyalarını eklerseniz (views/yourview/tmpl/default.php) bunlar Joomla! 'nın komut dosyalarından sonra eklenir.

İyi şanslar!

2
Zachary Draper

İki bitimi daha sonra eklemek istedim. Bileşendeki her görünüm için yüklenmesi gereken birkaç komut dosyası ve stil sayfası var ve bunların doğru sırayla yüklendiğinden emin olmak için tek bir nokta olmasını istedim.

Dosyanın içinde components\myComponent\mycomponent.php:

defined('_JEXEC') or die;

// Include dependancies
jimport('joomla.application.component.controller');

JHtml::stylesheet('http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css', array(), true);
JHtml::stylesheet('components/com_mycomponent/assets/css/mycomponent.css');

JHtml::_('jquery.framework');   // Make sure jQuery is loaded before component JS
JHtml::script( 'components/mycomponent/assets/js/jquery.cookie.js');

// Execute the task.
$controller = JControllerLegacy::getInstance('Mycomponent');
$controller->execute(JFactory::getApplication()->input->get('task'));
$controller->redirect();
0
GDP

Bu muhtemelen mod_tiles komut dosyalarını içe aktarmak için kullandı. Sanırım bu durumda Joomla kodlama standartlarına bağlı kalmadılar.

(Ben düşünebilirim) hwre 2 seçenek var:

  1. Komut dosyaları modül içindeki tmpl klasöründeki bir dosyadan içe aktarılıyorsa, Şablon Geçersiz Kılma gerçekleştirebilir ve değiştirebilirsiniz. JHtml kullanarak komut dosyasının içe aktarılma şekli.
  2. İndirebilir ve yükleyebilirsiniz jQuery Easy Bu, jQuery'yi ithal eden ve diğer tüm komut dosyalarının üstüne yerleştiren bir eklentidir.

Bu yardımcı olur umarım

0
Lodder