JQuery-Plugins
jQuery ist ein freies, umfangreiches JavaScript-Framework, das komfortable Funktionen zur DOM-Manipulation und -Navigation zur Verfügung stellt.
jQuery ist ein freies, umfangreiches JavaScript-Framework, das komfortable Funktionen zur DOM-Manipulation und -Navigation zur Verfügung stellt.
ZMS erweitert seinen Funktionsumfang um eine Schnittstelle zur einfachen Integration von Komponenten des Open-Source JavaScript Frameworks jQuery. Die Komponenten können als Plugins bequem ins ZMS integriert werden und werden nur geladen, wenn sie tatsächlich benötigt werden (lazy loading).
Dazu muss der headScript-Abschnitt um drei Einträge erweitert werden:
<script type="text/javascript" charset="UTF-8" src="/++resource++zms_/jquery/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="/++resource++zms_/jquery/plugin/jquery.plugin.js"></script>
<script type="text/javascript" src="/++resource++zms_/jquery/plugin/jquery.plugin.extensions.js"></script>
Noch performanter ist es, die komplette jQuery-Lib des ZMI über folgenden Eintrag einzubinden:
<script type="text/javascript" charset="UTF-8" src="/++resource++zms_/jquery/jquery-all.min.js"></script>
Zunächst wird jQuery geladen - falls erforderlich. Die zweite JS-Datei stellt den Plugin-Loader zur Verfügung. Dieser basiert auf einer für optimale ZMS-Integration modifizierten $.plugin (http://nicolas.rudas.info/ jQuery/ getPlugin/). In der dritten JS-Datei sind die Extension-Points und Dependencies der JS-Plugins definiert.
Aktuell sind dies:
jQuery UI Integration
jQuery UI 1.8.7 ist seit ZMS Version 2.13.1 Build 1284 ebenfalls vorhanden und kann durch folgenden Pfad im Header referenziert werden.
<script type="text/javascript" charset="UTF-8" src="/++resource++zms_/jquery/ui/js/jquery-ui-1.8.7.custom.min.js"></script>
Wichtiger Hinweis für Zope < 2.10
ZCML Resource-Ordner sind erst ab Zope 2.10 implementiert. Soll ZMS mit den JQuery-Plugins auf einer älteren Zope-Version (2.8 / 2.9) installiert werden, so müssen folgende Schritte ausgeführt werden:
jquery.plugin.version=/--resource--zms_/jquery/plugin/jquery.plugin.js
jquery.plugin.extensions=/--resource--zms_/jquery/plugin/jquery.plugin.extensions.js
Für (1.-3.) können ZMS-Professional Kunden ein vorkonfektioniertes ZEXP anfordern.
Für den Einsatz des Workarounds in einer Multisite hilft folgenden Python-Script, das die modifizierten Pfad-Werte für die gesamte Hierarchie explizit setzt:
# setConf2Zope29 # request = container.REQUEST RESPONSE = request.RESPONSE zms = context.content zmsclients = zms.getPortalClients() zmsclients.append(zms) for zmsclient in zmsclients: # zmsclient.delConfProperty('jquery.version') zmsclient.setConfProperty('jquery.version','/--resource--zms_/jquery/jquery-1.5.min.js') zmsclient.setConfProperty('jquery.plugin.version','/--resource--zms_/jquery/plugin/jquery.plugin.js') zmsclient.setConfProperty('jquery.plugin.extensions','/--resource--zms_/jquery/plugin/jquery.plugin.extensions.js') zmsclient.setConfProperty('zmi.all','--resource--zms_/manage_page_style-min.css') zmsclient.setConfProperty('jquery.all','/--resource--zms_/jquery/jquery-all.min.js') zmsclient.setConfProperty('jquery.ui','/--resource--zms_/jquery/ui/js/jquery-ui-1.8.9.custom.min.js') print 'done' return printed
TIPP: Sofern die jquery-Funktionalität in der Drittsicht vollständig verfügbar sein soll und man mit individuellem JS-Template (in standard_html_header oder headScript) arbeitet, kann man der Einfachheit halber dem oben genanten Template-Vorschlag entsprechend (mit angepassten Pfaden) direkt einsetzen:
<script type="text/javascript" src="/--resource--zms_/jquery/jquery-1.5.min.js">"></script> <script type="text/javascript" src="/--resource--zms_/jquery/plugin/jquery.plugin.js"></script> <script type="text/javascript" src="/--resource--zms_/jquery/plugin/jquery.plugin.extensions.js"></script>
Erstellt von: Dr. Frank Hoffmann , erstellt am: 31.03.2010 , zuletzt geändert: 05.07.2011