Я использую, JHtml::script
чтобы добавить сценарии на мои страницы в специально разработанном модуле. Однако эти сценарии вводятся в голову до того, как J3 добавляет в jQuery - например:
<!-- 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 загружать jQuery перед любыми другими скриптами?
joomla-3.x
jquery
codinghands
источник
источник
mod_tiles.php
эту принудительную загрузку jQuery первым. Спасибо!если я правильно прочитал ваш вопрос, вы разрабатываете свой собственный модуль.
Попробуйте это, в default.php - представление модуля (в «tmpl»):
JHtml::stylesheet('modules/'.$module->module.'/assets/css/yourfile.css');
JHtml::script('modules/'.$module->module.'/assets/js/yourscript.js');
Или это :
JHtml::_('stylesheet', 'modules/'.$module->module.'/assets/css/anotherfile.css');
JHtml::_('script', 'modules/'.$module->module.'/assets/js/othercript.js');
В обоих случаях ваши файлы JS должны быть внедрены после jQuery, при условии, что вы создали папку «asset», а также папку «css» и «js» внутри.
Второе решение более соответствует API Joomla 3.XX.
Надеюсь, поможет.
источник
assets
папки - это не изменилось , и скрипты по-прежнему загружаются раньше, чем jQuery. Я также задаюсь вопросом о мудрости сдачи такого рода кода в файле шаблона (особенно , если есть несколько шаблонов , используя одни и те же сценарии, DRY и т.д. и т.п.)default.php
вtmpl
папке (template) модуля. Я бы подумал, что скрипты должны быть загружены вmod_tiles.php
(«контроллер»), а не вdefault.php
(представление).Я столкнулся с этой проблемой на прошлой неделе, и это было связано с тем, где я звонил JHtml :: script. Вы делаете это в своем представлении или шаблоне представления? Если вы попытаетесь добавить сценарии в само представление (views / yourview / view.html.php), они будут вставлены перед собственными сценариями Joomla !, но если вы добавите сценарии в шаблон (views / yourview / tmpl /) default.php) они будут вставлены после скриптов Joomla !.
Удачи!
источник
tmpl
. Я попытался добавить сценарии как в mod_tiles.php, так и в default.php - оба загружаются до jQuery.Вероятно, это связано с методом, который разработчик
mod_tiles
использовал для импорта сценариев. Я предполагаю, что они не придерживались стандартов кодирования Joomla в этой ситуации.У вас есть 2 варианта (которые я могу придумать) hwre:
JHtml
.Надеюсь это поможет
источник
Я хотел добавить свои два бита после факта. У меня есть пара скриптов и таблиц стилей, которые нужно загружать для каждого представления, которое есть в компоненте, и я хотел, чтобы это происходило с одной точкой, гарантируя, что они загружены в правильной последовательности.
В файле
components\myComponent\mycomponent.php
:источник
Я знаю, что это старая тема, но вы когда-нибудь доходили до сути? Я только что испытал ту же проблему. Я идентифицировал ПРИЧИНУ, но не проблему / решение; У меня есть подлое подозрение, что это БАГ, но он может сделать это с кем-то еще, попробовавшим это.
Сценарий: вы создали модуль, который включает в себя сценарий, зависящий от jQuery, поэтому вы используете в представлении default.php следующее:
Затем вы устанавливаете модуль и назначаете ему положение модуля, скажем, «влево». Когда вы смотрите на исходный код интерфейса, все выглядит хорошо, все сценарии загружаются после сценариев, включенных в
ОДНАКО, если вы дадите модулю положение «гармошка» и используете функцию loadposition для joomla, чтобы добавить модуль в статью
тогда аккордеон.js добавляется ПЕРЕД файлами bootstrap.framework.
Единственный способ заставить его работать - добавить скрипт как встроенный скрипт, а не включать его в заголовок.
РЕДАКТИРОВАТЬ: то же самое касается включения CSS; он добавляется в верхнюю часть списка декларации css (до файла css шаблона и начальной загрузки). Основание для этого - добавить! Важно к декларациям CSS.
источник