web-dev-qa-db-fra.com

Comment utiliser des bibliothèques d'interface utilisateur jQuery supplémentaires telles que draggable?

Selon la documentation de jQuery UI Framework , pour utiliser une bibliothèque JUI telle que sortable, le code suivant est requis: JHtml::_('jquery.ui', array('sortable'));

Cela fonctionne apparemment bien si jquery.ui.sortable.js existe, mais il n’existe pas de fichiers équivalents pour les autres bibliothèques JUI, en particulier les fichiers glissables/droppables.

Quelle est la bonne façon d'utiliser les bibliothèques JUI qui ne sont pas incluses dans l'installation principale de J3.x?

Solution: Avec l'aide de @lodder, voici les étapes que j'ai suivies pour obtenir la bibliothèque de travaux JUI complète:

  1. Je suis allé à JUI Themeroller et j'ai créé/téléchargé le thème et les fichiers associés.
  2. Créé le dossier component/com_XXX/assets/jquery-ui-1.11.0.custom contient le thème et les bibliothèques du fichier Zip téléchargé.
  3. Ajout du code ci-dessous à mon composant et "tada" ... toutes les fonctionnalités/fonctions de JUI étaient disponibles.

( Cet endroit ne serait pas le même sans Lodder)

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

Pour importer des bibliothèques JS supplémentaires, vous devez utiliser la méthode JHtml comme suit:

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

Il existe non liens CDN que je connaisse pour des widgets jQueryUI séparés, ce qui est dommage, sinon vous auriez pu le faire:

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

En ce qui concerne l'emplacement des fichiers JS, je créerais un dossier dans le dossier "media" et les placerais dans celui-ci, ou les ajouterais au même répertoire que les fichiers de base:

ROOT/media/jui/js

Mise à jour 1:

Vous n'êtes pas obligé de remplacer la bibliothèque JUI. Celle que vous voyez actuellement est la bibliothèque principale qui ne contient aucun widget. Widgets qui, une fois importés, proviennent de fichiers distincts et sont créés à l'aide du code que vous avez fourni dans votre question. Pour obtenir des widgets qui ne sont pas fournis avec le package Joomla, vous pouvez effectuer les opérations décrites dans ma réponse ou compiler un package JUI sur le site officiel et remplacer le jquery.ui.core.min fichier avec elle. Ensuite, using importera le noyau avec les widgets avec lesquels vous l'avez compilé.

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

Ceci est cependant pas recommandé

Mise à jour 2:

Après avoir consulté la documentation, vous pouvez également ajouter vos propres bibliothèques et les appeler avec:

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

Je ne sais pas exactement comment cela fonctionne car je ne l'ai jamais essayé, mais c'est aussi une autre alternative et aussi en faveur de la mise à jour 1.

1
Lodder