Author Topic: WB 2.8.3 SP7 und jQuery UI  (Read 2485 times)

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
WB 2.8.3 SP7 und jQuery UI
« on: August 24, 2016, 12:21:52 AM »
Hallo,

habe eben bei einer Seite ein Upgrade auf SP7 durchgeführt. Ich nutze auf dieser Seite Accordion. Dies funktioniert nicht mehr, da jQuery-UI nicht mehr geladen wird. Weder über die bisherige Methode (register_frontend_m odfiles) noch über den neuen Output Filter Frontend.

Gibt es dafür einen Grund? Kann man das wieder aktivieren?

Was mir in dem Zusammenhang auch aufgefallen ist, dass die Parameter für Accordion erst geladen werden sollten wenn vorher alle jQuery Komponenten geladen sind. Der neue Output Filter Frontend setzt sich aber immer direkt vor den body und damit nach den Scriptaufrufen im header. Gibt es eine Möglichkeit zwischen den Output Filter Frontend und den body etwas zu plazieren?

Gruß
Matthias

Offline dbs

  • Betatester
  • **
  • Posts: 8076
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #1 on: August 24, 2016, 12:59:26 AM »
Hi, im Outputfilter das jQuery deaktivieren, dafür wieder register_modfiles in der index nutzen.
Wenn es dann noch nicht geht und evtl. die neuen Divs um jede Section ein Problem sind:
Optionen > Erweitert > Servereinstellungen > Abschnitt Anker Text: none

Offline jacobi22

  • Posts: 5891
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #2 on: August 24, 2016, 01:00:51 AM »
Arbeite zur Zeit einige ältere Projekte auf, mit ähnlicher Basis. Hier meine Filtereinstellungen, mit denen es funktioniert.
OpF und RelUrl könnte man hier noch setzen, wenn benötigt.



Eintrag in der Template index.php
Code: [Select]
<?php    register_frontend_modfiles('css');
        
register_frontend_modfiles('jquery');
        
register_frontend_modfiles('js');

Möglich wäre aber auch, statt mit register_frontend_m odfiles('jquery'); das benötigte Jquery manuell zu setzen.
Diesen Block setze ich im Template an die Stelle, wo ich es haben möchte, bei mir immer zuerst alle benötigten CSS-Dateien, dann der register_modfiles-Block, gefolgt von eigenen JS-Dateien, die im Projekt benötigt werden.

Quote
Gibt es eine Möglichkeit zwischen den Output Filter Frontend und den body etwas zu plazieren?
Nein, zumindest nicht, ohneden Code zu manipulieren.
Jeder Filter sucht nach dem schließendem </head> und setzt sich dann direkt davor. Die Reihenfolge der Filter ergibt sich aus dem Array in der output_filter/index.php
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #3 on: August 24, 2016, 08:25:54 AM »
Hallo,

danke für eure Antworten. Das habe ich auch schon alles durchgespielt. Wie in meinem ersten Post geschrieben wird im Gegensatz zu vorherigen Versionen die UI aber weder mit register_frontend_m odfiles noch mit Output Filter Frontend geladen. Die UI muss jetzt über eine zusätzliche Zeile:

Code: [Select]
<script src="<?php echo WB_URL?>/include/jquery/jquery-ui-min.js" type="text/javascript"></script>
nachgeladen werden. Zusätzlich muss im Output Filter Frontend noch "LoadOnFly" aktiviert werden, sonst läuft gar nix. Da aber auch das zu spät geladen wird musste ich das auch händisch einbinden.

Gruß
Matthias

Offline jacobi22

  • Posts: 5891
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #4 on: August 24, 2016, 11:07:39 AM »
frontend.functions. php
da ist diese Abfrage drin, die sinngemäß bedeutet: Wenn das Modul Jquery und darin die Datei jquery_theme.js vorhanden ist,  lade diese jquery_theme.js vom Modul-Ordner
Wenn nicht, lade diese Datei vom include Ordner

Code: [Select]
/* workout to insert ui.css and theme */
            $jquery_theme =  WB_PATH.'/modules/jquery/jquery_theme.js';
$jquery_links .=  file_exists($jquery_theme)
                ? '<script src="'.WB_URL.'/modules/jquery/jquery_theme.js" type="text/javascript"></script>'."\n"
                : '<script src="'.WB_URL.'/include/jquery/jquery_theme.js" type="text/javascript"></script>'."\n";


Was nicht mehr funktioniert in dieser jquery_theme.js, ist der Aufruf LoadonFly(), wenn man den Filter ausgestellt hat  :roll: :roll:
in dem Fall die erste Zeile wieder einkommentieren und das LoadonFly auskommentieren.

Code: [Select]
var JQUERY_THEME = WB_URL+'/include/jquery';

$(document).ready(function() {
//        $.insert(JQUERY_THEME+'/jquery-ui.css' );
        $.include( JQUERY_THEME+'/jquery-ui-min.js');
        LoadOnFly( 'head', JQUERY_THEME+'/jquery-ui.css' );
//        LoadOnFly( 'body', JQUERY_THEME+'/jquery-ui-min.js' );
});

