Author Topic: jQuery-Einbindung  (Read 256 times)

Offline masju

  • Posts: 123
  • Gender: Male
jQuery-Einbindung
« on: June 15, 2019, 02:40:06 PM »
Hallo zusammen,

in der Vergangenheit habe ich das Plugin jQueryAdmin mit Erfolg eingesetzt, um beispielsweise Lightboxen und Accordeons auf meine Seiten zu zaubern. Leider klappt das mit der neuen Version 2.12.1 nicht mehr so recht, und ich bin nach dem Studium einiger How-To's nun ziemlich verwirrt, wie ich das ganze wieder hinbekomme.  :|
Zur Einbindung des Frameworks habe ich verstanden , dass ich einfach im Admin-Bereich im Output Filter Frontend v1.2.5 die Option "jQuery" anhaken muss. Aber was ist "jQueryUI"? Muss ich das auch anschalten?
Und was muss dann im Template stehen? Dieses ganze hier?
Code: [Select]
if(function_exists('register_frontend_modfiles')) {
register_frontend_modfiles('css');
register_frontend_modfiles('jquery');
register_frontend_modfiles('js');

Und wie bekomme ich dann die jQuery-Plugins (Slider, Accordeons, Lightboxen...) funktionierend auf der Seite eingebunden?
Im Verzeichnis /include/jquery/ sind mehrere Versionen von jquery-min*.js gespeichert. Welche wird verwendet? Werden die anderen auch gebraucht?

Bin gerade ziemlich durcheinander  :-o, vielleicht kann mir jemand helfen?

Vielen Dank im voraus!
masju

Offline hgs

  • Betatester
  • **
  • Posts: 1116
    • EFG MG
Re: jQuery-Einbindung
« Reply #1 on: June 15, 2019, 03:42:31 PM »
Hast du schon mal getestet, ob alles mit dem Default Template funktioniert?

Die Einbindung zwischen
Code: [Select]
<?php...?> sollte funktionieren ist aber seit langem in der kurzform ausreichend.

Code: [Select]
<?php
   register_frontend_m odfiles
('css');
   
register_frontend_m odfiles('jquery');
   
register_frontend_m odfiles('js');
?>

Wenn ja, wird mit einem Link zur Seite auch schnell Hilfe möglich sein.


edit: erste Klammer entfernt nach Hinweis von jacobi22
« Last Edit: June 15, 2019, 04:28:40 PM by dbs »
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline jacobi22

  • Posts: 5865
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: jQuery-Einbindung
« Reply #2 on: June 15, 2019, 04:19:43 PM »
ergänzend dazu
in den erweiterten WB-Optionen kann die JQuery-Version eingestellt werden. Sollte für diese Version eine migrate...js benötigt werden, wird diese automatisch und abhängig von der gemachten Auswahl eingebunden.

Ob du eine JQuery-Ui benötigst, hängt von dem ab, was du vor hast, das sollte dir aber deine Software oder das Web sagen.

Grundsätzlich hab ich Zweifel, ob solch (mittlerweile wohl ungepflegten Module überhaupt noch kompatibel sind mit den neueren PHP-Versionen, kann ich aber nicht sagen, weil ich sie nicht benutze.

P.S.: im Code von hgs ist eine geschweifte Klammer zu viel (Zeile 1)
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline dbs

  • Betatester
  • **
  • Posts: 8011
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: jQuery-Einbindung
« Reply #3 on: June 15, 2019, 04:36:14 PM »
Ergänzend dazu:

- die erste Zeile mit register_frontend_m odfiles('css'); ist Pflicht
- wenn die beiden anderen Zeilen eingebunden und genutzt werden sollen, muss auch der Filter RegisterModFiles angehakt werden.
- damit jQuery funktioniert muss es in jedem Fall angehakt werden (ob nun mit oder ohne Filter RegisterModFiles)
- Accordion wird wahrscheinlich Filter jQueryUi benötigen

Ob das alles so stimmt ist eine andere Frage. Finde es optimierungswürdig.

Offline masju

  • Posts: 123
  • Gender: Male
Re: jQuery-Einbindung
« Reply #4 on: June 15, 2019, 05:43:53 PM »
Vielen dank für die schnellen Antworten. Ich habe nun im Output-Filter die Optionen jQuery und jQueryUI gesetzt.
Die Testseite ist https://www.wichern-bs.de/de/testseite-neues-design.php
Beim Klick auf die Tageslosung (links) sollte die aufgerufene Seite (https://www.wichern-bs.de/Losung.php) in einer Lightbox erscheinen. Bis zum Update klappte das wegen
Code: [Select]
<a class="grouped_elements"....

Wo lege ich fest, welche jQuery-Effekte ich konkret haben möchte? Das war mit dem jQueryAdmin immer ziemlich einfach...

Viele Grüße,
masju

Edit: register_modfiles ist ebenfalls angehakt
« Last Edit: June 15, 2019, 05:57:43 PM by masju »

Offline dbs

  • Betatester
  • **
  • Posts: 8011
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: jQuery-Einbindung
« Reply #5 on: June 15, 2019, 06:05:50 PM »
Ich schätze grouped_elements gehört zur Fancybox.

Wenn dein jQueryAdmin nicht mehr geht, solltest du deine Scripte entweder in include/plugins/user oder dem Template speichern.
Meistens ist das eine xxx.js und xxx.css oder beides in einem Ordner mit noch mehr Dateien.

Beide werden dann in der index.php des Templates im Head eingebunden und stehen dann zur Verfügung.
Schau mal ins DefaultTemplate wie dort js/css Dateien eingetragen werden.

Deine Seite zeigt ziemlich viel Content Security Policy Meldungen. Sicher wird bald irgendwas nicht funktionieren, weil geblockt.

Offline masju

  • Posts: 123
  • Gender: Male
Re: jQuery-Einbindung
« Reply #6 on: June 15, 2019, 06:24:36 PM »
Ja, richtig, fancybox. Ich schau mal, ob ich die js und css finde und kopiere sie dann in die include/plugins/user. Werden die von dort automatisch eingebunden?
Es gibt allerdings auch in der include/plugins/default bereits ein Verzeichnis "fancybox" mit Subdirs 1.3.4 und 2.1.7.

Die zahlreichen Fehlermeldungen in der Konsole stammen fast alle aus dem iframe (igitt  :wink:), mit dem der Google-Kalender eingebaut ist.

Mich verwirrt aber noch eine Fehlermeldung: ReferenceError: WB_URL is not defined in der jquery_theme.js aus dem Installationspaket.

Offline masju

  • Posts: 123
  • Gender: Male
Re: jQuery-Einbindung
« Reply #7 on: June 15, 2019, 07:00:55 PM »
Okay, hab's hinbekommen und binde die Scripte nun manuell in die Seite ein. Vielen Dank für die Hilfe an diesem schönen Sommertag  :-) !!
Die Fehlermeldung
Quote
ReferenceError: WB_URL is not defined - jquery_theme.js
erscheint allerdings immer noch. Eventuell ein Fehler im Installationspaket?

Viele Grüße,
masju

Offline dbs

  • Betatester
  • **
  • Posts: 8011
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: jQuery-Einbindung
« Reply #8 on: June 16, 2019, 08:55:40 AM »
Quote
... und kopiere sie dann in die include/plugins/user. Werden die von dort automatisch eingebunden?
Wird nicht automatisch eingebunden. Du kannst aber sicher sein, dass WB die Dateien dort nicht verändert. Wenn Fancybox im anderen Ordner /default vorhanden ist, kannst du die auch nutzen. Allgemein könnte sich bei den Scripten dort was ändern und funktioniert dann vielleicht nicht mehr für deine Zwecke.

Quote
ReferenceError: WB_URL is not defined - jquery_theme.js erscheint allerdings immer noch. Eventuell ein Fehler im Installationspaket?
Die register_modfiles Zeilen dürfen kein Leerzeichen enthalten. Passiert hier immer nur im Forum nach Speichern (siehe Post von Harald).Das sollte das Problem lösen. Wäre in deinem Fall für Accordion und jQueryUi nötig.


Offline masju

  • Posts: 123
  • Gender: Male
Re: jQuery-Einbindung
« Reply #9 on: June 16, 2019, 12:18:36 PM »
Die Leerzeichen zwischen dem "m" und "odfiles" habe ich natürlich nicht mitkopiert :wink:.
Der Fehler "WB_URL is not defined" wird auch bei anderen von mir betreuten Seiten angezeigt. In der Datei /include/jquery/jquery_theme.js ist diese Zeile das Problem:
Code: [Select]
[1] var JQUERY_THEME = WB_URL + '/include/jquery';Nehme ich das "WB_URL+" raus
Code: [Select]
[1] var JQUERY_THEME = '/include/jquery';wird die Fehlermeldung nicht mehr angezeigt. Keine Ahnung, warum die Variable hier nicht bekannt ist...

Gruß, masju

Offline dbs

  • Betatester
  • **
  • Posts: 8011
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: jQuery-Einbindung
« Reply #10 on: June 16, 2019, 12:25:08 PM »
Hast du den Filter ScriptVars angehakt? Der stellt ein paar variablen für Javascript bereit, auch WB_URL.

Offline jacobi22

  • Posts: 5865
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: jQuery-Einbindung
« Reply #11 on: June 16, 2019, 12:47:12 PM »
vielleicht kein Bug, eher ein Logik-Problem, über das man mal nachdenken könnte.

z.b., wenn JqueryUi aktiviert wurde, wird ScriptVars automatisch mit aktiviert, denn ohne funktioniert es nicht. Von diesen Abhängigkeiten gibt es ja einige, JQueryUi ohne JQuery macht wenig Sinn usw.

Vielleicht reicht es auch, diesen Einstellungen eine separate Seite im Benutzerhandbuch zu widmen und dort alle nötigen Schaltungsvarianten mal zu notieren
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline masju

  • Posts: 123
  • Gender: Male
Re: jQuery-Einbindung
« Reply #12 on: June 16, 2019, 12:52:41 PM »
Hast du den Filter ScriptVars angehakt? Der stellt ein paar variablen für Javascript bereit, auch WB_URL.
Das wars! Angehakt, und weg ist die Fehlermeldung  :-)!

Vielen Dank für die Hilfe!
masju

Offline dbs

  • Betatester
  • **
  • Posts: 8011
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: jQuery-Einbindung
« Reply #13 on: June 16, 2019, 01:03:16 PM »
Prima  (Y) .
Mit der Maus auf einem Filter wird dir Hilfe dazu angezeigt. Aber ob das verständlich ist und ausreicht?

Dann lieber mehr Automatismen. Aber ist sicher auch nicht einfach zu machen.
Beispiel Klick auf JquerUi aktiviert auch Jquery, weil es gebraucht wird. Was aber, wenn JqueryUi gleich wieder deaktiviert wird? War Jquery vorher schon angehakt und soll es bleiben oder wieder weg?

Wohl doch eine bessere Anleitung schreiben. Damit man wnigstens dahin verlinken kann vom Forum aus.

Offline masju

  • Posts: 123
  • Gender: Male
Re: jQuery-Einbindung
« Reply #14 on: June 16, 2019, 10:40:09 PM »
Also in der Hilfe steht
Quote
Setzt Javascript Variablen für die weitere Bearbeitung in den HEAD.

Man könnte nun missverstehen, dass die Javascript-Variablen bei Nichtauswahl irgendwo anders stehen würden und nicht im HEAD.
Vielleicht sollte der Text besser heißen:
Quote
Die für Javascript (z. B. beim Einsatz von jQuery) benötigten Systemvariablen (WB_URL, THEME_URL, TEMPLATE_DIR, TEMPLATE u. a.) in die Frontend-Ausgabe der Seiten einfügen.
oder so...

Aber eigentlich schadet es doch nicht, die Variablen immer per Default einzufügen, oder? Wieso die Möglichkeit zur Auswahl?

Gruß, masju

 

postern-length