it-swarm-es.tech

¿Cómo incluir mejor jQuery Themeroller en una extensión?

Con J3x con jQuery incluido, se ocupa la mitad de la batalla de incluir fácilmente a Themeroller, pero todavía tengo problemas para que el aspecto de Themeroller funcione correctamente. Descubrí que agregar la etiqueta de script "en algún lugar" generalmente funciona, pero donde va esa etiqueta de script parece variar, lo que hace que los widgets se rompan a menos que sea "justo antes de esto o justo después de eso".

¿Existe una forma correcta de Joomla de agregar Themeroller y todos sus widgets correctamente a un componente?

2
GDP

para incluir JS y CSS específicos en un componente, sigo el consejo de Michael Babker:

Use la carpeta de medios, permita medios reemplazables

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

  • en la carpeta del componente raíz, cree una carpeta llamada media
  • adentro, cree 2 carpetas, css y js No olvide incluir el espacio en blanco requerido index.html en todas estas carpetas

  • Modifique el archivo yourcomponent.xml en consecuencia:


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

o

/views/whateveristhenameofthisfolder/default.php

llame a sus archivos JS/CSS de esta manera:

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

Por supuesto, puede usar diferentes scripts JS/CSS para cada una de sus vistas.

Espero eso ayude.

5
ghazal

Para asegurarse de que la biblioteca JS se cargará con su componente, debe incluirla en la vista de su componente. Algo como esto en su view.html.php o el archivo de plantilla debería funcionar:

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

Tenga en cuenta que esto incluirá jQuery en el modo sin conflicto. También asegura que el marco se cargará solo una vez.

Para cargar jQuery en modo Normal, use:

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

Actualizar:

Desea que su js se cargue en la parte de vista de su componente, por lo que este es el lugar para agregarlo. Entonces, después de incluir cualquier marco requerido, también incluye cualquier otro js y css en la vista.

Para agregar a esto, y dependiendo de cómo le gusta hacer las cosas o si hay alguna otra razón, puede crear un archivo auxiliar con su propia clase y métodos, que, cuando lo solicite, decidirá qué archivos js/css agregar, basado en cada condición. También puede considerar usar la carpeta de medios como la ubicación de su js/css.

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


Joomla: Agregando JS - Documentación

1
FFrewin