Solía JHtml::script
agregar scripts a mis páginas en un módulo desarrollado a medida. Sin embargo, estos scripts se inyectan en la cabeza antes de que J3 agregue jQuery, por ejemplo:
<!-- 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>
¿Cómo puedo forzar a Joomla a cargar jQuery antes que cualquier otro script?
joomla-3.x
jquery
codinghands
fuente
fuente
mod_tiles.php
este jQuery forzado a cargar primero. ¡Gracias!Si leo su pregunta correctamente, está desarrollando su propio módulo.
Pruebe esto, en default.php - la vista del módulo (en "tmpl"):
JHtml::stylesheet('modules/'.$module->module.'/assets/css/yourfile.css');
JHtml::script('modules/'.$module->module.'/assets/js/yourscript.js');
O esto :
JHtml::_('stylesheet', 'modules/'.$module->module.'/assets/css/anotherfile.css');
JHtml::_('script', 'modules/'.$module->module.'/assets/js/othercript.js');
En ambos casos, sus archivos JS deben inyectarse después de jQuery, siempre que haya creado una carpeta "activo" y una carpeta "css" y una "js" dentro.
La segunda solución está más de acuerdo con joomla 3.XX API.
Espero eso ayude.
fuente
assets
carpeta, esto no fue diferente, y los scripts aún se cargan antes de que jQuery lo haga. También me pregunto sobre la sabiduría de poner este tipo de código en un archivo de plantilla (especialmente si hay varias plantillas que usan los mismos scripts, DRY, etc.)default.php
en latmpl
carpeta (plantilla) del módulo. Pensé que los scripts deberían cargarse enmod_tiles.php
(el 'controlador') en lugar dedefault.php
(la vista).Me encontré con este problema la semana pasada y estaba relacionado con el lugar al que estaba llamando JHtml :: script. ¿Estás haciendo esto en tu vista o en la plantilla de la vista? Si intenta agregar los scripts en la vista misma (views / yourview / view.html.php), se insertarán antes que los propios scripts de Joomla!, Pero si agrega los scripts en la plantilla (views / yourview / tmpl / default.php) se insertarán después de los scripts de Joomla!
¡Buena suerte!
fuente
tmpl
. Intenté agregar los scripts tanto en mod_tiles.php como en default.php, ambos se cargan antes de jQuery.Esto probablemente se deba al método que el desarrollador de
mod_tiles
ha utilizado para importar los scripts. Supongo que no se han apegado a los estándares de codificación de Joomla en esta situación.Tienes 2 opciones (que se me ocurren) hwre:
JHtml
.Espero que esto ayude
fuente
Quería agregar mis dos bits después del hecho. Tengo un par de scripts y hojas de estilo que deben cargarse para cada vista que tengamos en el componente, y quería un solo punto para que eso ocurra asegurando también que se carguen en la secuencia correcta.
En el archivo
components\myComponent\mycomponent.php
:fuente
Sé que este es un tema antiguo, pero ¿alguna vez llegaste al fondo de esto? Acabo de experimentar el mismo problema. He identificado la CAUSA pero no el problema / solución; Tengo una sospecha disimulada de que es un ERROR, pero podría hacerlo con alguien más probándolo.
Escenario: ha creado un módulo que incluye un script dependiente de jQuery, por lo que utiliza lo siguiente en su vista default.php:
Luego instala el módulo y le da una posición de módulo, digamos 'izquierda'. Cuando mira el código fuente del front-end, todo se ve bien, todos los scripts se cargan después de los scripts que se incluyen en
SIN EMBARGO si le da al módulo una posición 'acordeón' y usa la función de posición de carga de joomla para agregar el módulo a un artículo
entonces accordion.js se agrega ANTES de los archivos bootstrap.framework.
La única forma en que he podido adaptarlo al trabajo es agregar el script como un script en línea en lugar de ser incluido en la cabeza.
EDITAR: lo mismo va para incluir el CSS; se agrega a la parte superior de la lista de declaraciones css (antes de los archivos css de plantilla y bootstrap). El objetivo de esto es agregar! Importante a las declaraciones CSS.
fuente