ti-enxame.com

Como usar bibliotecas adicionais de UI do jQuery, como arrastáveis?

De acordo com os documentos em jQuery UI Framework , para usar uma biblioteca JUI como sortable, o seguinte código é necessário: JHtml::_('jquery.ui', array('sortable'));

Aparentemente, isso funciona bem se jquery.ui.sortable.js existe, mas não há arquivos equivalentes para outras bibliotecas JUI, especificamente arrastáveis ​​/ descartáveis.

Qual é a maneira correta de usar bibliotecas JUI que não estão incluídas na instalação principal do J3.x?

Solução: Com a orientação do @lodder, aqui estão as etapas que segui para obter a biblioteca JUI completa:

  1. Foi para JUI Themeroller e criou/baixou o tema e os arquivos relacionados
  2. Criou a pasta component/com_XXX/assets/jquery-ui-1.11.0.custom para conter o tema e as bibliotecas do Zip baixado.
  3. Adicionado o código abaixo ao meu componente e "tada" ... todos os recursos/funções da JUI estavam disponíveis.

( Este lugar não seria o mesmo sem 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 adicionais, você deve usar o método JHtml da seguinte maneira:

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

Existem não links CDN que eu conheço para widgets jQueryUI separados, o que é uma pena, caso contrário, você poderia ter feito isso:

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

Quanto à localização dos arquivos JS, eu criaria uma pasta na pasta "media" e os colocaria lá, ou os adicionaria ao mesmo diretório que os arquivos principais:

ROOT/media/jui/js

Atualização 1:

Você não precisa substituir a biblioteca JUI. A que você vê atualmente é a biblioteca principal que não contém nenhum widget. Widgets que, quando importados, vêm de arquivos separados e são feitos usando o código que você forneceu na sua pergunta. Para obter widgets que não são fornecidos com o pacote Joomla, você pode fazer o que eu descrevi na minha resposta ou compilar um pacote JUI no site oficial e substituir o jquery.ui.core.min arquivo com ele. Em seguida, o uso importará o núcleo junto com os widgets que você o compilou.

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

No entanto, isto é não recomendado

Atualização 2:

Tendo examinado a documentação, você também pode adicionar suas próprias bibliotecas e chamá-las usando:

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

Não sei exatamente como isso funciona, como nunca tentei, mas também é outra alternativa e também a favor da Atualização 1.

1
Lodder