it-swarm.com.de

Wie verwende ich zusätzliche jQuery-UI-Bibliotheken wie draggable?

Gemäß den Dokumenten unter jQuery UI Framework ist der folgende Code erforderlich, um eine JUI-Bibliothek wie sortable zu verwenden: JHtml::_('jquery.ui', array('sortable'));

Dies funktioniert anscheinend gut, wenn jquery.ui.sortable.js existiert, aber es gibt keine äquivalenten Dateien für andere JUI-Bibliotheken, die speziell per Drag & Drop verschoben werden können.

Was ist der richtige Weg, um JUI-Bibliotheken zu verwenden, die nicht in der Kerninstallation von J3.x enthalten sind?

Lösung: Unter der Anleitung von @lodder habe ich die folgenden Schritte ausgeführt, um die vollständige funktionierende JUI-Bibliothek zu erhalten:

  1. Ging zu JUI Themeroller und erstellte/lud das Theme und die zugehörigen Dateien herunter
  2. Erstellt den Ordner component/com_XXX/assets/jquery-ui-1.11.0.custom, um das Thema und die Bibliotheken aus der heruntergeladenen Zip zu enthalten.
  3. Fügte den folgenden Code zu meiner Komponente hinzu und "tada" ... alle JUI-Features/Funktionen waren verfügbar.

( Ohne Lodder wäre dieser Ort nicht derselbe)

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

Um zusätzliche JS-Bibliotheken zu importieren, sollten Sie die Methode JHtml wie folgt verwenden:

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

Es gibt no CDN-Links, die ich für separate jQueryUI-Widgets kenne, was sehr schade ist. Andernfalls hätten Sie Folgendes tun können:

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

Was den Speicherort der JS-Dateien angeht, würde ich entweder einen Ordner im Ordner "media" erstellen und dort ablegen oder sie demselben Verzeichnis wie die Kerndateien hinzufügen:

ROOT/media/jui/js

pdate 1:

Sie müssen die JUI-Bibliothek nicht ersetzen. Die aktuell angezeigte ist die Kernbibliothek, die keine Widgets enthält. Widgets, die beim Importieren aus separaten Dateien stammen und den in Ihrer Frage angegebenen Code verwenden. Um Widgets zu erhalten, die nicht im Joomla-Paket enthalten sind, können Sie entweder wie in meiner Antwort beschrieben vorgehen oder ein JUI-Paket auf der offiziellen Website kompilieren und das jquery.ui.core.min Datei damit. Dann importiert using den Core zusammen mit den Widgets, mit denen Sie ihn kompiliert haben.

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

Dies wird jedoch nicht empfohlen

pdate 2:

Nachdem Sie sich die Dokumentation angesehen haben, können Sie auch eigene Bibliotheken hinzufügen und diese folgendermaßen aufrufen:

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

Ich bin nicht sicher, wie das genau funktioniert, da ich es noch nie ausprobiert habe, aber es ist auch eine andere Alternative und auch zugunsten von Update 1.

1
Lodder