Bin grad am Upgrade der Colorbox und kann mich auf Kopf und beide Beine Stellen, das CSS der Templates zu laden und hätte nichts gegen einen Fix, der obiges korrigiert
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #5 on: August 24, 2016, 12:39:21 PM »
Hallo,

habe für mich jetzt folgende Lösung gefunden:

1.) geänderte include/jquery/jquery_theme.js
Code: [Select]
var JQUERY_THEME = WB_URL+'/include/jquery';

$(document).ready(function() {
        $.insert(JQUERY_THEME+'/jquery-ui.css');
        $.insert(JQUERY_THEME+'/jquery-ui-min.js');
});

2.) Aufruf im head-Bereich des Templates:
Code: [Select]
<?php
register_frontend_modfiles
('css');
register_frontend_modfiles('jquery');
register_frontend_modfiles('js');
?>

3.)Output Filter Frontend:
Einstellungen wie in deinem Post nur Droplets, Email, ReplaceSysvar und Wblink aktiviert.

Damit funktioniert es jetzt erstmals. Auch die Colorbox läuft damit ohne Probleme.

Gruß
Matthias

Offline jacobi22

  • Posts: 5891
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #6 on: August 24, 2016, 01:23:31 PM »
hier der reparierte Code für die include/jquery/jquery_theme.js
schaltet dann je nach Filterstatus (LoadonFly) um

Code: [Select]
var JQUERY_THEME = WB_URL+'/include/jquery';

$(document).ready(function() {
    if (typeof LoadOnFly==='undefined'){
          $.insert(JQUERY_THEME+'/jquery-ui.css' );
    } else {
        LoadOnFly('head', JQUERY_THEME+'/jquery-ui.css' );
    }
    $.include(JQUERY_THEME+'/jquery-ui-min.js');
});

P.S: Edit:Codekorrektur, damit niemand den falschen Code kopiert
« Last Edit: August 25, 2016, 01:59:21 AM by jacobi22 »
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8391
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #7 on: August 24, 2016, 01:38:20 PM »
Hallo,

danke, funktionierte bei mir erst nachdem ich:

Code: [Select]
$.include( JQUERY_THEME+'/jquery-ui-min.js');
durch

Code: [Select]
$.insert(JQUERY_THEME+'/jquery-ui-min.js');
ersetzt habe.

Gruß
Matthias

Offline sky writer

  • Posts: 926
Re: WB 2.8.3 SP7 und jQuery UI
« Reply #8 on: October 17, 2016, 04:43:12 AM »
Sorry for my English, but I can't find an English thread on this topic.  If you would prefer I start my own thread, I will do so...

I am trying to get the jquery effect "highlight" to work on my website without using libraryAdmin.  I had Highlight working with LibraryAdmin, but I have issues with LA and FolderGallery, so I am trying another route.

I am able to get "Highlight" to work by following the directions in this thread for Output Filter settings, and adding the following to my template index.php head section:
Code: [Select]
<?php
register_frontend_m odfiles
('css');
register_frontend_m odfiles('jquery');
register_frontend_m odfiles('js');
?>

<script src="<?php echo WB_URL?>/include/jquery/jquery-ui-min.js" type="text/javascript"></script>
</head>

And adding the Highlight script:
Code: [Select]
<script type="text/javascript">
   $('#highlight').effect("highlight", {color: "#faf38e" }, 20000);
</script>
</body>


But this thread seams to imply that this line should not be necessary:
Code: [Select]
<script src="<?php echo WB_URL?>/include/jquery/jquery-ui-min.js" type="text/javascript"></script>


I tried removing that line of code and making the Output Filter changes and the suggested changes to include/jquery/jquery_theme.js :
Code: [Select]
var JQUERY_THEME = WB_URL+'/include/jquery';

$(document).ready(function() {
    if (typeof LoadOnFly==='undefined'){
          $.insert(JQUERY_THEME+'/jquery-ui.css' );
    } else {
        LoadOnFly('head', JQUERY_THEME+'/jquery-ui.css' );
    }
    $.include(JQUERY_THEME+'/jquery-ui-min.js');
});

But "jquery-ui-min.js" does not load on the page.  I have to add the script line suggested by ruebenwurzel:
<script src="<?php echo WB_URL; ?>/include/jquery/jquery-ui-min.js" type="text/javascript"></script>


I am confused by the last post.  Is the line supposed to be:
Code: [Select]
$.include( JQUERY_THEME+'/jquery-ui-min.js');or is it supposed to be:
Code: [Select]
$.insert(JQUERY_THEME+'/jquery-ui-min.js');
I tried both, and neither loads "jquery-ui-min.js" when I load the webpage, but I wanted to make sure I had it the right way.

No matter what combination I try, "jquery-ui.css" is not loaded on the page.

Maybe (probably) I am not understanding how this all works.  But I am learning... slowly.

Thank you for any advice you can provide.

 

postern-length