it-swarm-es.tech

¿Cómo usar bibliotecas jQuery UI adicionales como arrastrable?

De acuerdo con los documentos en jQuery UI Framework , para usar una biblioteca JUI como sortable, se requiere el siguiente código: JHtml::_('jquery.ui', array('sortable'));

Esto aparentemente funciona bien si jquery.ui.sortable.js existe, pero no hay archivos equivalentes para otras bibliotecas JUI, específicamente arrastrables/soltables.

¿Cuál es la forma correcta de usar las bibliotecas JUI que no se incluyen con la instalación central de J3.x?

Solución: Con la guía de @lodder, estos son los pasos que seguí para obtener la biblioteca JUI completa:

  1. Fui a JUI Themeroller y creé/descargué el tema y los archivos relacionados
  2. Creó la carpeta component/com_XXX/assets/jquery-ui-1.11.0.custom para contener el tema y las bibliotecas del Zip descargado.
  3. Agregué el siguiente código a mi componente y "tada" ... todas las características/funciones de JUI estaban disponibles.

( ¡Este lugar no sería el mismo sin Lodder)

JHtml::_('jquery.framework');
JHtml::_('script', JUri::root() . 'components/com_XXX/assets/jquery-ui-1.11.0.custom/jquery-ui.min.js');
7
GDP

Para importar bibliotecas JS adicionales, debe usar el método JHtml de esta manera:

JHtml::_('script', JUri::root() . 'path/to/the/file/script.js');

Hay no enlaces CDN que conozco para widgets jQueryUI separados, lo cual es una pena, de lo contrario podría haber hecho esto:

JHtml::_('script', '//cdnjs.cloudflare.com/ajax/libs/script.js'); 

En cuanto a la ubicación de los archivos JS, crearía una carpeta en la carpeta "media" y los colocaría allí, o los agregaría al mismo directorio que los archivos principales:

ROOT/media/jui/js

Actualización 1:

No tiene que reemplazar la biblioteca JUI. El que ve actualmente es la biblioteca principal que no contiene ningún widget. Los widgets que, cuando se importan, provienen de archivos separados y se hacen usando el código que proporcionó en su pregunta. Para obtener widgets que no se proporcionan con el paquete de Joomla, puede hacer lo que describí en mi respuesta, o compilar un paquete JUI en el sitio web oficial y reemplazar el jquery.ui.core.min archivo con él. Luego, el uso importará el núcleo junto con los widgets con los que lo compiló.

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

Sin embargo, esto es no recomendado

Actualización 2:

Después de mirar la documentación, también puede agregar sus propias bibliotecas y llamarlas usando:

JHtml::_('mylibrary.myloader');

No estoy seguro de cómo funciona esto, ya que nunca lo he probado, pero también es otra alternativa y también a favor de la Actualización 1.

1
Lodder